# Silo Docker deployment # For the default docker compose setup, MEDIA_ROOT is the main value you need to set. # Optional: layer compose files through env. Leave unset for CPU-only defaults. # Linux example for Intel/AMD VA-API or Intel Quick Sync: # COMPOSE_FILE=docker-compose.yml:docker-compose.vaapi.yml # Linux example for NVIDIA NVENC: # COMPOSE_FILE=docker-compose.yml:docker-compose.nvidia.yml # Windows NVIDIA example: # COMPOSE_FILE=docker-compose.yml;docker-compose.nvidia.yml # Required for docker compose: host path to your media library. # Example: MEDIA_ROOT=/srv/media MEDIA_ROOT=/srv/media # Container path where Silo sees MEDIA_ROOT. New installs can keep /mnt/media. # Continuum migrations should set this to the old in-container library path if # existing library records use that path. MEDIA_CONTAINER_ROOT=/mnt/media # Recommended server data root for bind mounts. SILO_DATA_ROOT=/opt/silo # Published application image. Override to pin a specific tag if needed. SILO_IMAGE=ghcr.io/silo-server/silo-server:latest # Quick-start bundled PostgreSQL settings used by docker-compose.yml. POSTGRES_USER=silo POSTGRES_PASSWORD=silo POSTGRES_DB=silo POSTGRES_SHM_SIZE=8gb # POSTGRES_PORT=5432 # REDIS_PORT=6379 # Optional Meilisearch service. Generate a key, uncomment it, then start the # search profile with: docker compose --profile search up -d # MEILI_MASTER_KEY=replace-with-output-of-openssl-rand-hex-32 # MEILISEARCH_IMAGE=getmeili/meilisearch:latest # MEILISEARCH_HOST=127.0.0.1 # MEILISEARCH_PORT=7700 # PostgreSQL auto-tuning is enabled by default in docker-compose.yml. Silo # applies pgtune-style OLTP recommendations through ALTER SYSTEM at startup. # Set POSTGRES_TUNE=off if you manage PostgreSQL tuning yourself. # POSTGRES_TUNE=off # POSTGRES_TUNE_PROFILE=oltp # POSTGRES_TUNE_MEMORY=auto # POSTGRES_TUNE_MEMORY_BUDGET_PERCENT=75 # POSTGRES_TUNE_CPUS=auto # POSTGRES_TUNE_STORAGE=ssd # POSTGRES_TUNE_DB_SIZE=auto # POSTGRES_TUNE_CONNECTIONS=100 # Optional host port overrides for docker-compose.yml. The container listeners # remain fixed, so these values only change the host side of each port mapping. # PORT=8090 # Used only after Jellyfin-compatible app support is enabled by an admin. # JF_PORT=8096 # PROXY_PORT=8083 # TRANSCODE_PORT=8082 # Optional NVIDIA override controls (used by docker-compose.nvidia.yml). # NVIDIA_GPU_COUNT=1 # REQUIRED: master key for at-rest credential encryption. Silo refuses to start # without it. Integration API keys, S3 keys, and other server-owned secrets are # encrypted under a key derived from this value, so it must be at least 32 # characters and kept secret. Generate one with: # openssl rand -base64 48 # Back it up SEPARATELY from your database dumps (treat it like a CA private # key): losing it makes every encrypted secret unrecoverable. See # docs/architecture/secret-encryption.md. # SECRET_KEY=replace-with-output-of-openssl-rand-base64-48 # Optional public URL for Silo. If not set, the server will use the IP address of the container. # SILO_PUBLIC_URL=https://silo.example.com # Optional trusted reverse-proxy CIDRs for client IP resolution. When set, this # overrides the "Trusted Proxies" admin setting on every startup (the value is # validated and written to server_settings, so the Admin UI shows it). Leave # unset to manage it from Admin > Settings > General instead. Defaults trust # RFC 1918 private ranges + loopback. # SILO_TRUSTED_PROXIES=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,::1/128,203.0.113.7/32 # Run from source / advanced overrides # Only DATABASE_URL is required when running Silo outside the default docker compose stack. # DATABASE_URL=postgres://silo:password@localhost:5432/silo # Optional Redis override when running from source or pointing workers at an external Redis. # REDIS_URL=redis://localhost:6379 # Optional standalone worker identity settings for custom worker deployments. # NODE_NAME=transcode-01 # NODE_URL=http://transcode-01.example.com:8082 # Optional server mode override for source runs or standalone worker nodes. # MODE=integrated #SILO_MIGRATE_TIMEOUT=60m