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.
 
 
 
 
 
 

63 lines
1.9 KiB

# 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
```mermaid
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
### Create a new post a Jekyll blog
###