A hosting service for Jekyll Blogs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Blog Manager Robot 6f4a0fd6ce Sync SSH Keys on create. 3 years ago
DB Add build stuff. 3 years ago
Web Sync SSH Keys on create. 3 years ago
libs/MJB-Backend-Jekyll Add MJB::Backend::Jekyll 3 years ago
README.md Update 3 years ago

README.md

What is MyJekyllBlog?

MyJekyllBlog is a project to provide a SaaS web interface to Jekyll backed with a CMS and web hosting infrastructure.

What are the systems?

Web Panel

The web panel allows users of the service to create and manage their Jeykll blogs.

The following functionality should exist:

  • Wizard to create a new blog
  • Editor panel that lists articles
  • Editor panel that lists pages
  • Editor panel that allows creating a new article
  • Editor panel that allows creating a new page
  • Editor panel that allows editing an existing article
  • Editor panel that allows editing an existing page
  • Manager panel that shows last deployment
  • Manager panel that allows deploying the blog
  • Manager panel that allows adding a custom domain name to the blog
  • Manager panel that shows list of commits and which one is deployed
  • Manager panel that allows selecting an alternative commit and deploying it

Database Server

The database server holds the database for the Web Panel and for the Build Server.

Gitea Server

The gitea server will have user mapping between the Web Panel and Gitea. Users websites will be held as repos here.

Build Server

The build server will check out the repo, build the static site and deploy it to whichever Web Server it should be deployed to.

SSL Server

The SSL server will run certbot. The /.well-known directory should be proxied to this server so that HTTP challenges can be used.

Web Servers

Web servers will host static content for Jeykll blogs.

How does it work?

Create a new account on MyJekyllBlog

sequenceDiagram
    User ->>+Web Panel: Register with name, email, password
    Web Panel->>+Database: Create user account for panel
    Web Panel->>+Gitea Minion: Create Gitea User
    Web Panel->>-User: Log the user into their account

Deploy a Jekyll blog

sequenceDiagram
    Web Panel->>+Build Server: Build jeykll id X
    Build Server->>+Gitea Server: Checkout Repo
    Gitea Server-->>-Build Server: Get repo
    Build Server-->+Build Server: Build static site from repo
    Build Server-->+Web Server: Deploy website

Create a new post a Jekyll blog