Provisioning and management scripts for Simplo.site — a managed Backdrop CMS hosting platform.
- Server: Ubuntu 24.04 LTS on Linode
- Stack: Nginx, PHP 8.3-FPM, MariaDB 10.11, Certbot, Bee CLI
- Sites directory:
/var/www/simplo/sites/ - Platform site:
/var/www/simplo/platform/(www.simplo.site) - Scripts location:
/usr/local/bin/simplo-scripts/ - Site credentials:
/opt/sites/<sitename>.simplo - Provision log:
/var/log/simplo/provision.log
These scripts work together to automatically provision sites requested through www.simplo.site:
newsite-cron.sh— Run by cron every 5 minutes. Pipes get-requests into process-requests.get-requests.sh— Queries the simplo database for site requests with status "Requested".process-requests.sh— Parses the request and calls create-site.sh.provision-site.sh— Marks the request as "Provisioned" in the simplo database.
create-site.sh— Creates a new site. Can be called automatically (by process-requests.sh) or manually:create-site.sh --manual <sitename> [template]
delsite.sh— Removes a site (directory, database, Nginx config):delsite.sh <sitename>
rebuild-template.sh— Snapshots a live site as a reusable template (DB + files + config):rebuild-template.sh <template-name> <source-sitename>
nginx-site-template.conf— Template for new site Nginx configs. Installed to/etc/nginx/sites-available/DEMO-TEMPLATEon the server.
Scripts are cloned to /usr/local/bin/simplo-scripts/ on the server with symlinks in /usr/local/bin/ for easy access.
cd /usr/local/bin/simplo-scripts
git pull/home/triplo/.secrets— ContainsMYSQL_ROOT_PASSWORDandSIMPLO_DB_PASSWORD