Reorganised deployment scripts and added rollback functionality. Updated documentation and workflow for container image builds.
Test and publish container images / test (push) Successful in 2m50s
Test and publish container images / publish (push) Failing after 54s

This commit is contained in:
BuTzZ
2026-07-25 12:36:35 +02:00
parent 12eee8d211
commit c9a20aacd7
17 changed files with 642 additions and 73 deletions
+13 -6
View File
@@ -3,14 +3,20 @@
Diese OpenTofu-Konfiguration erstellt einen einzelnen Ubuntu-24.04-Server mit
fester IPv4-Adresse, vorgeschalteter Hetzner-Firewall und einem persistenten
ext4-Volume für die Routingdaten von Deutschland und den Niederlanden.
Kartenkacheln, DNS-Einträge und Anwendungsdeployment sind bewusst nicht Teil
dieses Infrastrukturmoduls.
Kartenkacheln, DNS-Einträge und konkrete Anwendungsversionen sind bewusst nicht
Teil dieses Infrastrukturmoduls. Die Anwendung wird anschließend als
commitgenaues Container-Image aus der Gitea Registry deployt.
## Konfiguration
Die lokale Datei `terraform.tfvars` ist bereits angelegt und wird durch die
lokale `.gitignore` ausgeschlossen. Vor dem ersten Plan müssen dort mindestens
folgende Werte ersetzt werden:
Die lokale Datei `terraform.tfvars` wird aus der versionierten Vorlage angelegt
und durch die lokale `.gitignore` ausgeschlossen:
```sh
cp terraform.tfvars.example terraform.tfvars
```
Vor dem ersten Plan müssen dort mindestens folgende Werte ersetzt werden:
- `hcloud_token`: Read/Write-API-Token des richtigen Hetzner-Cloud-Projekts
- `ssh_public_key`: vollständiger Inhalt des öffentlichen SSH-Schlüssels
@@ -58,7 +64,8 @@ bereitstehen.
## Auf dem Server
Cloud-init installiert Docker einschließlich Compose v2, `curl`, `jq` und
`rsync`. Der Benutzer `deploy` erhält Zugriff per SSH und auf Docker. Das
`rsync`. Der Benutzer `deploy` erhält Zugriff per SSH und auf Docker. Es wird
kein Git-Repository auf den Server geklont. Das
persistente Volume wird nach dem Anhängen unter `/srv/watermaps-data` gemountet
und enthält die vom Produktions-Stack verwendeten Verzeichnisse `geofabrik`,
`local` und `certbot`. Ein systemd-Drop-in lässt Docker bei jedem Start auf den
+1 -2
View File
@@ -127,8 +127,7 @@ write_files:
runcmd:
- [install, -d, -m, "0755", -o, ${deploy_user}, -g, ${deploy_user}, /opt/watermaps]
- [install, -d, -m, "0755", -o, ${deploy_user}, -g, ${deploy_user}, /opt/watermaps/releases]
- [install, -d, -m, "0755", -o, ${deploy_user}, -g, ${deploy_user}, /opt/watermaps/shared]
- [install, -d, -m, "0755", -o, ${deploy_user}, -g, ${deploy_user}, /opt/watermaps/deploy]
- [install, -d, -m, "0755", -o, ${deploy_user}, -g, ${deploy_user}, /var/www/certbot]
- [systemctl, daemon-reload]
- [systemctl, enable, --now, watermaps-volume-setup.service]