Docker-Installation
Inhalt
docker-compose.yml
Eine Datei docker-compose.yml mit folgendem Inhalt anlegen:
services:
play:
image: ghcr.io/itsweber-official/itsweber-play:main
container_name: itsweber-play
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- play-data:/data
environment:
BASE_URL: "https://play.example.com"
INITIAL_ADMIN_EMAIL: "admin@example.com"
volumes:
play-data:
BASE_URL durch die eigene öffentliche URL ersetzen und INITIAL_ADMIN_EMAIL mit der tatsächlichen E-Mail-Adresse belegen. Weitere Umgebungsvariablen (SMTP, S3-Overrides usw.) sind unter Konfiguration beschrieben.
Starten
docker compose up -d
Der Container startet alle internen Services via s6-overlay. Beim ersten Start 20–30 Sekunden einplanen, während Postgres initialisiert und Prisma-Migrationen durchlaufen.
Logs
docker compose logs -f play
Um einen bestimmten internen Service zu inspizieren:
docker compose exec play s6-log /run/service/api
Stoppen / Entfernen
docker compose down
docker compose down -v
Reverse-Proxy-Konfigurationen
HTTPS ist für den Produktionsbetrieb erforderlich. ITSWEBER Play auf Port 3000 betreiben und die TLS-Terminierung am Reverse Proxy vornehmen.
Nginx
server {
listen 443 ssl;
server_name play.example.com;
ssl_certificate /etc/letsencrypt/live/play.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/play.example.com/privkey.pem;
client_max_body_size 0; # Grosse Video-Uploads zulassen
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300s;
}
}
Traefik
Diese Labels dem play-Service in der Compose-Datei hinzufügen:
labels:
- "traefik.enable=true"
- "traefik.http.routers.play.rule=Host(`play.example.com`)"
- "traefik.http.routers.play.entrypoints=websecure"
- "traefik.http.routers.play.tls.certresolver=letsencrypt"
- "traefik.http.services.play.loadbalancer.server.port=3000"
Bei Verwendung von Traefik das ports-Mapping aus der Compose-Datei entfernen.
Caddy
play.example.com {
reverse_proxy localhost:3000 {
header_up X-Forwarded-Proto {scheme}
}
}
Caddy regelt HTTPS automatisch über Let's Encrypt.
HTTPS
HTTPS wird für jeden Produktionsbetrieb dringend empfohlen:
- Browser-Upload-APIs (
fetchmitReadableStream) erfordern einen sicheren Kontext. - Session-Cookies mit
SameSite=Laxverhalten sich nur über HTTPS korrekt. - Die HLS-Stream-Signierung setzt voraus, dass
BASE_URLdas Schemahttpsverwendet.
BASE_URL auf die https://-URL setzen und den Container nach der TLS-Konfiguration am Reverse Proxy neu starten.
Updates
docker compose pull
docker compose up -d
Der Container führt Prisma-Migrationen beim Start automatisch aus. Manuelle Datenbankschritte zwischen Versionen sind nicht erforderlich.