Skip to main content

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.

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.

Network

Die einzelnen Container (Frontend, Backend, Datenbank) sind über das interne Docker-Netzwerk database_default miteinander verbunden, um die Kommunikation zu ermöglichen.

AnwendungContainer Port
Frontendweb8090
Backendbackend8091
Datenbanklocal_pgdb5432

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.