Skip to content

Configuration Reference

Configuration is stored in config.json. Most settings can be managed via the Web UI under Settings.

{
"bind_address": "0.0.0.0",
"port": "8282",
"url_base": "",
"app_url": "http://localhost:8282",
"log_level": "info"
}
FieldTypeDescriptionDefault
bind_addressstringIP to bind to0.0.0.0
portstringPort to listen on8282
url_basestringBase path for reverse proxy""
app_urlstringExternal URL for callbacksAuto-detected
log_levelstringLogging level (debug, info, warn, error)info
{
"use_auth": true,
"username": "admin",
"password": "$2a$10$...",
"api_token": "..."
}

Password is bcrypt-hashed. API token is auto-generated.

Array of Debrid services:

{
"debrids": [
{
"provider": "realdebrid",
"name": "RD Primary",
"api_key": "YOUR_API_KEY",
"download_uncached": false,
"rate_limit": "200/minute",
"workers": 50,
"minimum_free_slot": 0,
"limit": 100,
"torrents_refresh_interval": "5m",
"download_links_refresh_interval": "10m",
"auto_expire_links_after": "24h",
"proxy": "",
"unpack_rar": true
}
]
}
FieldTypeDescriptionDefault
providerstringProvider type: realdebrid, alldebrid, debridlink, torboxRequired
namestringDisplay nameProvider type
api_keystringAPI key from provider dashboardRequired
download_api_keysarrayAdditional keys for download rotation[api_key]
download_uncachedboolDownload torrents not in provider cachefalse
rate_limitstringAPI rate limit (200/minute, 10/second)200/minute
repair_rate_limitstringSeparate limit for repair operationsSame as rate_limit
download_rate_limitstringSeparate limit for downloadsSame as rate_limit
proxystringHTTP(S) proxy URL""
unpack_rarboolAuto-extract RAR archivestrue
minimum_free_slotintMinimum free torrent slots to use this provider0
limitintMax torrents allowed on this provider0 (unlimited)
workersintConcurrent API workersAuto (CPU * 50 / num_providers)
torrents_refresh_intervalstringHow often to refresh torrent list5m
download_links_refresh_intervalstringHow often to refresh download links10m
auto_expire_links_afterstringAuto-remove links after duration24h
user_agentstringCustom User-Agent headerDefault
{
"usenet": {
"providers": [
{
"host": "news.provider.com",
"port": 563,
"username": "user",
"password": "pass",
"ssl": true,
"max_connections": 20,
"priority": 1
}
],
"max_connections": 15,
"read_ahead": "16MB",
"processing_timeout": "10m",
"availability_sample_percent": 10,
"max_concurrent_nzb": 2,
"disk_buffer_path": "/cache/usenet/streams",
"skip_repair": false
}
}
FieldTypeDescriptionDefault
providersarrayNNTP server configurations[]
max_connectionsintMax connections per file/stream15
read_aheadstringPrefetch buffer size16MB
processing_timeoutstringMax time for NZB processing10m
availability_sample_percentint% of segments to check (1-100)10
max_concurrent_nzbintParallel NZB processing limit2
disk_buffer_pathstringDisk buffer location{main_path}/usenet/streams
skip_repairboolDisable NZB repair operationsfalse
FieldTypeDescriptionDefault
hoststringNNTP server hostnameRequired
portintNNTP port119 (563 for SSL)
usernamestringNNTP usernameRequired
passwordstringNNTP passwordRequired
sslboolUse SSL/TLSfalse
max_connectionsintMax connections to this server20
priorityintProvider priority (lower = higher)Index + 1

Mount configuration determines how files are exposed on the filesystem.

{
"mount": {
"type": "dfs",
"mount_path": "/mnt/decypharr"
}
}
TypeDescription
dfsCustom VFS optimized for streaming
rcloneEmbedded Rclone with full VFS features
external_rcloneConnect to existing Rclone RC instance
noneNo filesystem mounting
{
"mount": {
"type": "dfs",
"mount_path": "/mnt/decypharr",
"dfs": {
"cache_dir": "/cache/dfs",
"chunk_size": "10MB",
"disk_cache_size": "50GB",
"cache_expiry": "24h",
"cache_cleanup_interval": "1h",
"daemon_timeout": "30m",
"uid": 1000,
"gid": 1000,
"umask": "022",
"allow_other": true,
"default_permissions": true
}
}
}
FieldDescriptionDefault
cache_dirLocal cache storageRequired
chunk_sizeInitial chunk size for reads10MB
disk_cache_sizeMax disk cache size0 (unlimited)
cache_expiryChunk expiry time1h
cache_cleanup_intervalCache cleanup frequency10m
daemon_timeoutIdle timeout before unmount"" (never)
uidFile owner UIDCurrent user
gidFile owner GIDCurrent group
umaskPermission mask022
allow_otherAllow other users to accessfalse
default_permissionsEnable permission checksfalse
{
"mount": {
"type": "rclone",
"mount_path": "/mnt/decypharr",
"rclone": {
"cache_dir": "/cache/rclone",
"vfs_cache_mode": "writes",
"vfs_cache_max_size": "10GB",
"vfs_read_chunk_size": "128MB",
"vfs_read_ahead": "256MB",
"buffer_size": "16MB",
"transfers": 4,
"uid": 1000,
"gid": 1000
}
}
}
FieldDescriptionDefault
cache_dirVFS cache directoryRequired
vfs_cache_modeoff, minimal, writes, fullwrites
vfs_cache_max_sizeMax VFS cache size0 (unlimited)
vfs_read_chunk_sizeRead chunk size128MB
vfs_read_aheadRead-ahead buffer0
buffer_sizeI/O buffer size16MB
bw_limitBandwidth limit0 (unlimited)
transfersConcurrent transfers4
uid / gidFile ownershipCurrent user
{
"mount": {
"type": "external_rclone",
"external_rclone": {
"rc_url": "http://localhost:5572",
"rc_username": "user",
"rc_password": "pass"
}
}
}

Connect to an existing Rclone instance’s RC API.

{
"repair": {
"enabled": true,
"interval": "30m",
"auto_process": false,
"workers": 2,
"strategy": "per_file"
}
}
FieldDescriptionDefault
enabledEnable repair workerfalse
intervalCheck interval30m
auto_processAuto-fix detected issuesfalse
workersConcurrent repair workers2
strategyper_file or per_torrentper_file

Strategies:

  • per_file: Check/repair each file independently
  • per_torrent: Check all files in a torrent together
{
"arrs": [
{
"name": "Sonarr",
"host": "http://sonarr:8989",
"token": "API_TOKEN",
"cleanup": true,
"skip_repair": false,
"download_uncached": false,
"selected_debrid": ""
}
]
}
FieldDescriptionDefault
nameDisplay nameRequired
hostArr URLRequired
tokenArr API keyRequired
cleanupAuto-remove completed downloadstrue
skip_repairSkip repair for this Arrfalse
download_uncachedDownload uncached torrentsfalse
selected_debridForce specific Debrid provider"" (auto)
sourceConfig source (auto, config)config

All config options support environment variable overrides using double underscore notation:

Terminal window
# Server
PORT=8282
LOG_LEVEL=debug
# Debrid
DEBRIDS__0__PROVIDER=realdebrid
DEBRIDS__0__API_KEY=your_key
# Usenet
USENET__MAX_CONNECTIONS=20
USENET__PROVIDERS__0__HOST=news.provider.com
USENET__PROVIDERS__0__PORT=563
# Mount - DFS
MOUNT__DFS__CACHE_DIR=/cache
MOUNT__DFS__CHUNK_SIZE=10MB
# Repair
REPAIR__ENABLED=true
REPAIR__INTERVAL=30m

See defaults.go for all defaults.