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
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
|
|
|
|
###
|
|
|
|
|