# ════════════════════════════════════════════════════════ # ARIA RVS Stack — WebSocket Relay + OAuth Callback HTTP # Apps/Satelliten/Boxen brauchen TLS (wss://), OAuth-Provider # wie Spotify HTTPS. Wer TLS macht, waehlt die .env: # # A) COMPOSE_PROFILES=caddy — Caddy hier im Stack holt das # Zertifikat selbst (Let's Encrypt, HTTP-01 ueber Port 80). # Voraussetzung: Port 80 + CADDY_HTTPS_PORT von aussen auf # diese Maschine, PUBLIC_URL zeigt per DNS hierher. # # B) COMPOSE_PROFILES= — OHNE Caddy. Ein vorhandener # Reverse-Proxy (nginx, Traefik, ...) macht TLS und zeigt auf # den unverschluesselten RVS-Port (RVS_HTTP_BIND:RVS_HTTP_PORT). # nginx-Beispiel: README → RVS → "Ohne Caddy". # ════════════════════════════════════════════════════════ # # Start: docker compose up -d services: rvs: build: . restart: always # Unverschluesselter RVS-Port fuer einen externen Reverse-Proxy (Modus B). # Default nur 127.0.0.1 — steht der Proxy auf einem ANDEREN Rechner, # RVS_HTTP_BIND=0.0.0.0 (oder die interne IP) setzen und den Port per # Firewall nur fuer den Proxy freigeben: hier laeuft alles im Klartext. ports: - "${RVS_HTTP_BIND:-127.0.0.1}:${RVS_HTTP_PORT:-3000}:3000" volumes: - ./updates:/updates # APK-Dateien fuer Auto-Update - ./data/rvs-tls:/certs # internes Zertifikat (RVS_HTTP_TLS) environment: - RVS_HTTP_TLS=${RVS_HTTP_TLS:-false} - MAX_SESSIONS=10 # 4 GB V8-Heap — sonst OOM beim Empfang von 1 GB-Files # (base64 inflated ~1.34 GB plus WS-Frame-Margin). - NODE_OPTIONS=--max-old-space-size=4096 networks: - aria-rvs-net # TLS-Terminator + Let's Encrypt. Holt automatisch ein Zertifikat # fuer ${PUBLIC_URL} (HTTP-01 Challenge ueber Port 80). WebSocket- # Upgrades und HTTP-Routes (OAuth-Callback) werden im reverse-proxy # Modus automatisch durchgereicht. ACME-Cache liegt in ./data/caddy/ # damit Restart nicht jedes Mal ein neues Cert holt (Rate-Limit!). caddy: image: caddy:latest profiles: ["caddy"] # nur mit COMPOSE_PROFILES=caddy restart: always ports: - "80:80" - "${CADDY_HTTPS_PORT:-444}:443" command: caddy reverse-proxy --from ${PUBLIC_URL} --to rvs:3000 volumes: - ./data/caddy/data:/data # Zertifikate (PERSISTENT) - ./data/caddy/config:/config # Caddy-Config-Cache depends_on: - rvs networks: - aria-rvs-net networks: aria-rvs-net: