Configuration
Inhalt
ITSWEBER Play is configured entirely via environment variables. In the all-in-one container, most services are pre-wired internally — only two variables are required to get a running instance.
All-in-One Quick Note
In the AIO container (ghcr.io/itsweber-official/itsweber-play:main), Postgres, Redis, and MinIO all run internally and are auto-configured. You do not need to set database, Redis, or S3 variables for a standard deployment.
Minimum required configuration:
BASE_URL=https://play.example.com
INITIAL_ADMIN_EMAIL=admin@example.com
Everything else has sensible defaults.
Environment Variables
Required
| Variable | Required | Default | Description |
|---|---|---|---|
BASE_URL |
Yes | — | Public URL of the instance, including scheme and no trailing slash. Example: https://play.example.com. Used for signed URLs, CORS, and email links. |
INITIAL_ADMIN_EMAIL |
Yes | — | Email address that will be auto-promoted to Admin on first signup. Only fires once. |
Optional — Instance
| Variable | Required | Default | Description |
|---|---|---|---|
INSTANCE_NAME |
No | ITSWEBER Play |
Name displayed in the UI header and page titles |
REGISTRATION_ENABLED |
No | true |
Set to false to disable new user registrations (invite-only mode) |
MAX_UPLOAD_SIZE_MB |
No | 5120 |
Maximum file size for video uploads in MB. Default is 5 GB. Also controls Nginx client_max_body_size. |
Optional — Database
Auto-configured in the all-in-one container. Set these only when using an external Postgres instance.
| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL |
No (AIO: auto) | auto | Postgres connection string. Example: postgresql://user:pass@host:5432/play |
REDIS_URL |
No (AIO: auto) | auto | Redis connection string. Example: redis://host:6379 |
Optional — S3 / MinIO
Auto-configured in the all-in-one container. Set these to use an external MinIO instance or any S3-compatible storage.
| Variable | Required | Default | Description |
|---|---|---|---|
MINIO_ENDPOINT |
No (AIO: auto) | auto | S3 endpoint URL. Example: https://s3.example.com |
MINIO_ACCESS_KEY |
No (AIO: auto) | auto | S3 access key ID |
MINIO_SECRET_KEY |
No (AIO: auto) | auto | S3 secret access key |
MINIO_BUCKET_PREFIX |
No | play |
Prefix for bucket names (play-raw, play-videos, play-thumbs, play-assets) |
MINIO_PUBLIC_URL |
No | BASE_URL/s3 |
Public base URL for MinIO assets. Defaults to proxying through Nginx. |
Optional — Email (SMTP)
Email is optional. Without it, no notification emails are sent (welcome, password reset, report resolution).
| Variable | Required | Default | Description |
|---|---|---|---|
SMTP_HOST |
No | — | SMTP server hostname. Example: smtp.postmarkapp.com |
SMTP_PORT |
No | 587 |
SMTP port. Use 465 for SSL, 587 for STARTTLS |
SMTP_USER |
No | — | SMTP username / login |
SMTP_PASS |
No | — | SMTP password |
SMTP_FROM |
No | — | From address for outbound emails. Example: noreply@play.example.com |
SMTP_SECURE |
No | false |
Set to true to use TLS from the start (port 465). Leave false for STARTTLS. |
Optional — Branding
| Variable | Required | Default | Description |
|---|---|---|---|
NEXT_PUBLIC_INSTANCE_NAME |
No | ITSWEBER Play |
Instance name exposed to the Next.js frontend (used in meta tags and OG data) |
NEXT_PUBLIC_BASE_URL |
No | Same as BASE_URL |
Public base URL for the frontend. Set if your frontend and API are on different origins. |
Production Checklist
Before going live, verify the following:
BASE_URLis set to the exact public URL (includinghttps://) — wrong values break signed playback URLs and CORSINITIAL_ADMIN_EMAILis set before the first signup- A persistent data volume is mounted at
/data— without this, all data is lost on container restart - Port 3000 is accessible or proxied (Unraid: set Network Type to
bridge, map Host Port 3000) - If using a reverse proxy (Nginx, Traefik, Caddy): proxy to port 3000, set
proxy_set_header X-Forwarded-Proto https - SMTP is configured if you want password-reset emails
MAX_UPLOAD_SIZE_MBis set to at least as large as your intended max video file size- Review the legal pages at
/impressum,/datenschutz, and/agb— fill them in at/admin/legal
Example docker-compose (Non-Unraid)
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
INSTANCE_NAME: My Video Platform
MAX_UPLOAD_SIZE_MB: 10240
volumes:
play-data:
© Benjamin Weber · ITSWEBER — play.itsweber.net · GitHub