Configuration
AniBridge is configured via environment variables (works well with Docker). Sensible defaults are applied for local use.
TIP
Paths are created if missing. On Docker, defaults map to /data/...; on bare metal they map to ./data/... under the working directory.
Core Paths
DOWNLOAD_DIR: final download directoryDATA_DIR: persistent data directory (SQLite DB, logs, cache)QBIT_PUBLIC_SAVE_PATH: path override in qBittorrent API responses (useful for container path mapping)
Torznab
INDEXER_NAME(default:AniBridge Torznab)INDEXER_API_KEY(optional; if set,apikeyis required)TORZNAB_CAT_ANIME(default:5070)TORZNAB_CAT_MOVIE(default:2000)- Fake peers for connectivity:
TORZNAB_FAKE_SEEDERS/TORZNAB_FAKE_LEECHERS - Connectivity test result:
TORZNAB_RETURN_TEST_RESULT(true|false) - Test release fields:
TORZNAB_TEST_TITLE,TORZNAB_TEST_SLUG,TORZNAB_TEST_SEASON,TORZNAB_TEST_EPISODE,TORZNAB_TEST_LANGUAGE - Season-search mode:
TORZNAB_SEASON_SEARCH_MODE(fast|strict, default:fast) - Season-search fallback guardrails:
TORZNAB_SEASON_SEARCH_MAX_EPISODES(default:60)TORZNAB_SEASON_SEARCH_MAX_CONSECUTIVE_MISSES(default:3)
STRM Files
STRM_FILES_MODE(no|both|only, default:no)no: behave like today (download via yt-dlp).both: emit both variants for each Torznab item (download + STRM).only: emit only STRM variants.
STRM_PROXY_MODE(direct|proxy|redirect, default:direct)STRM_PUBLIC_BASE_URL(required when proxy mode is enabled)STRM_PROXY_AUTH(none|token|apikey, default:token)STRM_PROXY_SECRET(shared secret for token/apikey auth)STRM_PROXY_UPSTREAM_ALLOWLIST(comma-separated upstream host allowlist)STRM_PROXY_CACHE_TTL_SECONDS(default:0)STRM_PROXY_TOKEN_TTL_SECONDS(default:900)
When STRM_PROXY_AUTH is set to token or apikey, STRM_PROXY_SECRET must be configured.
IMPORTANT
If your media server is served over HTTPS, AniBridge should also be served over HTTPS for browser Direct Play. Set STRM_PUBLIC_BASE_URL to the HTTPS URL and place AniBridge behind a reverse proxy with TLS. The public URL must be reachable by both the media server and the client device.
In STRM mode, AniBridge schedules creation of a .strm file (plain text, one HTTP(S) URL line) instead of downloading media bytes. When STRM_PROXY_MODE=proxy, the .strm file contains a stable AniBridge URL that streams bytes from the upstream provider/CDN.
WARNING
Sonarr can occasionally reject .strm imports with “No audio tracks detected” even when playback works. If this appears, use manual import or disable “Analyze video files” in Sonarr. See Issue #50.
WARNING
Known limitation: when STRM_PROXY_MODE=proxy, some media players (especially Jellyfin with specific HLS sources) may still show Video-Bitrate: 0 kbps and/or exhibit unstable playback behavior. There is currently no reliable AniBridge-side fix planned in the near term for this class of issue. See Issue #51
Provider & Language
PROVIDER_ORDER: comma-separated providers by priority (e.g.,VOE,Filemoon,Streamtape,...)- Languages supported:
German Dub,German Sub,English Sub,English Dub
Catalogue Sites & Title Indices
CATALOG_SITES: enabled catalogues (defaultaniworld.to,s.to,megakino). Order controls search priority.ANIWORLD_BASE_URL: AniWorld base URL (defaulthttps://aniworld.to).ANIWORLD_ALPHABET_URL: AniWorld alphabet page (defaulthttps://aniworld.to/animes-alphabet).ANIWORLD_ALPHABET_HTML: local AniWorld snapshot path (default./data/aniworld-alphabeth.html).ANIWORLD_TITLES_REFRESH_HOURS: AniWorld index refresh cadence (default24).STO_BASE_URL: Serienstream/s.to base URL (defaulthttps://s.to).STO_ALPHABET_URL: Serienstream alphabet page (defaulthttps://s.to/serien-alphabet).STO_ALPHABET_HTML: local Serienstream snapshot path (default./data/sto-alphabeth.html).STO_TITLES_REFRESH_HOURS: Serienstream index refresh cadence (default24).MEGAKINO_BASE_URL: megakino base URL (auto-resolved at startup; override if needed).MEGAKINO_DOMAIN_CHECK_INTERVAL_MIN: minutes between background domain checks (default100, 0 disables).
Megakino base URLs are auto-resolved by loading mirrors.txt from known megakino domains and validating the sitemap until a working site is found. Megakino operates in search-only mode (no alphabet index). Queries must use a slug or a URL that contains one (e.g. /serials/<id>-<slug>.html). Megakino defaults to Deutsch/German Dub language labels; adjust PROVIDER_ORDER or query language if needed.
Naming
SOURCE_TAG(e.g.,WEB,WEB-DL)RELEASE_GROUP(e.g.,aniworld-> becomes-ANIWORLD)RELEASE_GROUP_ANIWORLD/RELEASE_GROUP_STO: per-catalogue overrides for release group suffix
Scheduler
MAX_CONCURRENCY(thread pool size; default3)
Networking / VPN Policy
In-app outbound proxy support has been removed. Use external routing only (system VPN, Docker VPN sidecar, or network-layer policy outside AniBridge).
PUBLIC_IP_CHECK_ENABLED(default:false) enables periodic public IP logs.PUBLIC_IP_CHECK_INTERVAL_MIN(default:30) controls the check interval; set0to disable.
See Networking & VPN for supported patterns.
Example .env
CATALOG_SITES=aniworld.to,s.to,megakino
DOWNLOAD_DIR=./data/downloads
DATA_DIR=./data
ANIWORLD_BASE_URL=https://aniworld.to
STO_BASE_URL=https://s.to
MEGAKINO_BASE_URL=https://megakino1.to
INDEXER_NAME="AniBridge Torznab"
TORZNAB_RETURN_TEST_RESULT=true
PROVIDER_ORDER=VOE,Filemoon,Streamtape,Vidmoly,Doodstream,LoadX,Luluvdo,Vidoza
SOURCE_TAG=WEB
RELEASE_GROUP=aniworld
RELEASE_GROUP_STO=sto
MAX_CONCURRENCY=3Browse the full list with explanations in Environment.