Wie konfiguriert man das Caddyfile für OpenProject, damit der Hocuspocus-Container vom Client erreichbar ist?

Antwort vom

Damit der Client (Browser) den **Hocuspocus-Container** (Yjs/Collaboration) über **Caddy** erreichen kann, brauchst du im Caddyfile im Kern: 1) **einen eigenen Hostnamen (Subdomain) für Hocuspocus** (empfohlen), der per Reverse Proxy auf den Container zeigt 2) **WebSocket-Proxying** (Upgrade/Connection) – Caddy kann das automatisch, solange du `reverse_proxy` nutzt 3) **TLS** (automatisch via ACME), damit der Browser WebSockets als `wss://` nutzen kann ### Beispiel (empfohlen): getrennte Subdomain für Hocuspocus ```caddyfile # OpenProject (Web) openproject.example.com { reverse_proxy openproject:8080 } # Hocuspocus (Collaboration / WebSocket) collab.openproject.example.com { reverse_proxy hocuspocus:1234 } ``` - `openproject:8080` = OpenProject-Webcontainer (Port ggf. anpassen) - `hocuspocus:1234` = Hocuspocus-Container (Port ggf. anpassen) - Wichtig: DNS muss auf deinen Caddy zeigen (A/AAAA) für beide Hosts. ### Alternative: Hocuspocus unter einem Pfad derselben Domain (nur wenn dein Setup das so vorsieht) ```caddyfile openproject.example.com { reverse_proxy /collaboration/* hocuspocus:1234 reverse_proxy openproject:8080 } ``` Hinweise: - Das funktioniert nur, wenn OpenProject bzw. der Client wirklich auf `https://openproject.example.com/collaboration` (oder deinen Pfad) konfiguriert ist und Hocuspocus den Pfad akzeptiert/korrekt routet. ### Typische Stolpersteine (kurz) - **CORS/Origin**: Bei Subdomain-Setup muss Hocuspocus ggf. die Origin `https://openproject.example.com` erlauben (je nach Hocuspocus-Konfiguration). - **Interne DNS-Namen**: `openproject`/`hocuspocus` müssen im selben Docker-Netzwerk auflösbar sein (Compose-Service-Name). - **Port-Mismatch**: Der im Container tatsächlich offene Port muss im `reverse_proxy` stimmen. (Links: Caddy https://caddyserver.com/ , OpenProject https://www.openproject.org/ , Hocuspocus https://hocuspocus.dev/ )

Neue Frage stellen