Hardware
All servers run under Ubuntu 24.04.2 and can be reached via SSH using public key authentication (only) with the username ubuntu.
DANGER
The Production Webserver uses Port 8288 for SSH connections.
Webserver
The hardware for the Webserver running frontend/backend/reporting is the smallest exabyte Virtual Private Server (NVME VPS 1, v13). It comprises:
- 1 vCPU (x86_64)
- 2 GB RAM
- 40 GB NVME Storage
- 1 dedicated IP (45.127.6.212)
- 100MBps Bandwidth/monthly total traffic 1 TB
INFO
As an extra service a daily full backup for rolling 14 days was ordered and can be managed here
Piwigo Server
For Piwigo a separate virtual server from Oracle's free tier (Ampere) is used with the following specs:
- 2 OCPU (aarchh64)
- 12 GB RAM
- 100 GB SSD Storage
- 1 dedicated IP (84.235.172.73)
- 2 Gbps Bandwidth, unlimited
Environments
For a proper development and release management process it is recommended to set up three different server environments: development, staging and production.
This is relevant mainly for the Webserver. For the Piwigo Server we do not need a development environment at all, and a staging environment is only set-up on - limited - demand to test the initial set-up using ansible or test the process to restore from backups.
Development Server
The development server can be any (recommended: linux) based server. Performance requirements are rather limited; currently development runs on a Promox virtual machine with 2 cores and 8 GB of RAM and 100 GB disk storage.
As tools, we only need:
- a running node.js installation (version 20.18 in alignment with the Strapi requirements)
- a database to connect to (recommended: mysql or mariadb)
gitinstalled and configured. It is recommended to use thesshaccess with public key authentication
Staging Environment
The staging environment is used to (1) do testing/unit testing during development using the development branch of the GitHub repositories and (2) Release-to-Production (RTP) testing using the production branch of the repositories (for git setup and release management see here)
As we are using the staging environment for RTP testing it should mimic the production environment as close as possible. Staging environment is hence setup as a Proxmox virtual machine with 1 core, 2 GB RAM and 40 GB of disk storage. This is sufficiently close to the production environment.
To allow for convenient testing, the Staging environment uses its own domain (klharriettes.club). The setup is identical to the production environment for admin.klharriettes.club and the homepage (www.klharriettes.club). Integrating test environments for Reporting and the Image Gallery does not add much value, hence the respective links point to the production endpoints.
Production Environment
For the specifications of Webserver and Piwigo Server see above. It should be obvious, that manual installs or code changes on the production environment should be strictly avoided. Also, in the production environment only the production branch of the GitHub repositories should be used.
