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
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 thecontainername
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: