Server setup
The code available in the GitHub repository has some prerequisites. This article provides some background on what is needed.
These are the big lines of my recipe:
- Install headless Linux (my choice is Debian)
- Secure your installation and verify it is secure
- Create a domain address that points to your server IP
- Install PostgreSQL
- Tweak PostgreSQL for on-host efficiency: no ssl, huge cache size, large shared buffers, large work mem
- Create database user + create empty database
- Install Apache2
- Configure Apache2: enable ssl, http2 and disable unnecessary things
- Install CertBot and get a certificate for https
- Install Django
- Install git
- Create Python virtual env for website, update pip, install pip-tools
- Fetch the repo + deploy code
- Install the 3rd-party packages with pip-sync
- Install, enable and start the systemd workers