Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/symkat/MarkdownSite
Create a website from a git repository in one click
https://github.com/symkat/MarkdownSite
hosting infrastructure markdown static-site website
Last synced: about 15 hours ago
JSON representation
Create a website from a git repository in one click
- Host: GitHub
- URL: https://github.com/symkat/MarkdownSite
- Owner: symkat
- Created: 2022-02-12T16:20:19.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T06:58:28.000Z (almost 2 years ago)
- Last Synced: 2024-08-01T21:43:51.962Z (3 months ago)
- Topics: hosting, infrastructure, markdown, static-site, website
- Language: CSS
- Homepage: https://markdownsite.com
- Size: 1.37 MB
- Stars: 408
- Watchers: 6
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: FUNDING.yml
Awesome Lists containing this project
- project-awesome - symkat/MarkdownSite - Create a website from a git repository in one click (CSS)
README
# No Longer Maintained
Please note, this code base is no longer maintained. For the successor, please see [MyJekyllBlog](https://github.com/symkat/MyJekyllBlog)
## What Is MarkdownSite?
MarkdownSite is a platform for hosting websites.
People who want their websites hosted enter a git url for their repository.
MarkdownSite downloads their repo and turns anything in `public/` into a static website hosted at a random subdomain.
Anything MarkdownSite finds in `site/` that is an `.md` file will be rendered as HTML.
Once MarkdownSite downloads and builds the website, it is sent to one or more webservers and accepts traffic from the Internet.
## How do I use MarkdownSite?
You can use [MarkdownSite](https://markdownsite.com/) to host a website.
You can build your own version of MarkdownSite to host as many websites as you want on your own infrastructure. See the `devops/` directory for instructions on getting an instance running.
## What are the directories here?
(**NOTE**: MarkdownSite is getting a panel with user accounts! It's being developed right now, so if you want to install MarkdownSite you should use commit e927f46a7d2949c87d2da3182c722486cfe3c4fb, or wait until the the panel development is complete)
**CGI** contains the Markdown::CGI program. This renders markdown files to HTML, and is installed on the webservers.
**Manager-DB** contains the markdownsite database schema, and the code for MarkdownSite::Manager::DB, a DBIx::Class interface to the database.
**Manager** is MarkdownSite::Manager, a mojolicious-based webapp for submitting the repository and viewing build status. This contains a Minion worker that handles building and deploying the websites.
**devops/setup** contains an ansible code base to install servers by their server type, and documentation explaining it.
**devops/config** contains an ansible code base that can be maintained and extended -- it is configuration management for an active MarkdownSite instance.
**devops/** contains additional graphs and network diagrams,
## Visual View Of MarkdownSite
This is a birds-eye view of a three-node setup, without insight server.
```mermaid
flowchart TB
subgraph one[Panel Node]
a1[PostgresSQL]
a2[MarkdownSite::Manager Daemon]
a3[Nginx]
a1 <-- MarkdownSite::Manager::DB / Minion--> a2
a3 -- Hypnotoad PSGI --> a2end
subgraph two[Build Node]
b1[Clone & Build Website]
b2[MarkdownSite::Manager Worker]
b2 <-- PSQL Private IP --> a1
end
subgraph three[WebServer Node]
c1[Lighttpd]
c2[Static Files]
c3[MarkdownSite::CGI]
c1 <-- Static File Exists --> c2
c1 <-- No File Exists--> c3
c3 -- Generate & Store HTML Page From Markdown--> c2
endb1 -- Ansible SSH--> three
q[Internet User] <-- View Hosted Website -->c1
z[MarkdownSite User] <-- Submit Git Repo For Hosting -->a3
```MarkdownSite has an additional server, insight, that does metrics and graphs with Graphite, Grafana, and Collectd.
![Grafana Graphs](https://markdownsite.com/img/grafana-graphs.png)
## Thanks For Looking!
Thank you for taking the time to checkout this repository. I hope the information here has been useful.