Skip to main content

Storage

tvarr stores data in several directories.

Directory Structure

/data/
├── tvarr.db # SQLite database (if using SQLite)
├── logos/ # Cached channel logos
├── output/ # Generated M3U/XMLTV files
├── temp/ # Temporary files
└── themes/ # Custom UI themes

Configuration

# Base directory (all others relative to this)
TVARR_STORAGE_BASE_DIR=/data

# Override individual directories
TVARR_STORAGE_LOGO_DIR=/data/logos
TVARR_STORAGE_OUTPUT_DIR=/data/output
TVARR_STORAGE_TEMP_DIR=/data/temp

Logo Cache

Channel logos are downloaded and cached locally:

# How long to keep cached logos
TVARR_STORAGE_LOGO_RETENTION=720h # 30 days

# Maximum logo file size
TVARR_STORAGE_MAX_LOGO_SIZE=5242880 # 5MB

Logos are stored with SHA256-based names and include HTTP cache headers.

Docker Volumes

When using Docker, mount the data directory:

volumes:
- tvarr-data:/data

Or bind mount to host:

volumes:
- /path/on/host:/data

Permissions

Ensure the container user can read/write the data directory:

# Set ownership
chown -R 1000:1000 /path/to/data

# Or set PUID/PGID in container
environment:
- PUID=1000
- PGID=1000