feat(rvs): Caddy optional per COMPOSE_PROFILES — oder eigener Reverse-Proxy

Neu in rvs/.env: COMPOSE_PROFILES=caddy (wie bisher, Caddy macht TLS) oder
leer (ohne Caddy). Der RVS bietet dafuer immer einen unverschluesselten Port
an (RVS_HTTP_BIND:RVS_HTTP_PORT, Default 127.0.0.1:3000), auf den ein
vorhandener nginx/Traefik zeigt — statt nginx → Caddy → RVS mit doppeltem TLS.
Caddys HTTPS-Port ist jetzt CADDY_HTTPS_PORT (Default 444 wie bisher).

README: beide Modi, nginx-Vorlage mit WebSocket-Headern und IPv6, Hinweis
dass Caddy fuer die Zertifikats-Erneuerung Port 80 von aussen braucht.
Bestehende Installationen mit Caddy muessen COMPOSE_PROFILES=caddy eintragen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-25 12:22:11 +01:00
co-authored by Claude Opus 5.5
parent 35436bff3c
commit 88036bcad3
3 changed files with 99 additions and 28 deletions
+19 -4
View File
@@ -3,12 +3,27 @@
# Kopieren nach .env und Werte eintragen.
# ════════════════════════════════════════════════════════
# ── Wer macht TLS? ──────────────────────────────────────
# caddy = Caddy hier im Stack holt das Zertifikat selbst (Let's Encrypt)
# (leer) = OHNE Caddy: ein vorhandener Reverse-Proxy (nginx, Traefik ...)
# macht TLS und zeigt auf den RVS-Port unten
COMPOSE_PROFILES=caddy
# ── Modus caddy ─────────────────────────────────────────
# Oeffentlich erreichbarer DNS-Name dieses Servers. Caddy holt darauf ein
# Let's Encrypt-Zertifikat (HTTP-01 Challenge ueber Port 80) und routet
# WebSocket + HTTP weiter an den RVS-Container.
#
# WICHTIG:
# - Die Domain muss per DNS-A-Record/AAAA auf diese Maschine zeigen
# - Port 80 + 443 muessen vom Internet aus erreichbar sein
# - Kein anderer Reverse-Proxy davor (sonst Cert-Konflikt)
# - Port 80 muss von aussen HIERHER gehen (sonst laeuft das Zertifikat
# nach 90 Tagen still ab — Fritzbox: Freigabe auf 80 pruefen!)
PUBLIC_URL=rvs.example.de
# Port, auf dem Caddy HTTPS anbietet (Apps/Satelliten: dieser Port)
CADDY_HTTPS_PORT=444
# ── Modus ohne Caddy ────────────────────────────────────
# Unverschluesselter RVS-Port, auf den der Reverse-Proxy zeigt.
# 127.0.0.1 = nur von diesem Rechner. Steht der Proxy woanders:
# 0.0.0.0 bzw. die interne IP — und den Port per Firewall NUR fuer
# den Proxy freigeben (Klartext!).
RVS_HTTP_BIND=127.0.0.1
RVS_HTTP_PORT=3000