HTTPS: Caddy Reverse Proxy + Domain-Umstellung bollwerk.online #95

Closed
opened 2026-05-17 16:08:56 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-17 16:08:56 +00:00 (Migrated from github.com)

Kontext

Die Domain bollwerk.online ist registriert und zeigt per DNS auf den VPS (195.246.231.210). Aktuell läuft der Ktor-Server direkt auf Port 8080 ohne HTTPS. Für eine sichere Verbindung (API, WebSocket, App-Downloads) muss ein Reverse Proxy mit automatischem TLS-Zertifikat eingerichtet werden.

Akzeptanzkriterien

1. Caddy als Reverse Proxy auf VPS installieren

  • Caddy auf Debian 12 installieren (offizielles APT-Repo)
  • Caddyfile erstellen: bollwerk.online → localhost:8080
  • Automatisches HTTPS via Let's Encrypt (Port 80 + 443)
  • WebSocket-Proxying konfigurieren (/ws/*)
  • Caddy als systemd-Service aktivieren (auto-start)

2. Docker-Port auf localhost beschränken

  • docker-compose.yml: Port-Binding von 8080:8080 auf 127.0.0.1:8080:8080 ändern
  • Container neu deployen und testen

3. Code-Referenzen updaten

  • SettingsKey.kt: DEFAULT_SERVER_URL von http://195.246.231.210:8080 auf https://bollwerk.online
  • run-integration-tests.ps1: Default-BaseUrl aktualisieren
  • .github/skills/publish/SKILL.md + publish-apk.ps1: URL-Referenzen aktualisieren
  • .github/skills/vps-deploy/SKILL.md: Domain statt IP dokumentieren

4. Verifizierung

  • https://bollwerk.online liefert Homepage (HTML)
  • https://bollwerk.online/api/version liefert JSON
  • App verbindet sich per HTTPS zum Server
  • HTTP → HTTPS Redirect funktioniert

Technische Hinweise

  • VPS: Debian 12, 1 GB RAM, 1984 Hosting (Island)
  • DNS: A-Record @ → 195.246.231.210, CNAME www/* → @
  • Ktor unterstützt bereits X-Forwarded-Proto/X-Forwarded-Host Header (VersionRoutes.kt)
  • Caddy setzt diese Header automatisch
  • Postgres-Port (5432) ist aktuell auch extern exponiert – sollte ebenfalls auf 127.0.0.1 beschränkt werden
## Kontext Die Domain `bollwerk.online` ist registriert und zeigt per DNS auf den VPS (`195.246.231.210`). Aktuell läuft der Ktor-Server direkt auf Port 8080 ohne HTTPS. Für eine sichere Verbindung (API, WebSocket, App-Downloads) muss ein Reverse Proxy mit automatischem TLS-Zertifikat eingerichtet werden. ## Akzeptanzkriterien ### 1. Caddy als Reverse Proxy auf VPS installieren - [ ] Caddy auf Debian 12 installieren (offizielles APT-Repo) - [ ] Caddyfile erstellen: `bollwerk.online` → `localhost:8080` - [ ] Automatisches HTTPS via Let's Encrypt (Port 80 + 443) - [ ] WebSocket-Proxying konfigurieren (`/ws/*`) - [ ] Caddy als systemd-Service aktivieren (auto-start) ### 2. Docker-Port auf localhost beschränken - [ ] `docker-compose.yml`: Port-Binding von `8080:8080` auf `127.0.0.1:8080:8080` ändern - [ ] Container neu deployen und testen ### 3. Code-Referenzen updaten - [ ] `SettingsKey.kt`: `DEFAULT_SERVER_URL` von `http://195.246.231.210:8080` auf `https://bollwerk.online` - [ ] `run-integration-tests.ps1`: Default-BaseUrl aktualisieren - [ ] `.github/skills/publish/SKILL.md` + `publish-apk.ps1`: URL-Referenzen aktualisieren - [ ] `.github/skills/vps-deploy/SKILL.md`: Domain statt IP dokumentieren ### 4. Verifizierung - [ ] `https://bollwerk.online` liefert Homepage (HTML) - [ ] `https://bollwerk.online/api/version` liefert JSON - [ ] App verbindet sich per HTTPS zum Server - [ ] HTTP → HTTPS Redirect funktioniert ## Technische Hinweise - VPS: Debian 12, 1 GB RAM, 1984 Hosting (Island) - DNS: A-Record `@` → `195.246.231.210`, CNAME `www`/`*` → `@` - Ktor unterstützt bereits `X-Forwarded-Proto`/`X-Forwarded-Host` Header (VersionRoutes.kt) - Caddy setzt diese Header automatisch - Postgres-Port (5432) ist aktuell auch extern exponiert – sollte ebenfalls auf `127.0.0.1` beschränkt werden
jreinemann-euris commented 2026-05-17 16:42:14 +00:00 (Migrated from github.com)

Abgeschlossen (2026-05-17)

Durchgeführte Aufgaben

  • Caddy als Reverse Proxy auf VPS installiert (offizielles APT-Repo)
  • Caddyfile erstellt: \ollwerk.online → localhost:8080\ mit WebSocket-Proxying
  • Automatisches HTTPS via Let's Encrypt (Port 80 + 443)
  • Caddy als systemd-Service aktiviert (auto-start)
  • \docker-compose.yml: Port-Bindings auf \127.0.0.1\ beschränkt (8080 + 5432)
  • \SettingsKey.kt: DEFAULT_SERVER_URL → \https://bollwerk.online\

  • un-integration-tests.ps1: BaseUrl-Default aktualisiert
  • \publish/SKILL.md\ + \publish-apk.ps1: URL-Referenzen auf HTTPS
  • \ ps-deploy/SKILL.md: Domain statt IP dokumentiert
  • DB-Migration: \krisenvorrat\ → \ollwerk\ (User + Datenbank umbenannt, Daten erhalten)

Verifikation

## Abgeschlossen (2026-05-17) ### Durchgeführte Aufgaben - ✅ Caddy als Reverse Proxy auf VPS installiert (offizielles APT-Repo) - ✅ Caddyfile erstellt: \ollwerk.online → localhost:8080\ mit WebSocket-Proxying - ✅ Automatisches HTTPS via Let's Encrypt (Port 80 + 443) - ✅ Caddy als systemd-Service aktiviert (auto-start) - ✅ \docker-compose.yml\: Port-Bindings auf \127.0.0.1\ beschränkt (8080 + 5432) - ✅ \SettingsKey.kt\: DEFAULT_SERVER_URL → \https://bollwerk.online\ - ✅ \ un-integration-tests.ps1\: BaseUrl-Default aktualisiert - ✅ \publish/SKILL.md\ + \publish-apk.ps1\: URL-Referenzen auf HTTPS - ✅ \ ps-deploy/SKILL.md\: Domain statt IP dokumentiert - ✅ DB-Migration: \krisenvorrat\ → \ollwerk\ (User + Datenbank umbenannt, Daten erhalten) ### Verifikation - \https://bollwerk.online/api/version\ → JSON ✅ - HTTP → HTTPS Redirect (308) ✅ - Server-Logs: keine krisenvorrat-Referenzen, keine Errors ✅
Sign in to join this conversation.
No description provided.