Once Tunarr is installed, you can tune its behavior through environment variables and command-line flags. All options listed below apply regardless of whether you run Tunarr in Docker or as a standalone binary. Docker users should prefer environment variables set in their Compose file orDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/chrisbenincasa/tunarr/llms.txt
Use this file to discover all available pages before exploring further.
docker run command.
Configuration Reference
Server
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_DATABASE_NAME | --database | '' | Path where Tunarr writes its data. Do not set this in Docker — use a bind mount pointed to /config/tunarr instead. |
TUNARR_SERVER_PORT | --port / -p | 8000 | Port the Tunarr server listens on. When using Docker, prefer a port mapping rather than setting this variable. |
TUNARR_BIND_ADDR | N/A | 0.0.0.0 | Network interface Tunarr binds to. By default, Tunarr listens on all interfaces. This rarely needs to be changed. |
TUNARR_SERVER_TRUST_PROXY | --trust_proxy | false | Enables trust proxy mode for deployments behind a reverse proxy. |
Logging
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_LOG_LEVEL | N/A | info | Log verbosity. Valid values: trace, debug, info, warn, error, fatal, silent. Overrides the UI setting. |
LOG_DIRECTORY | N/A | (data dir) | Custom directory for log files. Defaults to the Tunarr data directory. |
Streaming
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_SESSION_CLEANUP_DELAY_SECONDS | N/A | 15 | Seconds to wait before cleaning up a transcode session after the last client disconnects. |
Search (Meilisearch)
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_MEILISEARCH_PATH | N/A | (auto-detected) | Path to the Meilisearch binary. Tunarr searches common locations automatically if not set. |
TUNARR_SEARCH_PORT | N/A | (random available) | Port for the embedded Meilisearch instance. |
TUNARR_SEARCH_MAX_MEMORY | N/A | (unlimited) | Maximum memory for Meilisearch indexing (e.g. 1024Mb, 2Gb). See Meilisearch docs. |
TUNARR_SEARCH_MAX_INDEXING_THREADS | N/A | (all cores) | Maximum threads for Meilisearch indexing. Useful for limiting CPU usage on shared hosts. |
TUNARR_SEARCH_REDUCE_INDEXER_MEMORY_USAGE | N/A | true | Reduces Meilisearch memory consumption during indexing. See Meilisearch docs. May impact file storage. Not available on Windows. |
TUNARR_DISABLE_SEARCH_SNAPSHOT_IN_BACKUP | N/A | false | When true, excludes the Meilisearch snapshot from backups. The search index will be rebuilt from scratch on restore. |
Artwork
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_PROXY_ARTWORK | N/A | false | When true, Tunarr proxies artwork requests through itself rather than redirecting clients to the media server URL. Useful when clients cannot reach your media server directly (e.g. behind a firewall or on a different network segment). |
Transcoding
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_TONEMAP_ENABLED | N/A | false | Enables experimental HDR-to-SDR tonemapping when HDR source content is detected. See HDR Tonemapping. |
TUNARR_DISABLE_VULKAN | N/A | false | Disables Vulkan-based tonemapping in the CUDA pipeline. Use if Vulkan is unavailable or causing stream failures; Tunarr will fall back to software tonemapping. |
TUNARR_DISABLE_VAAPI_PAD | N/A | false | Disables hardware pad filters (pad_vaapi / pad_opencl) for VAAPI and falls back to software padding. Use if hardware padding causes artifacts or errors on your hardware. |
Performance
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_USE_WORKER_POOL | N/A | false | Enables an experimental worker thread pool for background tasks. |
TUNARR_WORKER_POOL_SIZE | N/A | (CPU count) | Number of threads in the worker pool. Recommended: no more than the number of CPUs on the host. |
Debug
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
TUNARR_SERVER_PRINT_ROUTES | --print_routes | false | Prints all server routes at startup. Useful for debugging routing issues. |
Hardware Transcoding
Tunarr supports hardware-accelerated transcoding via Nvidia NVENC, VAAPI (Intel/AMD), and Intel QuickSync. Enabling hardware acceleration in Docker requires passing the GPU device through to the container.- Nvidia NVENC
- VAAPI / Intel QSV
The recommended approach for Nvidia GPUs is to install and configure the Nvidia Container Toolkit on your host.Docker Compose:Docker CLI:
Running as a Service (Standalone Binary)
When using the standalone binary, it is strongly recommended to run Tunarr as a background service so it starts automatically and restarts on failure.- systemd (Linux)
- launchd (macOS)
- NSSM (Windows)
Follow these steps to install Tunarr as a systemd service:Paste the following service definition and replace Press
Move the binaries
Move both the Tunarr binary and the bundled Meilisearch binary to
/opt/tunarr. Replace the source paths with the locations of your downloaded files.On every update, you must replace both the Tunarr and Meilisearch binaries.
Create the service file
YOUR_USER and YOUR_GROUP with the Linux user and group you want Tunarr to run as:Ctrl+O then Enter to save, then Ctrl+X to exit.