Template JAMStack-style project built on:
On a Linux server (currently tested on Debian 10 "Buster"), you can clone the project and run the install script as root:
curl -s https://www.sansay.co.uk/jamstack/install.py -o install.py; sudo python3 install.py; rm install.py
This will step through the installation and configuration of your system with the above packages, asking you for various values as it goes along, leaving you with a basic template website to start adding content and functionality to.
curl -s https://www.sansay.co.uk/jamstack/install.py -o install.py; sudo python3 install.py -domainName YOURSITEDOMAINNAME -contentFolderPath DRIVEPATH -jekyllFolderPath DRIVEPATH -buildPassword PASSWORD; rm install.py
The recommended approach is to duplicate this project so you have your own editable version you can extend to add any further requirements or content to.
The installation will ask you for a few inputs along the way:
Static content will be served from Apache's standard "/var/www/html" folder. The content in that folder is built by Jekyll from content stored in Google Drive (mounted locally via rclone) and converted via Pandoc / DocsToMarkdown into the Govspeak varient of Markdown. This means your end users can edit content via GSuite, the online version of Office 365, or via the desktop versions of Word / Excel if you set them up with the Google Drive file sync / streaming utility on their machine.
A basic API will be created, served at http(s)://yourdomian.whatever/api. Edit the "api.py" file to add calls. The default API contains a simple "build" call, accesible via a GET request. You can use this GET request as an endpoint for workflow automation tools such as Zapier - just set up your trigger (maybe a file being added or changed in a Google Drive folder) in your tool of choice and point it at https://yourdomian.whatever/api/build?action=run&password=yourPassword
.