Architektur

Wie die Teile zusammenspielen

Logische Schichten

  1. Internet — HTTPS zu Traefik (Ports 80/443 auf dem Host)
  2. Traefik — TLS-Terminierung, Host-basiertes Routing ins Docker-Netz proxy
  3. Anwendungs-Container — OpenClaw, Dokumentation (nginx), optional Authelia
  4. Internes Netzinternal (Bridge) für Dienste untereinander

Typischer HTTPS-Flow

Browser │ https://openclaw.<DOMAIN> / gateway.<DOMAIN> / doc.<DOMAIN> / traefik.<DOMAIN> ▼ Traefik (Container, Netz "proxy") ├─► openclaw-gateway:18789 (Dashboard + WS) ├─► cas-docs:80 (nginx, statische HTML aus /opt/cas/repo/docs/site) └─► traefik API / Authelia (optional)

Verzeichnisse auf dem Server

Repository & CLI (Bootstrap):

Laufzeit-Konfiguration (Compose, Secrets, OpenClaw):

OpenClaw Gateway & CLI

Der Container openclaw-cli nutzt network_mode: service:openclaw-gateway — er teilt sich den Netzwerk-Stack mit dem Gateway. So greifen CLI-Befehle auf dieselbe lokale OpenClaw-Instanz zu wie die UI.

Workspaces liegen unter /home/cas/cas/openclaw/workspace/ auf dem Host und sind im Gateway als /home/node/workspace/ gemountet.

Dokumentations-Container

Der Service cas-docs (nginx) bindet read-only den Pfad /opt/cas/repo/docs/site ein. Nach cas update --self liegen neuere HTML-Dateien sofort vor; ein erneutes docker compose up -d ist dafür nicht nötig (ggf. Browser-Cache leeren).

TLS & Wildcard

Traefik nutzt Let’s Encrypt mit DNS-01 über den Hetzner-API-Token. Für die konfigurierte DOMAIN wird ein Zertifikat mit SAN *.<DOMAIN> angefordert — damit sind openclaw, gateway, doc, traefik, auth (Authelia) abgedeckt, sofern DNS stimmt.