### Full Usenet Configuration Example Source: https://docs.decypharr.com/guides/usenet/overview An example of a comprehensive Usenet configuration with optimal settings for providers, connections, buffering, and processing. ```json { "usenet": { "providers": [ { "host": "us.news.provider.com", "port": 563, "username": "user", "password": "pass", "ssl": true, "max_connections": 30, "priority": 1 } ], "max_connections": 15, "read_ahead": "32MB", "processing_timeout": "15m", "availability_sample_percent": 5, "max_concurrent_nzb": 3, "disk_buffer_path": "/cache/usenet", "skip_repair": false } } ``` -------------------------------- ### Start Docker Compose Source: https://docs.decypharr.com/guides/installation Run this command to start Decypharr in detached mode using Docker Compose. ```bash docker compose up -d ``` -------------------------------- ### Start External Rclone with RC Source: https://docs.decypharr.com/guides/mounting/rclone Command to start an Rclone instance with the Remote Control (RC) enabled, specifying the address, username, and password. ```bash rclone rcd --rc-addr=:5572 --rc-user=user --rc-pass=pass ``` -------------------------------- ### STRM File Example for WebDAV Source: https://docs.decypharr.com/guides/mounting/webdav Example of a STRM file content pointing to a WebDAV URL. This allows media players like Plex or Jellyfin to stream content directly. ```url http://decypharr:8282/webdav/sonarr/ShowName/S01E01.mkv ``` -------------------------------- ### Reset Decypharr Setup Source: https://docs.decypharr.com/help/faq Delete the configuration file to force Decypharr to restart the setup process. Use with caution. ```bash rm /config/config.json # Docker # or rm /path/to/config.json # Binary ``` -------------------------------- ### Install FUSE and Add User to Fuse Group Source: https://docs.decypharr.com/help/troubleshooting Install the FUSE package and add your user to the 'fuse' group to resolve permission issues when running Decypharr as a binary. ```bash # Install FUSE sudo apt install fuse # Debian/Ubuntu sudo yum install fuse # CentOS/RedHat # Add user to fuse group sudo usermod -a -G fuse $USER ``` -------------------------------- ### Linux davfs2 Installation and Mounting Source: https://docs.decypharr.com/guides/mounting/webdav Commands to install davfs2 and mount the WebDAV share on a Linux system. Supports mounting with and without authentication. ```bash # Install davfs2 sudo apt install davfs2 # Mount sudo mount -t davfs http://decypharr:8282/webdav /mnt/decypharr # With auth sudo mount -t davfs -o username=USER,password=PASS \ http://decypharr:8282/webdav /mnt/decypharr ``` -------------------------------- ### Environment Variable Configuration Example Source: https://docs.decypharr.com/guides/configuration Demonstrates how to set various configuration options, including server settings, debrid providers, Usenet configurations, DFS mount options, and repair settings, using environment variables. ```env # 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 USENET__PROVIDERS__0__BACKBONE=Omicron # Mount - DFS MOUNT__DFS__CACHE_DIR=/cache MOUNT__DFS__CHUNK_SIZE=10MB # Repair REPAIR__ENABLED=true REPAIR__INTERVAL=30m ``` -------------------------------- ### Arr Configuration Example Source: https://docs.decypharr.com/guides/configuration Set up an Arr integration, specifying its name, host URL, API token, and preferences for cleanup, repair skipping, and downloading uncached items. ```json { "arrs": [ { "name": "Sonarr", "host": "http://sonarr:8989", "token": "API_TOKEN", "cleanup": true, "skip_repair": false, "download_uncached": false, "selected_debrid": "" } ] } ``` -------------------------------- ### Path Mapping Example Source: https://docs.decypharr.com/guides/arrs Configure path mappings when Decypharr and your Arr application are on different systems. This ensures the Arr can locate downloaded files correctly. ```text Remote Path: /mnt/decypharr Local Path: /media/tv ``` -------------------------------- ### GET /api/v2/torrents/info Source: https://docs.decypharr.com/reference/api Retrieves a list of torrents in QBit format. ```APIDOC ## GET /api/v2/torrents/info ### Description List torrents (QBit format). ### Method GET ### Endpoint /api/v2/torrents/info ### Request Example ``` curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/v2/torrents/info ``` ``` -------------------------------- ### POST /api/repair/run Source: https://docs.decypharr.com/guides/repair Triggers a new repair sweep to start immediately. This is a manual initiation of the repair process. ```APIDOC ## POST /api/repair/run ### Description Trigger a sweep now. ### Method POST ### Endpoint /api/repair/run ### Parameters None ### Request Example ```curl curl -X POST http://localhost:8282/api/repair/run \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` ### Response #### Success Response (200) - **message** (string) - Confirmation that the run has been triggered. ``` -------------------------------- ### GET /api/config Source: https://docs.decypharr.com/reference/api Fetches the current configuration settings of Decypharr. ```APIDOC ## GET /api/config ### Description Get current configuration. ### Method GET ### Endpoint /api/config ``` -------------------------------- ### Direct WebDAV Streaming with VLC Source: https://docs.decypharr.com/guides/mounting/webdav Example of directly playing a video file from the WebDAV share using VLC. Supports authentication by including username and password in the URL. ```bash # Direct playback vlc http://decypharr:8282/webdav/__all__/TorrentName/video.mkv ``` ```bash # Provide username:password if auth enabled vlc http://user:pass@decypharr:8282/webdav/__all__/TorrentName/video.mkv ``` -------------------------------- ### Configure Decypharr for Sonarr/Radarr (Usenet) Source: https://docs.decypharr.com/guides/arrs Set up Decypharr as a Sabnzbd download client in Sonarr or Radarr. Configure the host, port, URL base, username, and password according to your Decypharr and Arr setup. ```text Name: Decypharr (Usenet) Host: decypharr (or IP) Port: 8282 URL Base: /sabnzbd Username: Arr’s host(http://sonarr:8989) Password: Arr’s token(gotten from Arr’s General -> Token) Category: sonarr / radarr Priority: 0 (Normal) ``` -------------------------------- ### List and Add Torrents in Python Source: https://docs.decypharr.com/reference/api Uses the requests library to interact with the API. Ensure you have the 'requests' library installed. ```python import requests TOKEN = "your_api_token" BASE_URL = "http://localhost:8282" headers = {"Authorization": f"Bearer {TOKEN}"} # List torrents r = requests.get(f"{BASE_URL}/api/torrents", headers=headers) torrents = r.json() # Add torrent r = requests.post( f"{BASE_URL}/api/add", headers=headers, json={"url": "magnet:?xt=..."} ) ``` -------------------------------- ### Configure Arr Path Mapping Source: https://docs.decypharr.com/help/troubleshooting Ensure Arr and Decypharr share identical paths for downloaded files. This configuration example shows how to map a local volume. ```yaml # Both services volumes: - /mnt/media:/mnt/media ``` -------------------------------- ### Get Current Configuration Source: https://docs.decypharr.com/reference/api Retrieve the current configuration settings of Decypharr. Requires authentication. ```bash curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/config ``` -------------------------------- ### Get User ID and Group ID Source: https://docs.decypharr.com/guides/mounting/dfs Use the 'id' command to find the UID and GID for your media server user, which should then be set in the DFS configuration. ```bash id plex ``` -------------------------------- ### GET /version Source: https://docs.decypharr.com/reference/api Retrieves the current version of the Decypharr application. ```APIDOC ## GET /version ### Description Get Decypharr version. ### Method GET ### Endpoint /version ### Response #### Success Response (200) - **version** (string) - The current version of Decypharr. ### Response Example { "version": "1.0.0" } ``` -------------------------------- ### GET /api/browse/ Source: https://docs.decypharr.com/reference/api Lists root groups, including `__all__`, `__bad__`, and categories, using a WebDAV-style interface. ```APIDOC ## GET /api/browse/ ### Description List root groups (`__all__`, `__bad__`, categories). ### Method GET ### Endpoint /api/browse/ ``` -------------------------------- ### Get Decypharr Version Source: https://docs.decypharr.com/reference/api Retrieve the current version of Decypharr. ```bash curl http://localhost:8282/version ``` -------------------------------- ### Example Decypharr Mount Structure with Virtual Folders Source: https://docs.decypharr.com/guides/virtual-folders This illustrates how virtual folders appear alongside standard Decypharr folders in your mount path. They are created without altering the physical storage of your media. ```text /mnt/decypharr/ __all__/ __bad__/ torrents/ nzbs/ 4K/ Recently Added/ ``` -------------------------------- ### GET /api/browse/download/{torrent}/{file} Source: https://docs.decypharr.com/reference/api Downloads a specific file from a torrent using a WebDAV-style interface. ```APIDOC ## GET /api/browse/download/{torrent}/{file} ### Description Download specific file. ### Method GET ### Endpoint /api/browse/download/{torrent}/{file} ``` -------------------------------- ### Nginx Reverse Proxy Configuration for WebDAV Source: https://docs.decypharr.com/guides/mounting/webdav Example Nginx configuration to set up a reverse proxy for the WebDAV server, including passing authorization headers. ```nginx location /webdav/ { proxy_pass http://decypharr:8282/webdav/; proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; } ``` -------------------------------- ### GET /api/repair/config Source: https://docs.decypharr.com/guides/repair Reads the current configuration for the repair service. This includes settings for cron jobs, workers, and sources. ```APIDOC ## GET /api/repair/config ### Description Read current config. ### Method GET ### Endpoint /api/repair/config ### Parameters #### Query Parameters None ### Request Example None ### Response #### Success Response (200) - **config** (object) - The current repair configuration. ``` -------------------------------- ### POST /api/v2/auth/login Source: https://docs.decypharr.com/reference/api Logs in to the QBitTorrent API. This is a compatibility endpoint. ```APIDOC ## POST /api/v2/auth/login ### Description Login (compatibility endpoint). ### Method POST ### Endpoint /api/v2/auth/login ### Request Example ``` curl -X POST \ -d "username=admin&password=pass" \ http://localhost:8282/api/v2/auth/login ``` ``` -------------------------------- ### Basic DFS Mount Configuration Source: https://docs.decypharr.com/guides/configuration Sets up a basic DFS mount, specifying the type and mount path. Use this for custom VFS optimized for streaming. ```json { "mount": { "type": "dfs", "mount_path": "/mnt/decypharr" } } ``` -------------------------------- ### Extract and Run Binary Source: https://docs.decypharr.com/guides/installation Instructions for extracting the downloaded binary and running Decypharr with a specified configuration path. ```bash # Extract tar -xzf decypharr_linux_amd64.tar.gz # Run ./decypharr --config /path/to/ ``` -------------------------------- ### Configure Decypharr for Sonarr/Radarr (Torrents) Source: https://docs.decypharr.com/guides/arrs Set up Decypharr as a QBitTorrent download client in Sonarr or Radarr. Ensure the host, port, username, and password match your Decypharr configuration. ```text Name: Decypharr (Torrents) Host: decypharr (or IP) Port: 8282 Username: Arr’s host(http://sonarr:8989) Password: Arr’s token(gotten from Arr’s General -> Token) Category: sonarr / radarr Priority: 0 (Normal) ``` -------------------------------- ### GET /api/repair/config Source: https://docs.decypharr.com/reference/api Retrieves the current configuration for the health-checker. ```APIDOC ## GET /api/repair/config ### Description Read the current health-checker config. ### Method GET ### Endpoint /api/repair/config ``` -------------------------------- ### Configure Multiple Usenet Providers Source: https://docs.decypharr.com/guides/usenet/overview Set up multiple Usenet providers with different priorities for failover. Lower priority numbers indicate higher preference. ```json { "usenet": { "providers": [ { "host": "primary.news.com", "port": 563, "username": "user1", "password": "pass1", "backbone": "UsenetExpress", "ssl": true, "max_connections": 20, "priority": 1 }, { "host": "backup.news.com", "port": 563, "username": "user2", "password": "pass2", "backbone": "Omicron", "ssl": true, "max_connections": 10, "priority": 2 } ] } } ``` -------------------------------- ### Login to QBitTorrent API Source: https://docs.decypharr.com/reference/api Use this endpoint to authenticate with the QBitTorrent API. Requires username and password. ```curl curl -X POST \ -d "username=admin&password=pass" \ http://localhost:8282/api/v2/auth/login ``` -------------------------------- ### GET /api/arrs Source: https://docs.decypharr.com/reference/api Lists all connected Arr services that Decypharr is integrated with. ```APIDOC ## GET /api/arrs ### Description List connected Arrs. ### Method GET ### Endpoint /api/arrs ``` -------------------------------- ### Configure Usenet Read Ahead and Connections Source: https://docs.decypharr.com/help/troubleshooting Optimize Usenet streaming performance by adjusting the read-ahead buffer size and the maximum number of simultaneous connections. ```json { "usenet": { "read_ahead": "32MB", "max_connections": 20 } } ``` -------------------------------- ### Get Health-Checker Run History Source: https://docs.decypharr.com/reference/api Retrieve the history of health-checker runs. Requires authentication. ```bash curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/repair/runs ``` -------------------------------- ### POST /api/v2/torrents/add Source: https://docs.decypharr.com/reference/api Adds a torrent using the QBit format. ```APIDOC ## POST /api/v2/torrents/add ### Description Add torrent (QBit format). ### Method POST ### Endpoint /api/v2/torrents/add ### Request Example ``` curl -X POST \ -H "Authorization: Bearer TOKEN" \ -F "urls=magnet:?xt=..." \ -F "category=sonarr" \ http://localhost:8282/api/v2/torrents/add ``` ``` -------------------------------- ### Set Mount User/Group IDs Source: https://docs.decypharr.com/help/faq Configure `uid` and `gid` in the mount settings to match your media server user, resolving 'Permission Denied' errors. ```bash id plex # uid=1001(plex) gid=1001(plex) ``` ```json { "mount": { "dfs": { "uid": 1001, "gid": 1001 } } } ``` -------------------------------- ### GET /api/browse/{group} Source: https://docs.decypharr.com/reference/api Lists torrents within a specified group using a WebDAV-style interface. ```APIDOC ## GET /api/browse/{group} ### Description List torrents in group. ### Method GET ### Endpoint /api/browse/{group} ``` -------------------------------- ### GET /api/repair/health Source: https://docs.decypharr.com/reference/api Lists the health status of all entries. Supports filtering by status, e.g., 'broken'. ```APIDOC ## GET /api/repair/health ### Description List entry health. Optional `?status=broken` filter. ### Method GET ### Endpoint /api/repair/health ### Parameters #### Query Parameters - **status** (string) - Optional - Filter entries by their status (e.g., 'broken'). ``` -------------------------------- ### GET /api/torrents Source: https://docs.decypharr.com/reference/api Retrieves a list of all torrents managed by Decypharr. Supports filtering by category and hash. ```APIDOC ## GET /api/torrents ### Description List all torrents. ### Method GET ### Endpoint /api/torrents ### Parameters #### Query Parameters - **category** (string) - Optional - Filter by category. - **hash** (string) - Optional - Get specific torrent by its hash. ``` -------------------------------- ### Server Configuration Source: https://docs.decypharr.com/guides/configuration Defines network settings for the server, including the IP address to bind to and the port for listening. The `app_url` is used for external callbacks. ```json { "bind_address": "0.0.0.0", "port": "8282", "url_base": "", "app_url": "http://localhost:8282", "log_level": "info" } ``` -------------------------------- ### GET /api/repair/runs/{id} Source: https://docs.decypharr.com/guides/repair Fetches detailed information about a specific repair run identified by its ID. ```APIDOC ## GET /api/repair/runs/{id} ### Description Run detail. ### Method GET ### Endpoint /api/repair/runs/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the run to retrieve. ### Request Example None ### Response #### Success Response (200) - **run_detail** (object) - Detailed information about the specified run. ``` -------------------------------- ### Directory Structure for Categories Source: https://docs.decypharr.com/guides/usenet/sabnzbd Organize downloads using specific directories for different Arr applications. Set these categories in your Arr download client configuration. ```bash /mnt/decypharr/ ├── sonarr/ ├── radarr/ ├── lidarr/ └── custom/ ``` -------------------------------- ### GET /api/repair/runs Source: https://docs.decypharr.com/guides/repair Retrieves a history of all repair runs. This endpoint provides a list of past repair operations. ```APIDOC ## GET /api/repair/runs ### Description Run history. ### Method GET ### Endpoint /api/repair/runs ### Parameters None ### Request Example None ### Response #### Success Response (200) - **runs** (array) - A list of past repair run objects. ``` -------------------------------- ### GET /api/browse/{group}/{torrent} Source: https://docs.decypharr.com/reference/api Lists files within a specified torrent in a group using a WebDAV-style interface. ```APIDOC ## GET /api/browse/{group}/{torrent} ### Description List files in torrent. ### Method GET ### Endpoint /api/browse/{group}/{torrent} ``` -------------------------------- ### DFS Permissions Configuration Source: https://docs.decypharr.com/guides/mounting/dfs Set the 'uid', 'gid', and 'umask' for DFS to match your media server user's permissions. ```json { "dfs": { "uid": 1001, "gid": 1001, "umask": "022" } } ``` -------------------------------- ### List Torrents via QBitTorrent API Source: https://docs.decypharr.com/reference/api Retrieve a list of all torrents in QBitTorrent format. Requires an authorization token. ```curl curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/v2/torrents/info ``` -------------------------------- ### Add a Usenet Provider Source: https://docs.decypharr.com/guides/usenet/overview Configure a single Usenet provider with connection details, authentication, and priority. ```json { "usenet": { "providers": [ { "host": "news.provider.com", "port": 563, "username": "your_username", "password": "your_password", "backbone": "Omicron", "ssl": true, "max_connections": 20, "priority": 1 } ] } } ``` -------------------------------- ### GET /api/repair/health Source: https://docs.decypharr.com/guides/repair Lists the health status of all entries. Supports filtering by status, e.g., `?status=broken` to see only broken entries. ```APIDOC ## GET /api/repair/health ### Description List entry health (optional `?status=broken`). ### Method GET ### Endpoint /api/repair/health ### Parameters #### Query Parameters - **status** (string) - Optional - Filter by entry status (e.g., `broken`, `healthy`, `unknown`). ### Request Example None ### Response #### Success Response (200) - **entries** (array) - A list of entry health objects. ``` -------------------------------- ### Enable Usenet Repair Source: https://docs.decypharr.com/help/troubleshooting Configure Usenet downloads to enable the repair process. This setting ensures that incomplete downloads are attempted to be fixed. ```json {"usenet": {"skip_repair": false}} ``` -------------------------------- ### Get Health-Checker Entry List Source: https://docs.decypharr.com/reference/api List all entries monitored by the health-checker. Supports filtering by status, e.g., '?status=broken'. Requires authentication. ```bash curl -H "Authorization: Bearer TOKEN" \ 'http://localhost:8282/api/repair/health?status=broken' ``` -------------------------------- ### GET /api/repair/health/{name} Source: https://docs.decypharr.com/guides/repair Retrieves the health status for a specific entry, identified by its name. Includes a list of broken files if applicable. ```APIDOC ## GET /api/repair/health/{name} ### Description Per-entry health, including the broken-file list. ### Method GET ### Endpoint /api/repair/health/{name} ### Parameters #### Path Parameters - **name** (string) - Required - The name of the entry to retrieve health for. ### Request Example None ### Response #### Success Response (200) - **entry_health** (object) - Health details for the specified entry, including broken files. ``` -------------------------------- ### Basic Rclone Mount Configuration Source: https://docs.decypharr.com/guides/mounting/rclone Configure the embedded Rclone instance for mounting. Set the mount path and various VFS cache and performance parameters. ```json { "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 } } } ``` -------------------------------- ### GET /api/repair/status Source: https://docs.decypharr.com/guides/repair Retrieves the current status of the repair service, including details about the active run, the last completed run, and counts of entries by their status. ```APIDOC ## GET /api/repair/status ### Description Active run summary, last completed run, and counts of entries by status. ### Method GET ### Endpoint /api/repair/status ### Parameters None ### Request Example None ### Response #### Success Response (200) - **active_run** (object) - Summary of the currently active run. - **last_completed_run** (object) - Details of the last completed run. - **entry_counts** (object) - Counts of entries by status (e.g., healthy, broken, unknown). ``` -------------------------------- ### QBitTorrent Advanced Settings Source: https://docs.decypharr.com/guides/arrs Configure advanced settings for the QBitTorrent client within Sonarr/Radarr. These settings control how completed and failed downloads are handled. ```yaml Remove Completed: Yes Remove Failed: No ``` -------------------------------- ### Docker Compose Configuration Source: https://docs.decypharr.com/guides/installation Use this `docker-compose.yml` to set up Decypharr. Ensure `config.json` is in the `./configs/` directory. The container requires specific device mappings and capabilities. ```yaml services: decypharr: image: cy01/blackhole:latest container_name: decypharr ports: - "8282:8282" volumes: - /mnt/:/mnt:rshared - ./configs/:/app # config.json must be in this directory restart: unless-stopped devices: - /dev/fuse:/dev/fuse:rwm cap_add: - SYS_ADMIN security_opt: - apparmor:unconfined ``` -------------------------------- ### Delete Decypharr Configuration Source: https://docs.decypharr.com/help/troubleshooting Remove the current Decypharr configuration file. Upon restart, Decypharr will run its setup wizard to create a new default configuration. ```bash rm /config/config.json ``` -------------------------------- ### Configure Availability Checking Source: https://docs.decypharr.com/guides/usenet/overview Specify the percentage of segments to sample for availability checks before initiating a full download. A lower percentage is faster but less accurate. ```json { "usenet": { "availability_sample_percent": 10 } } ``` -------------------------------- ### Add Torrent via QBitTorrent API Source: https://docs.decypharr.com/reference/api Add a new torrent using its magnet link or URL. Supports category specification and requires an authorization token. ```curl curl -X POST \ -H "Authorization: Bearer TOKEN" \ -F "urls=magnet:?xt=..." \ -F "category=sonarr" \ http://localhost:8282/api/v2/torrents/add ``` -------------------------------- ### Make Decypharr Binary Executable Source: https://docs.decypharr.com/help/troubleshooting Grant execute permissions to the Decypharr binary if you encounter a 'permission denied' error when trying to run it directly. ```bash chmod +x decypharr ./decypharr ``` -------------------------------- ### Configure Usenet Provider Source: https://docs.decypharr.com/guides/configuration Define NNTP server details including host, port, username, password, and SSL preferences. Set connection limits and priority for each provider. ```json { "usenet": { "providers": [ { "host": "news.provider.com", "port": 563, "username": "user", "password": "pass", "backbone": "Omicron", "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 } } ``` -------------------------------- ### Global Download Action Configuration Source: https://docs.decypharr.com/guides/arrs Set the default download action for Arrs in the `config.json` file. Options include 'symlink', 'download', 'strm', and 'none'. ```json { "arrs": [ { "name": "Sonarr", "host": "http://sonarr:8989", "token": "ARR_API_KEY", "download_action": "symlink" } ] } ``` -------------------------------- ### Add Torrent or NZB via URL Source: https://docs.decypharr.com/reference/api Add a torrent or NZB using its URL (e.g., a magnet link). Requires authentication. ```bash curl -X POST \ -H "Authorization: Bearer TOKEN" \ -d '{"url": "magnet:?xt=..."}' \ http://localhost:8282/api/add ``` -------------------------------- ### Set Arr Download Action for Mounts Source: https://docs.decypharr.com/help/troubleshooting Configure the download action for Arr services, specifically using 'symlink' for mounted volumes to ensure proper file handling. ```json { "arrs": [ { "name": "Sonarr", "download_action": "symlink" # For mounts } ] } ``` -------------------------------- ### macOS Finder Connect to Server Source: https://docs.decypharr.com/guides/mounting/webdav Use this URL in macOS Finder's 'Connect to Server' option to access the WebDAV share. ```url http://decypharr:8282/webdav/ ``` -------------------------------- ### Configure Usenet Disk Buffer Path Source: https://docs.decypharr.com/help/troubleshooting Specify the path for the Usenet disk buffer to manage memory usage. Ensure this location has sufficient disk space. ```json { "usenet": { "disk_buffer_path": "/cache/usenet" } } ``` -------------------------------- ### Enable and Schedule Repair Jobs Source: https://docs.decypharr.com/help/troubleshooting JSON configuration to enable repair jobs and set a schedule. ```json {"repair": {"enabled": true, "schedule": "0 4 * * *"}} ``` -------------------------------- ### Check Docker Container Logs Source: https://docs.decypharr.com/help/troubleshooting Use this command to view the logs of a running Decypharr Docker container to diagnose startup issues. ```bash docker logs decypharr ``` -------------------------------- ### Backup Decypharr Configuration Source: https://docs.decypharr.com/help/troubleshooting Create a backup of your current Decypharr configuration file before making changes or resetting. This allows for easy restoration if needed. ```bash cp /config/config.json /config/config.json.backup ``` -------------------------------- ### Provide Full URL with Auth for Apps Source: https://docs.decypharr.com/help/troubleshooting When using apps, provide the full URL including username and password to avoid authentication prompts. ```url http://username:password@decypharr:8282/webdav/ ``` -------------------------------- ### Docker Run Command Source: https://docs.decypharr.com/guides/installation Alternative to Docker Compose, this command launches Decypharr directly. It maps ports, volumes, and sets necessary capabilities and device access. ```bash docker run -d \ --name=decypharr \ -p 8282:8282 \ -v ./config:/app \ -v ./downloads:/downloads \ -v ./cache:/cache \ -e PUID=1000 \ -e PGID=1000 \ --restart unless-stopped \ --device /dev/fuse:/dev/fuse:rwm \ --cap-add SYS_ADMIN \ --security-opt apparmor:unconfined \ sirrobot01/decypharr:latest ``` -------------------------------- ### View Decypharr Logs (Docker) Source: https://docs.decypharr.com/help/faq Display Decypharr logs from a Docker container. Use the -f flag to follow the logs in real-time. ```bash docker logs decypharr docker logs -f decypharr # Follow ``` -------------------------------- ### Verify Decypharr is Running Source: https://docs.decypharr.com/help/faq Check Decypharr's logs to confirm it is running. Also, verify the version via HTTP. ```bash docker logs decypharr curl http://localhost:8282/version ``` -------------------------------- ### Add Download API Keys Source: https://docs.decypharr.com/help/troubleshooting Provide multiple API keys for download services to distribute requests and avoid rate limiting. This is useful when a single key's limit is reached. ```json { "download_api_keys": ["KEY1", "KEY2", "KEY3"] } ``` -------------------------------- ### Configure Repair Settings Source: https://docs.decypharr.com/guides/usenet/overview Control whether PAR2 repair is skipped. Set to `false` to enable repair for incomplete downloads. ```json { "usenet": { "skip_repair": false } } ``` -------------------------------- ### Configure Read-Ahead Buffer Source: https://docs.decypharr.com/guides/usenet/overview Set the size of the prefetch buffer for Usenet streams to ensure smoother playback. Larger values consume more memory. ```json { "usenet": { "read_ahead": "16MB" } } ``` -------------------------------- ### Increase Usenet Read-Ahead Source: https://docs.decypharr.com/help/faq Configure the read-ahead buffer for Usenet downloads. ```json {"usenet": {"read_ahead": "32MB"}} ``` -------------------------------- ### Docker Volume Configuration for Path Mapping Source: https://docs.decypharr.com/guides/usenet/sabnzbd Ensure consistent media mount paths between Decypharr and Arr applications in Docker environments to avoid 'Path Not Found' errors. ```yaml services: decypharr: volumes: - /mnt/media:/mnt/media sonarr: volumes: - /mnt/media:/mnt/media ``` -------------------------------- ### POST /api/v2/torrents/delete Source: https://docs.decypharr.com/reference/api Deletes torrents using the QBit format. ```APIDOC ## POST /api/v2/torrents/delete ### Description Delete torrents (QBit format). ### Method POST ### Endpoint /api/v2/torrents/delete ### Request Example ``` curl -X POST \ -H "Authorization: Bearer TOKEN" \ -d "hashes=hash1|hash2" \ http://localhost:8282/api/v2/torrents/delete ``` ``` -------------------------------- ### Configure Debrid Slot Management Source: https://docs.decypharr.com/help/faq Use `minimum_free_slot` to automatically switch to a backup debrid provider when primary slots are nearly full. ```json { "debrids": [ { "provider": "realdebrid", "minimum_free_slot": 5 }, { "provider": "alldebrid", "minimum_free_slot": 0 } ] } ``` -------------------------------- ### Configure Per-Provider Usenet Connections Source: https://docs.decypharr.com/help/troubleshooting Set specific maximum connection limits for individual Usenet providers. This allows fine-tuning connection usage for each provider. ```json { "usenet": { "providers": [ {"max_connections": 15} ] } } ``` -------------------------------- ### Configure Decypharr with Environment Variables Source: https://docs.decypharr.com/help/faq Use environment variables to configure Decypharr settings, supporting double underscore notation for nested options. This is an alternative to using the config.json file. ```shell PORT=8282 DEBRIDS__0__PROVIDER=realdebrid DEBRIDS__0__API_KEY=your_key ``` -------------------------------- ### Enable Uncached Downloads Source: https://docs.decypharr.com/guides/arrs Enable the 'download_uncached' option per Arr to allow downloading files that are not currently in the cache. ```json { "arrs": [ { "name": "Sonarr", "download_uncached": true } ] } ``` -------------------------------- ### List and Add Torrents in JavaScript Source: https://docs.decypharr.com/reference/api Uses the fetch API for asynchronous HTTP requests. Handles JSON responses and POST requests with JSON bodies. ```javascript const TOKEN = 'your_api_token'; const BASE_URL = 'http://localhost:8282'; const headers = { 'Authorization': `Bearer ${TOKEN}`, 'Content-Type': 'application/json' }; // List torrents fetch(`${BASE_URL}/api/torrents`, { headers }) .then(r => r.json()) .then(data => console.log(data)); // Add torrent fetch(`${BASE_URL}/api/add`, { method: 'POST', headers, body: JSON.stringify({ url: 'magnet:?xt=...' }) }); ``` -------------------------------- ### Authentication Configuration Source: https://docs.decypharr.com/guides/configuration Configures authentication methods, including enabling authentication, setting a username, and providing a bcrypt-hashed password or an API token. The password must be pre-hashed. ```json { "use_auth": true, "username": "admin", "password": "$2a$10$ாலத்தில்...", "api_token": "..." } ``` -------------------------------- ### Configure Docker Volumes for Arr Integration Source: https://docs.decypharr.com/help/faq Ensure Arr and Decypharr see files at the same path when using Docker. Incorrect volume mapping can prevent downloads from importing. ```yaml decypharr: volumes: - /mnt/storage:/data sonarr: volumes: - /mnt/storage:/media # Different path! ``` ```yaml decypharr: volumes: - /mnt/storage:/mnt/storage sonarr: volumes: - /mnt/storage:/mnt/storage # Same path! ``` -------------------------------- ### Configure All Debrid Provider Source: https://docs.decypharr.com/guides/debrid/all-debrid Add this JSON configuration to your settings to enable All Debrid. Replace 'YOUR_API_KEY' with your actual API key obtained from the All Debrid dashboard. ```json { "debrids": [ { "provider": "alldebrid", "name": "All Debrid", "api_key": "YOUR_API_KEY" } ] } ``` -------------------------------- ### Configure Maximum Usenet Connections Source: https://docs.decypharr.com/help/troubleshooting Set the maximum number of concurrent connections for Usenet downloads. This helps prevent exceeding provider limits and causing connection errors. ```json { "usenet": { "max_connections": 10 } } ``` -------------------------------- ### POST /api/repair/run Source: https://docs.decypharr.com/reference/api Triggers a health-checker sweep immediately. Returns a 409 Conflict if a sweep is already in progress. ```APIDOC ## POST /api/repair/run ### Description Trigger a sweep now. ### Method POST ### Endpoint /api/repair/run ### Response #### Error Response (409 Conflict) - Returned when a sweep is already running. ``` -------------------------------- ### Docker Path Mapping for Downloads Source: https://docs.decypharr.com/guides/arrs Ensure consistent path mapping between Decypharr and Sonarr when using Docker. Both services should mount the same storage path to avoid import issues. ```yaml services: decypharr: volumes: - /mnt/storage:/mnt/storage # Same path! sonarr: volumes: - /mnt/storage:/mnt/storage # Same path! ``` -------------------------------- ### Configure User ID and Group ID for Mount Permissions Source: https://docs.decypharr.com/help/troubleshooting Specify the user ID (uid) and group ID (gid) in the Decypharr configuration file to ensure correct file permissions for the mount point. ```json { "mount": { "dfs": { "uid": 1001, "gid": 1001 } } } ``` -------------------------------- ### Torbox Configuration Source: https://docs.decypharr.com/guides/debrid/torbox Configure Torbox by specifying the provider, a display name, and your API key. Obtain your API key from the Torbox dashboard. ```json { "debrids": [ { "provider": "torbox", "name": "Torbox", "api_key": "YOUR_API_KEY" } ] } ``` -------------------------------- ### Configure DFS Mount Chunk Size and Disk Cache Source: https://docs.decypharr.com/help/troubleshooting Adjust the chunk size and disk cache size for DFS mounts to optimize streaming performance. Ensure sufficient disk space for the cache. ```json { "mount": { "dfs": { "chunk_size": "20MB", "disk_cache_size": "100GB" } } } ``` -------------------------------- ### Set Disk Buffer Path Source: https://docs.decypharr.com/guides/usenet/overview Define the directory path for the disk buffer used by Usenet streams for assembly. Ensure this location has sufficient disk space. ```json { "usenet": { "disk_buffer_path": "/cache/usenet/streams" } } ``` -------------------------------- ### Find User ID and Group ID Source: https://docs.decypharr.com/help/troubleshooting Execute this command to find your current username's user ID and group ID, which can be used to configure mount permissions. ```bash id your_username ``` -------------------------------- ### Configure Disk Cache Size Source: https://docs.decypharr.com/help/faq Set the maximum disk space for caching. Actual usage depends on viewing patterns. ```json { "mount": { "dfs": { "disk_cache_size": "50GB" } } } ``` -------------------------------- ### View Current Decypharr Configuration Source: https://docs.decypharr.com/help/troubleshooting Retrieve the current configuration of Decypharr via the API. Ensure you include your authentication token in the header. The output is piped to 'jq' for pretty-printing. ```bash curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/config | jq ``` -------------------------------- ### Mount Permission Fix Source: https://docs.decypharr.com/guides/mounting/rclone Set the user and group IDs for the Rclone mount to match the media server user to resolve permission denied errors. ```json { "rclone": { "uid": 1001, "gid": 1001 } } ``` -------------------------------- ### Test WebDAV Connection Source: https://docs.decypharr.com/help/troubleshooting Use this curl command to test if you can connect to the WebDAV endpoint. ```shell curl http://localhost:8282/webdav/ ``` -------------------------------- ### Configure Usenet Connection Limits Source: https://docs.decypharr.com/help/faq Increase connection limits for Usenet processing. This can be set globally or per provider. ```json { "usenet": { "max_connections": 20, "max_concurrent_nzb": 3 } } ``` ```json { "usenet": { "providers": [ { "max_connections": 30 } ] } } ``` -------------------------------- ### WebDAV File Structure Source: https://docs.decypharr.com/guides/mounting/webdav Overview of the directory structure within the WebDAV share, including categories for torrents, NZBs, and custom content. ```tree /webdav/ ├── __all__/ # All torrents ├── __bad__/ # Failed/problematic torrents ├── torrents/ # torrents ├── nzbs/ # nzbs └── {custom}/ # Custom categories ``` -------------------------------- ### Validate Decypharr Configuration File Source: https://docs.decypharr.com/help/troubleshooting Validate the syntax of your Decypharr configuration file using 'jq'. This helps ensure the JSON is correctly formatted before Decypharr attempts to load it. ```bash cat /config/config.json | jq ``` -------------------------------- ### Configure Per-Arr Skip Repair Source: https://docs.decypharr.com/help/troubleshooting JSON configuration to control whether repair jobs are skipped for specific Arr instances. ```json {"arrs": [{"skip_repair": false}]} ``` -------------------------------- ### List All Torrents Source: https://docs.decypharr.com/reference/api Retrieve a list of all torrents. Supports filtering by category and hash. Requires authentication. ```bash curl -H "Authorization: Bearer TOKEN" \ http://localhost:8282/api/torrents ``` -------------------------------- ### Add Torrent Source: https://docs.decypharr.com/reference/api Adds a new torrent to the system. Accepts a magnet link or URL for the torrent. ```APIDOC ## POST /api/add ### Description Adds a new torrent using a provided URL or magnet link. ### Method POST ### Endpoint /api/add ### Parameters #### Headers - **Authorization** (string) - Required - Bearer token for authentication. - **Content-Type** (string) - Required - Application/json #### Request Body - **url** (string) - Required - The magnet link or URL of the torrent to add. ### Request Example ```json { "url": "magnet:?xt=..." } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Torrent added successfully." } ``` ``` -------------------------------- ### Configure Multiple Real Debrid API Keys Source: https://docs.decypharr.com/guides/debrid/real-debrid To rotate between multiple Real Debrid API keys for higher throughput, list them in the 'download_api_keys' array. This helps manage rate limits. ```json { "debrids": [ { "provider": "realdebrid", "download_api_keys": [ "KEY_1", "KEY_2", "KEY_3" ] } ] } ``` -------------------------------- ### Auto-Detection Configuration Source: https://docs.decypharr.com/guides/arrs Configure an Arr to be auto-detected by Decypharr. Set the 'source' field to 'auto' for automatic detection. ```json { "arrs": [ { "name": "Sonarr (Auto)", "host": "http://sonarr:8989", "token": "ARR_API_KEY", "source": "auto" } ] } ``` -------------------------------- ### DFS Mount Configuration Source: https://docs.decypharr.com/guides/mounting/dfs Configure DFS mount settings in config.json, including cache directory, chunk size, disk cache size, cache expiry, daemon timeout, and user/group IDs. ```json { "mount": { "type": "dfs", "mount_path": "/mnt/decypharr", "dfs": { "cache_dir": "/cache/dfs", "chunk_size": "10MB", "disk_cache_size": "50GB", "cache_expiry": "24h", "daemon_timeout": "30m", "uid": 1000, "gid": 1000 } } } ``` -------------------------------- ### Configure Repair Job Intervals and Auto-Repair Source: https://docs.decypharr.com/help/troubleshooting JSON configuration to adjust the recheck interval and disable auto-repair for repair jobs. ```json { "repair": { "recheck_interval": "336h", "auto_repair": false } } ``` -------------------------------- ### Add Torrent or NZB via File Upload Source: https://docs.decypharr.com/reference/api Add a torrent or NZB file to Decypharr by uploading the file. Requires authentication. ```bash curl -X POST \ -H "Authorization: Bearer TOKEN" \ -F "file=@file.torrent" \ http://localhost:8282/api/add ``` -------------------------------- ### Windows Map Network Drive Source: https://docs.decypharr.com/guides/mounting/webdav Use this UNC path in Windows File Explorer to map the WebDAV share as a network drive. ```windows-path \\decypharr@8282\DavWWWRoot\webdav\ ```