Zilean Help

Configuration

Configuration for the Zilean application is defined in a JSON file, which can be mounted as a volume into the container at /app/data/settings.json.

The format of environment variables is as follows: Zilean__{Section}__{Key} Where {Section} is the section of the configuration, and {Key} is the key within that section.

For example, to set the ApiKey in the Zilean section, you would set the environment variable Zilean__ApiKey or Zilean__Dmm__EnableScraping for the Dmm.EnableScraping key.

Example Configuration

{ "Zilean": { "ApiKey": "da3a4ee25d3749ad87301d701a924eb9154c4a95c9b740c5a179469ab0f10578", "FirstRun": true, "EnableDashboard": false, "Dmm": { "EnableScraping": true, "EnableEndpoint": true, "ScrapeSchedule": "0 * * * *", "MinimumReDownloadIntervalMinutes": 30, "MaxFilteredResults": 200, "MinimumScoreMatch": 0.85 }, "Torznab": { "EnableEndpoint": true }, "Database": { "ConnectionString": "Host=postgres;Database=zilean;Username=postgres;Password=postgres;Include Error Detail=true;Timeout=30;CommandTimeout=3600;" }, "Torrents": { "EnableEndpoint": false, "MaxHashesToCheck": 100, "EnableScrapeEndpoint": false, "EnableCacheCheckEndpoint": false }, "Imdb": { "EnableImportMatching": true, "EnableEndpoint": true, "MinimumScoreMatch": 0.85, "UseAllCores": false, "NumberOfCores": 2, "UseLucene": false }, "Ingestion": { "ZurgInstances": [], "ZileanInstances": [], "EnableScraping": false, "Kubernetes": { "EnableServiceDiscovery": false, "KubernetesSelectors": [], "KubeConfigFile": "/$HOME/.kube/config", "AuthenticationType": 0 }, "ScrapeSchedule": "0 0 * * *", "ZurgEndpointSuffix": "/debug/torrents", "ZileanEndpointSuffix": "/torrents/all", "RequestTimeout": 10000 }, "Parsing": { "BatchSize": 5000 } } }

Configuration Options in Detail

ApiKey The API key used to authenticate requests to the Zilean API. Default: Generated on first run

FirstRun Indicates whether this is the first run of the application. Default: true

EnableDashboard Indicates whether the Zilean dashboard should be enabled allowing management of ingested data. Default: false

DMM Configuration

Dmm.EnableScraping Indicates whether the DMM indexer should scrape from Dmm Hashlists. Default: true

Dmm.EnableEndpoint Indicates whether the DMM indexer should expose an API endpoint. Default: true

Dmm.ScrapeSchedule The cron schedule for the DMM indexer to scrape from Dmm Hashlists. Default: 0 * * * * [Hourly]

Dmm.MinimumReDownloadIntervalMinutes The minimum interval in minutes before re-downloading Dmm Hashlists. Default: 30

Dmm.MaxFilteredResults The maximum number of filtered results to return from the DMM Search Endpoints. Default: 200

Dmm.MinimumScoreMatch The minimum score match for DMM search results. Closer to 1 means a more exact match has to occur. A value between 1 and 0. Default: 0.85

Torznab Configuration

Torznab.EnableEndpoint Indicates whether the Torznab indexer should expose an API endpoint. Default: true

Database Configuration

Database.ConnectionString The connection string for the PostgreSQL database. Default: Host=localhost;Database=zilean;Username=postgres;Password=postgres;Include Error Detail=true;Timeout=30;CommandTimeout=3600;

The database connection string comprises of the following:

  • Host: The host of the database, this will usually be the containername if you are using docker compose of the postgres instance.

  • Database: The name of the database to connect to.

  • Username: The username to connect to the database with.

  • Password: The password to connect to the database with.

  • Include Error Detail: Whether to include error details in logging database results.

  • Timeout: The timeout in seconds for the database connection.

  • CommandTimeout: The timeout in seconds for database commands to occur, such as applying migrations.

Torrents Configuration

Torrents.EnableEndpoint Indicates whether the Torrents API allowing other apps to scrape the Zilean database is enabled. Default: false

Torrents.MaxHashesToCheck The maximum number of hashes to check in a single request to the Torrents CheckCached API. Default: 100

Torrents.EnableScrapeEndpoint Indicates whether the Torrents API should expose a scrape endpoint. Default: false

Torrents.EnableCacheCheckEndpoint Indicates whether the Torrents API should expose a cache check endpoint. Default: false

IMDB Configuration

Imdb.EnableImportMatching Indicates whether the indexer should import match titles to IMDB Ids during importing. Default: true

Imdb.EnableEndpoint Indicates whether the IMDB indexer should expose an API endpoint. Default: true

Imdb.MinimumScoreMatch The minimum score match for IMDB search results. Closer to 1 means a more exact match has to occur. A value between 1 and 0. Default: 0.85

Imdb.UseAllCores Should title matching use all available processor cores on the machine? Default: false

Imdb.NumberOfCores The number of processor cores to use for parallel operations during matching Default: 2

Imdb.UseLucene Indicates whether the IMDB Matcher should use Lucene for searching. This is massively faster, at the cost of extra ram. Approx 3GB needed while performing resyncs. Default: false

Ingestion Configuration

Ingestion.ZurgInstances A list of Zurg instances to scrape from. Default: []

Ingestion.ZileanInstances A list of Zilean instances to scrape from. Default: []

Ingestion.EnableScraping Indicates whether the Ingestion indexer should scrape from Zurg and Zilean instances. Default: false

Kubernetes Configuration for Ingestion

Ingestion.Kubernetes.EnableServiceDiscovery Indicates whether the Ingestion indexer should use Kubernetes service discovery. This can be used to automatically find Zurg instances running in Kubernetes. Default: false

Ingestion.Kubernetes.KubernetesSelectors A list of selectors to use for Kubernetes service discovery. Default: []

Ingestion.Kubernetes.KubeConfigFile The path to the Kubernetes configuration file. Default: /$HOME/.kube/config

Ingestion.Kubernetes.AuthenticationType The type of authentication to use for Kubernetes service discovery. 0 = None, 1 = Kubernetes RBAC. Default: 0

Ingestion.ScrapeSchedule The cron schedule for the Ingestion indexer to scrape from Zurg and Zilean instances. Default: 0 0 * * * [Daily]

Ingestion.ZurgEndpointSuffix The endpoint suffix for the Zurg API. Default: /debug/torrents

Ingestion.ZileanEndpointSuffix The endpoint suffix for the Zilean API. Default: /torrents/all

Ingestion.RequestTimeout The timeout in milliseconds for requests to Zurg and Zilean instances. Default: 10000

Parsing Configuration

Parsing.BatchSize The batch size for parsing content. Default: 5000

Enabling Ingestion

To enable ingestion, set the Ingestion.EnableScraping key to true in the configuration. Also ensure that the Ingestion.ZurgInstances and or Ingestion.ZileanInstances keys are populated with the appropriate Url, and EndpointType values. EndpointType can be either 1 (Zurg) or 0 (Zilean). Zilean also requires an ApiKey to be set. You do not have to specify both, you can specify one or the other, or both, depending on your requirements. Also there is no limit to the number of instances you can scrape from. In order for zilean scrapes to work, the ApiKey must be set in the Zilean section of the configuration, and both Zilean.Torrents.EnableEndpoint and Zilean.Torrents.EnableScrapeEndpoint must be set to true.

An example of this configuration is as follows:

{ "Zilean": { "ApiKey": "da3a4ee25d3749ad87301d701a924eb9154c4a95c9b740c5a179469ab0f10578", "FirstRun": true, "EnableDashboard": false, "Dmm": { "EnableScraping": true, "EnableEndpoint": true, "ScrapeSchedule": "0 * * * *", "MinimumReDownloadIntervalMinutes": 30, "MaxFilteredResults": 200, "MinimumScoreMatch": 0.85 }, "Torznab": { "EnableEndpoint": true }, "Database": { "ConnectionString": "Host=localhost;Database=zilean;Username=postgres;Password=postgres;Include Error Detail=true;Timeout=30;CommandTimeout=3600;" }, "Torrents": { "EnableEndpoint": true, "MaxHashesToCheck": 100, "EnableScrapeEndpoint": true, "EnableCacheCheckEndpoint": false }, "Imdb": { "EnableImportMatching": true, "EnableEndpoint": true, "MinimumScoreMatch": 0.85 }, "Ingestion": { "ZurgInstances": [{ "Url": "http://zurg:9999", "EndpointType": 1 }], "ZileanInstances": [{ "Url": "http://other-zilean:8181", "EndpointType": 0, "ApiKey": "SomeApiKey" }], "EnableScraping": true, "Kubernetes": { "EnableServiceDiscovery": false, "KubernetesSelectors": [], "KubeConfigFile": "/$HOME/.kube/config", "AuthenticationType": 0 }, "ScrapeSchedule": "0 0 * * *", "ZurgEndpointSuffix": "/debug/torrents", "ZileanEndpointSuffix": "/torrents/all", "RequestTimeout": 10000 }, "Parsing": { "BatchSize": 5000 } } }
Last modified: 26 January 2025