54 lines
2.1 KiB
YAML
54 lines
2.1 KiB
YAML
# ════════════════════════════════════════════════════════
|
|
# ARIA RVS Stack — WebSocket Relay + OAuth Callback HTTP
|
|
# Caddy davor terminiert TLS via Let's Encrypt (HTTP-01
|
|
# Challenge ueber Port 80). OAuth-Provider wie Spotify
|
|
# verlangen HTTPS fuer non-localhost Redirect-URIs.
|
|
# ════════════════════════════════════════════════════════
|
|
#
|
|
# Voraussetzungen:
|
|
# - Port 80 + 443 frei (kein anderer Reverse-Proxy davor)
|
|
# - Domain (PUBLIC_URL) zeigt per DNS auf diese Maschine
|
|
# - .env mit PUBLIC_URL gesetzt
|
|
#
|
|
# Start: docker compose up -d
|
|
# Wenn Du einen eigenen TLS-Terminator nutzt (z.B. nginx,
|
|
# externer Caddy): caddy-service auskommentieren und
|
|
# rvs-Container den ports-Block geben (3000 → public Port).
|
|
|
|
services:
|
|
rvs:
|
|
build: .
|
|
restart: always
|
|
# KEIN ports-Block — Caddy ist davor, RVS nur intern
|
|
# via aria-rvs-net erreichbar. Wenn Du Caddy nicht nutzt,
|
|
# diesen ports-Block reaktivieren: ports: ["${RVS_PORT:-443}:3000"]
|
|
volumes:
|
|
- ./updates:/updates # APK-Dateien fuer Auto-Update
|
|
environment:
|
|
- MAX_SESSIONS=10
|
|
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
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
- "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:
|