This is kept very simple on purpose.
The SCS web server had traditionally three tasks:
- Run an HTTP(S) server for various SCS sites.
- Hold the repo and configuration to start the VM with the Jitsi VC server
- Run the Container with asterisk for the dial-in for Jitsi
The web server serves static web pages from git repository build branches (gh-pages), which does not require any credentials or state. It should thus NOT be combined with Jitsi or Asterisk.
We will just implement the web server pieces, simple to deploy and redeploy in case we need to on short notice.
We use opentofu (OSS fork from terraform) to create the server and use cloud-init to inject the configuration and automate the startup. The config file allows customization of which ssh keys, flavors, images to use.
The apache web server runs in rootless docker containers, started via docker compose.
The content comes from github repos, which we can clone via https without any authentication.
The repos all have gh-pages branches into which the github actions build the rendered content
to be served.
The trees are updated regularly (default: Every 5 minutes) via a cronjob that does
git pull --rebase
Caddy handles the issuance of TLS certs and the serving of the pages via https.