Alle Projekte

Aufbau der Plattform

Ein VPS, Docker mit einem Container pro Dienst und Traefik als einziger Eingang. Certbot läuft direkt auf dem Host.

Aufbau der PlattformEin Browser ruft Traefik auf, den einzigen Eingang. Auf dem VPS läuft Docker mit einem Container pro Dienst. Traefik und die beiden nginx-Container teilen das Netzwerk traefik_proxy, WordPress und die Datenbank hängen nur an einem internen Netzwerk mit den nginx-Containern. Für odabas.ch und waverider52.com reicht Traefik das TLS nur unverschlüsselt durch (Passthrough) an die jeweils eigenen nginx-Container, die selbst terminieren: nginx-odabas auf Port 8081, nginx-waverider auf Port 8082 — beide erhalten ihre Zertifikate direkt von Certbot per Mount, nicht über Traefik. nginx-odabas liefert seit dem Cutover die statischen Astro-Dateien aus, der frühere WordPress-Container ist gestoppt, nicht gelöscht. Dazu eine geplante Spring-Boot-Anwendung mit Angular-Frontend (eigene PostgreSQL-Datenbank) und eine geplante Python-Anwendung (nutzt dieselbe gemeinsame MariaDB wie waverider52.com). Certbot muss Traefik bei jeder Zertifikatserneuerung kurz stoppen und wieder starten, damit certbot Port 80 für die eigene Prüfung frei bekommt. In der gemeinsamen MariaDB liegen die Datenbank von waverider52.com und die seit der Umstellung auf Astro ungenutzte Datenbank von odabas.ch; die Daten liegen auf einem Bind-Mount (./data/db-shared, ein eingehängter Host-Ordner, kein benanntes Docker-Volume). Die Spring-Boot-Anwendung soll eine eigene PostgreSQL-Instanz bekommen; die Python-Anwendung nutzt die gemeinsame MariaDB. Certbot läuft direkt auf dem Host per Cron, erneuert die Zertifikate und startet Traefik dabei neu.BrowserVPSCertbotHost, per CronZertifikatestop/start bei ErneuerungDocker: jeder Kasten ist ein ContainerDocker-Netzwerke:traefik_proxy, internTraefikeinziger Eingang, Port 80/443:8082:8081TLS-Passthroughwaverider52.comnginxWebserverWordPressPHPodabas.chnginxPortfolioWordPressgestopptSpring Boot + AngularSpring BootBackendAngularFrontendPythonPython-AppgeplantMariaDBgemeinsamPostgreSQLgemeinsam, geplantBind-Mount: ./data/db-sharedVolumeläuftgeplant, gestoppt oder ersetzt

Beiträge