-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.production.yml
More file actions
72 lines (63 loc) · 2.33 KB
/
Copy pathdocker-compose.production.yml
File metadata and controls
72 lines (63 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
version: '3.8'
# ============================================
# SubCaster Production Docker Compose
# ============================================
# Verwendet das pre-built Image von GitHub Container Registry
#
# VERWENDUNG:
# 1. Fülle die ENV-Variablen unten aus (oder verwende .env Datei)
# 2. Starte mit: docker-compose -f docker-compose.production.yml up -d
# 3. Stoppe mit: docker-compose -f docker-compose.production.yml down
# 4. Update: docker-compose -f docker-compose.production.yml pull && docker-compose -f docker-compose.production.yml up -d
#
# ============================================
services:
subcaster:
image: ghcr.io/lokke/subcaster-server:latest
container_name: subcaster-server
restart: unless-stopped
ports:
- "31337:31337" # HTTP/WebSocket
- "40000-49999:40000-49999/udp" # WebRTC RTP
# Lade Variablen aus .env Datei
env_file:
- .env
# Nur System-Variablen, alles andere kommt aus .env
environment:
- NODE_ENV=production
- PORT=31337
- DOCKER_ENV=true
# ⚠️ WICHTIG: Setze deine öffentliche Server-IP für WebRTC
# - PUBLIC_IP=your.public.ip.here
volumes:
- ./docker-data:/app/docker-data
- ./waveform-cache:/app/waveform-cache
labels:
# Watchtower wird diesen Container automatisch updaten
- "com.centurylinklabs.watchtower.enable=true"
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:31337/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# # Watchtower - Automatisches Update-System
# watchtower:
# image: containrrr/watchtower:latest
# container_name: subcaster-watchtower
# restart: unless-stopped
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# environment:
# # Prüfe alle 5 Minuten auf neue Images
# - WATCHTOWER_POLL_INTERVAL=20
# # Nur Container mit Label updaten
# - WATCHTOWER_LABEL_ENABLE=true
# # Cleanup alte Images
# - WATCHTOWER_CLEANUP=true
# # Logs aktivieren
# - WATCHTOWER_DEBUG=false
# - WATCHTOWER_NOTIFICATIONS=shoutrrr
# # Optional: Notification URL (z.B. Discord Webhook)
# # - WATCHTOWER_NOTIFICATION_URL=discord://webhook_id/webhook_token
# command: --interval 300 --label-enable --cleanup