The thing runs as a set of Docker containers. Todo: insert picture
A Traefik container proxies requests to the other components. This to facilitate e.g. automatic certificates from Let's Encrypt.
A Svelte app.
A Node.js app.
A Postgres database. See the db subfolder for a bootstrap SQL file that runs when the container is first created. Note that the script isn't triggered if the container volume already has database files (this is a feature of the Postgres image). To apply schema changes, do as follows:
docker stop container_namedocker volume rm volume_namedocker-compose -d --build from the source direcoryThe setup contains an admin subdomain with some tools:
The admin part is password protected as required.
* still to be published
Let's Encrypt with SSL Labs target score A+.
Basic http security headers according to OWASP recommendations and Security Headers
Azure B2C login preferred, local user accounts safely stored with BCrypt and salt.
Client-server comms uses Branca tokens for authentication. To generate the encryption key, run:
$ openssl rand -hex 32
Deployment instructions to follow...