Skip to main content
Jellyfin Server provides extensive configuration options to customize your media server experience. Configuration can be managed through the web interface, configuration files, or environment variables.

Configuration Files

Jellyfin stores its configuration in XML and JSON files within the data directory:

Core Server Settings

Server Configuration (system.xml)

The main server configuration file contains essential settings:
1

Server Name and Culture

Configure the server’s display name and localization settings:
2

Metadata Path

Specify where Jellyfin stores metadata:
If not specified, metadata is stored in the default internal metadata path within the data directory.
3

Library Settings

Configure library scanning and monitoring:
  • LibraryMonitorDelay: Seconds to wait after file system change (default: 60)
  • LibraryUpdateDuration: Seconds to wait before executing library changed notification (default: 30)
  • Concurrency set to 0 uses automatic values based on CPU count
4

Playback Settings

Configure playback resume behavior:

Cache Configuration

  • CacheSize: Maximum number of items to cache (default: ProcessorCount * 100)
  • ImageExtractionTimeoutMs: Timeout for image extraction (0 = no limit)

Environment Variables

Jellyfin supports various environment variables for configuration:
Control where Jellyfin stores its data:

Logging Configuration

Jellyfin uses Serilog for structured logging. Configuration is stored in logging.json:

Log Levels

Most detailed logging for debugging:

Activity Log Retention

Configure how long activity logs are retained:
Set to null or omit to keep logs indefinitely.

Performance Tuning

Session Management

Set the threshold in minutes for closing inactive sessions. Set to 0 to disable.

Slow Response Monitoring

Log warnings for requests that take longer than the specified threshold.

Security Settings

Quick Connect

Enable or disable Quick Connect for easy device pairing.

Client Log Upload

Allow clients to upload logs to the server for troubleshooting.

Legacy Authorization

Only enable legacy authorization if required for compatibility with older clients.

CORS Configuration

Configure Cross-Origin Resource Sharing:
Default allows all origins. For production, specify allowed domains explicitly.

Path Substitution

Map paths for different environments (e.g., Docker, network shares):

Best Practices

1

Backup Configuration

Regularly back up your configuration directory:
2

Use Environment Variables for Containers

When running in Docker, prefer environment variables over editing config files:
3

Monitor Performance

Enable metrics for monitoring:
4

Keep Logs Manageable

Configure log retention and size limits to prevent disk space issues.

Next Steps

Network Setup

Configure networking, ports, and remote access

Transcoding

Set up media transcoding and codec options