Auch verfügbar in: 🇬🇧 English

Konfiguration

Inhalt

🇬🇧 English Version


ITSWEBER Play wird über Umgebungsvariablen konfiguriert. Im All-in-One-Container sind Datenbank, Cache und Objektspeicher intern vorkonfiguriert — für ein einfaches Setup genügen nur zwei Pflichtangaben.


All-in-One-Hinweis

Im offiziellen AIO-Container (ghcr.io/itsweber-official/itsweber-play:main) laufen Postgres, Redis und MinIO intern als s6-overlay-Services. Sie müssen nicht extern bereitgestellt werden. Verbindungsstrings werden automatisch gesetzt.

Für ein funktionsfähiges Basis-Setup sind nur erforderlich:

  • BASE_URL — Die öffentliche URL der Instanz
  • INITIAL_ADMIN_EMAIL — E-Mail-Adresse des ersten Admin-Kontos

Umgebungsvariablen

Erforderlich

Variable Standard Beschreibung
BASE_URL Vollständige öffentliche URL der Instanz, z. B. https://play.example.com. Wird für signierte URLs, E-Mail-Links und CORS verwendet.
INITIAL_ADMIN_EMAIL E-Mail-Adresse, die beim ersten Login automatisch Admin-Rechte erhält. Nur einmalig ausgewertet.

Optional — Instanz

Variable Standard Beschreibung
INSTANCE_NAME ITSWEBER Play Anzeigename im UI-Header und Browser-Titel
REGISTRATION_ENABLED true Neue Benutzerregistrierungen erlauben. false aktiviert den Einladungs-Modus.
MAX_UPLOAD_SIZE_MB 5120 Maximale Upload-Dateigröße in MB. Standard entspricht 5 GB.

Optional — Datenbank

Im AIO-Container automatisch konfiguriert. Nur bei externem Postgres-Einsatz setzen.

Variable Standard Beschreibung
DATABASE_URL auto (AIO) Postgres-Verbindungsstring, z. B. postgresql://user:pass@host:5432/db

Optional — Cache

Im AIO-Container automatisch konfiguriert. Nur bei externem Redis-Einsatz setzen.

Variable Standard Beschreibung
REDIS_URL auto (AIO) Redis-Verbindungsstring, z. B. redis://host:6379

Optional — S3/MinIO

Im AIO-Container automatisch konfiguriert. Nur bei externem S3-kompatiblem Speicher setzen.

Variable Standard Beschreibung
MINIO_ENDPOINT auto (AIO) S3-Endpunkt-URL, z. B. https://s3.example.com
MINIO_ACCESS_KEY auto (AIO) S3-Zugriffsschlüssel (Access Key ID)
MINIO_SECRET_KEY auto (AIO) S3-Geheimschlüssel (Secret Access Key)
MINIO_BUCKET_RAW play-raw Bucket für Roh-Uploads
MINIO_BUCKET_VIDEOS play-videos Bucket für HLS-Ausgaben
MINIO_BUCKET_THUMBS play-thumbs Bucket für Thumbnails
MINIO_BUCKET_ASSETS play-assets Bucket für Instanz-Assets (Logo etc.)

Optional — E-Mail

Ohne E-Mail-Konfiguration sind Passwort-Reset und Benachrichtigungen deaktiviert.

Variable Standard Beschreibung
SMTP_HOST Hostname des SMTP-Servers, z. B. smtp.mailgun.org
SMTP_PORT 587 SMTP-Port (587 = STARTTLS, 465 = SSL)
SMTP_USER SMTP-Benutzername
SMTP_PASS SMTP-Passwort
SMTP_FROM Absenderadresse, z. B. noreply@example.com
SMTP_SECURE false true für Port 465 (direkt SSL), false für STARTTLS

Optional — Erweitert

Variable Standard Beschreibung
LOG_LEVEL info Log-Verbosity: debug, info, warn, error
WORKER_CONCURRENCY 2 Parallele Transcodierungsjobs pro Worker-Prozess
SESSION_SECRET auto Geheimer Schlüssel für Session-Signierung. Im AIO zufällig generiert; bei mehreren Instanzen manuell setzen.

Beispiel: docker-compose.yml

services:
  play:
    image: ghcr.io/itsweber-official/itsweber-play:main
    container_name: itsweber-play
    ports:
      - "3000:3000"
    volumes:
      - play-data:/data
    environment:
      BASE_URL: "https://play.example.com"
      INITIAL_ADMIN_EMAIL: "admin@example.com"
      INSTANCE_NAME: "Meine Video-Plattform"
      SMTP_HOST: "smtp.mailgun.org"
      SMTP_PORT: "587"
      SMTP_USER: "postmaster@example.com"
      SMTP_PASS: "geheim"
      SMTP_FROM: "noreply@example.com"
    restart: unless-stopped

volumes:
  play-data:

Produktions-Checkliste

Vor dem Go-Live empfohlene Einstellungen prüfen:

  • [ ] BASE_URL auf die echte HTTPS-URL gesetzt (kein http://, kein Trailing-Slash)
  • [ ] INITIAL_ADMIN_EMAIL gesetzt und identisch mit der bei der Registrierung verwendeten Adresse
  • [ ] SMTP konfiguriert (Passwort-Reset, Benachrichtigungen)
  • [ ] Container hinter Reverse Proxy (Nginx/Traefik/Caddy) mit TLS-Terminierung
  • [ ] Datenpersistenz: Volume play-data auf zuverlässigem Host-Pfad gemountet
  • [ ] Regelmäßige Backups des Volumes eingerichtet (enthält Postgres-Daten, MinIO-Objekte, Redis-Snapshots)
  • [ ] MAX_UPLOAD_SIZE_MB an verfügbaren Speicherplatz angepasst
  • [ ] Reverse Proxy client_max_body_size auf denselben oder größeren Wert gesetzt

Hinweis zu Unraid

Auf Unraid werden alle Werte über das Community Applications-Template in der GUI gepflegt. Die Template-Datei befindet sich unter docker/unraid/itsweber-play.xml. Siehe Unraid-Installation für die vollständige Anleitung.


© Benjamin Weber · ITSWEBER — play.itsweber.net · GitHub