Skip to content

raibtoffoletto/aedifico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aedifico

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.

Dependencies and Requirements:

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.

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

Uninstall:

In the aedifico/bin folder, run:

$ sudo python install.py --uninstall

Services:

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.

Deploying your Website:

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

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.

Git

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.

Self-Updates

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.

Acknowledgement:

Aedifico is built using several awesome projects. My heartfelt thanks to: