Infrastruktur
Hosting
Die Infrastruktur des Projekts ist wie folgt aufgebaut:
- Server: Basic 4vCPUs, 8GB RAM Droplet (VPS) bei DigitalOcean
- Betriebssystem: Ubuntu 24.04 LTS
- Reverse Proxy: Nginx
- Runner: Self-Hosted Gitlab Runner mit Shell-Executor
Die Anwendungen (Frontend & Backend) werden in einer CI/CD Pipeline per Dockerfile gebaut und als Container auf dem Server bereitgestellt. Der Main-Branch wird automatisch gebaut und deployed.
- Frontend-URL: https://rapla.mdn-tech.de
- Backend-URL: https://rapla-backend.mdn-tech.de/
Zum Testen des Backends ist eine Health-Route unter https://rapla-backend.mdn-tech.de/health verfügbar, die OK zurückgibt, wenn der Server läuft.
Monitoring
Für die Verfügbarkeit der Anwendung wird das externe Monitoring-Tool Uptime-Kuma verwendet, das die Erreichbarkeit der URLs überwacht und bei Ausfällen Benachrichtigungen sendet.
- Uptime-Kuma Dashboard: https://monitoring.marceldittmann.de/status/rapla
Network
Die einzelnen Container (Frontend, Backend, Datenbank) sind über das interne Docker-Netzwerk database_default miteinander verbunden, um die Kommunikation zu ermöglichen.
| Anwendung | Container | Port |
|---|---|---|
| Frontend | web | 8090 |
| Backend | backend | 8091 |
| Datenbank | local_pgdb | 5432 |
Für das automatische Deployment des Backends sind die Umgebungsvariablen DB_URL, DB_USERNAME und DB_PASWORD für die Gruppe in Gitlab hinterlegt. Diese werden in der CI/CD Pipeline verwendet, um den Container mit den Umgebungsvariablen zur Laufzeit zu starten.
Backup
Für das einfache Backup der Datenbank wurde eine Backup-Routine mit Databasus eingerichtet, die täglich um 01:00 Uhr ein Backup der PostgreSQL-Datenbank erstellt. Databasus ist unter https://databasus.marceldittmann.de/ erreichbar und bietet eine Übersicht über die erstellten Backups sowie die Möglichkeit, diese herunterzuladen oder wiederherzustellen.