@ -53,20 +53,44 @@ WebServers run nginx and host static content for Jekyll blogs. When a blog is p
The build servers will sync the blog content with webservers each time the blog is updated through the Panel.
## How does it work?
### Overview
### Deploy a Jekyll blog
This graph shows a view of a user updating a post, and somebody from the Internet viewing a post.
```mermaid
sequenceDiagram
Web Panel->>+Build Server: User update triggers build
Build Server->>+Store Server: Request for updates
Store Server-->>-Build Server: Latest repo updates sent back
Build Server-->+Build Server: Builds static website content with the Jekyll builder
Build Server-->+Web Server: Sync static website content
flowchart TB
subgraph one[Panel Node]
a2[MyJekyllBlog::Web]
a3[Nginx]
a3 -- Hypnotoad PSGI --> a2
end
subgraph two[Build Node]
b1[Clone & Build Website]
b2[MyJekyllBlog Worker]
b2 --> b1
end
subgraph four[Store]
d1[PostgreSQL]
d2[Gitea]
d2 < -- Fetch latest repo -- > b1
b2 < -- Get job for sync -- > d1
a2 -- Queue blog sync job --> d1
a2 -- Update file in repo --> d2
end
subgraph three[WebServer Node]
c1[nginx]
end
b1 -- rsync to each WebServer Node --> c1
q[Internet User] < -- View Blog Post -- > c1
z[MyJekyllBlog User] < -- Submit Post Update -- > a3
```
## Installation Guide
This guide will follow my process of installing the software to run on `mds-stage.com` and serve blogs on `mds-stage-blog.com` . If you follow along, you could have your own version up and running in a couple of hours.