This is a small framework that uses Node's ExpressJS and EJS to render simple websites written in Markdown.
It includes a minimal template with a micro-blogging infrastructure. The website can be deployed via Git or via the included CMS.
An up and running instance of Ubuntu or Debian server (only x86 architecture at the moment) with secure shell access (SSH) and (optionally) domains and DNS records configured. Ports 80, 443, 2083 and 3000 must not be in use by any other software. Also, the following packages are required (and they are usually already installed):
- git
- python3
- systemd
Note: This server do not run at /var/www
, it is good practice to have a dedicated user account set up for it without direct ssh access (specially if you are running other services in your server). sudo privileges are required for the install.
Clone the repository:
$ git clone https://github.com/raibtoffoletto/aedifico.git
Execute the installer and carefully follow its instructions:
$ cd aedifico/bin
$ sudo python3 install.py
In the aedifico/bin
folder, run:
$ sudo python install.py --uninstall
These are the following systemd services in use:
- aedifico.service
- aedifico-preview.service
- aedifico-sprintplank.service
- aedifico-update.service
- certbot-renew.service
You can check the status of each of them with systemctl status $SERVICE
and the logs with journalctl -u $SERVICE
.
Tip: To monitor live the status of a service use the program watch
.
Aedifico renders your content from markdown files. The public
folder contains all web related files: pages and blog posts are stored in content
and content/posts
; style sheets at css
; and multimedia files at img
. The web address for a page is just its file name without the .md
extension.
Sprintplank is the included CMS to help manage your content. You can manage your content and app from it, preview it and then publish it. It is accessible from the port 2083
of your server.
Note: The name comes from dash
and board
through several iterations on google translator from english, to other languages and then back again to english.
Clone, modify and than push to the git repository preview.git
.
Use primarily the branch preview
, you can check all modifications at the port 3000. Any commits to the branch master
will go directly to production, it is wise to use preview
to test new content and then merge the branches.
Note: Commits to other branches won't affect the website, you may use them as back-ups/archives.
From version 1.2 a systemd.timer is implemented to check the official git repository and perform the necessary updates without any user interaction. It will not interfere with the website located in preview.git
nor the information defined in the installation process (i.e. git credentials, password, certificates, etc.)
There's also a service to keep the letsencrypt's certificates up-to-date.
Note: The upgrade to version 1.2 must be done manually.
Aedifico is built using several awesome projects. My heartfelt thanks to: