• Stars
    star
    410
  • Rank 103,137 (Top 3 %)
  • Language
    CSS
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create a website from a git repository in one click

No Longer Maintained

Please note, this code base is no longer maintained. For the successor, please see 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 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.

flowchart TB
    subgraph one[Panel Node]
    a1[PostgresSQL]
    a2[MarkdownSite::Manager Daemon]
    a3[Nginx]
    a1 <-- MarkdownSite::Manager::DB / Minion--> a2
    a3 -- Hypnotoad PSGI --> a2

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

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

Thanks For Looking!

Thank you for taking the time to checkout this repository. I hope the information here has been useful.

More Repositories

1

MyJekyllBlog

This is a multi-user CMS and hosting platform for Jekyll blogs.
Perl
47
star
2

Stalker

Records and correlates nick!user@host information
Perl
45
star
3

Daemon-Control

Daemon::Control - Create init scripts in Perl
Perl
44
star
4

MeshMage

Perl
43
star
5

SymPullCDN

SymPullCDN is a reverse caching proxy for use with Google Application Engine
Python
40
star
6

BlogDB

The BlogDB Webservice
CSS
12
star
7

Kona

A Personal Wiki
CSS
11
star
8

GFM-Service

GitHub Flavored Markdown Service is a webservice to interface the redcarpet and albino libraries written by GitHub.
Ruby
9
star
9

Config-Layered

Layered config from files, command line, and other sources
Perl
5
star
10

DBIx-Class-Schema-Config

Manage connection credentials for DBIx::Class::Schema
Perl
4
star
11

WebService-CloudFlare-Host

A client for CloudFlare's Hosting Partner API
Perl
3
star
12

HouseNewsWire

HouseNewsWire is meant to be a starting point for building your own webapp. It is a fully functional webapp that supports user registration, login. It has a simple dashboard with one to many message posting and per-user mark-as-read feature.
Perl
3
star
13

Config-Loader

The Universal Configuration Loader
Perl
3
star
14

TodayChecklist

The TodayChecklist Project
Perl
2
star
15

App-Dex

A command line utility for managing directory-specific commands
Perl
2
star
16

DBIx-Config

Manage Credentials for DBI
Perl
2
star
17

File-Helper

File::Helper - A Simple File Helper
Perl
2
star
18

chanoply

Minimalist ChanOp serv for irssi
Perl
2
star
19

WebService-GFM

WebService::GFM - A GFM-Service Markdown Client
Perl
2
star
20

docs.markdownsite.com

Repo for site of same name
HTML
2
star
21

timer.onthebranch.com

A Project For A Friend
Vue
2
star
22

Cache-SQLite

Cache::SQLite - A Light Caching Layer
Perl
2
star
23

Net-GitHub-Markdown

GitHub Flavored Markdown
Perl
1
star
24

WebService-FitBit

Perl
1
star
25

OpenNewsWire

Perl
1
star
26

WeightGrapher

Web Application For Weight Graphing
Perl
1
star
27

Text-GFMarkdown

Perl
1
star
28

Markdown-Compiler

Perl Markdown Compiler
Perl
1
star
29

Casandra

IRC Framework For Learning - Not Production Use
Perl
1
star
30

WebService-WiThings

Perl Client API for WiThings Body Scale
Perl
1
star
31

File-Set-Writer

File::Set::Writer - Buffered writes with a file handle pool
Perl
1
star
32

App-pq

Like jq and gq, but with Perl
Perl
1
star