AIOStreamsAIOStreams
Configuration

Environment Variables

Complete reference for all AIOStreams environment variables.

AIOStreams is configured via environment variables. When using Docker Compose, these go in your .env file. A fully documented sample is available at .env.sample.


Essential Setup

VariableDefaultDescription
ADDON_NAME"AIOStreams"Display name for your addon instance
ADDON_ID"aiostreams.viren070.com"Unique addon identifier
PORT3000Port the server listens on
BASE_URLRequired. Public URL of your instance (e.g. https://aiostreams.example.com)
SECRET_KEYRequired. 64-character hex string used to encrypt configs. Generate with openssl rand -hex 32
ADDON_PASSWORDPassword to protect your instance. Supports multiple comma-separated values
DATABASE_URIsqlite://./data/db.sqliteDatabase connection URI. Supports SQLite and PostgreSQL
REDIS_URIRedis URI for shared caching (only needed for multi-instance deployments)

SECRET_KEY is required and must be a 64-character hexadecimal string. AIOStreams will refuse to start without it.


Authentication & Authorisation

VariableDefaultDescription
AIOSTREAMS_AUTHComma-separated user:password pairs for the built-in proxy (e.g. user1:pass1,user2:pass2)
AIOSTREAMS_AUTH_ADMINSComma-separated usernames (from AIOSTREAMS_AUTH) that have admin access
TRUSTED_UUIDSComma-separated list of UUIDs that are considered "trusted"
REGEX_FILTER_ACCESStrustedWho can use regex filters: none, trusted, or all
SEL_SYNC_ACCESStrustedWho can sync SEL expressions from arbitrary URLs: all or trusted
WHITELISTED_REGEX_PATTERNSJSON array of regex pattern strings available to all users
WHITELISTED_REGEX_PATTERNS_URLSJSON array of URLs to fetch whitelisted patterns from
WHITELISTED_REGEX_PATTERNS_DESCRIPTIONMarkdown description shown alongside whitelisted patterns
WHITELISTED_SEL_URLSJSON array of SEL sync URLs that non-trusted users can sync from
WHITELISTED_SYNC_REFRESH_INTERVAL86400How often sync URL content is refreshed (seconds)

Built-in Addons

General

VariableDefaultDescription
BUILTIN_STREMTHRU_URLhttps://stremthru.13377001.xyzStremThru URL for built-in Debrid integrations
BUILTIN_SCRAPE_WITH_ALL_TITLESfalseUse alternative titles for text queries. true = all, false = primary only, or comma-separated hostnames
BUILTIN_SCRAPE_TITLE_LANGUAGESFine-grained per-indexer title language control. See .env.sample for format
BUILTIN_DEBRID_INSTANT_AVAILABILITY_CACHE_TTL1800Cache TTL for debrid cache status (seconds)
BUILTIN_DEBRID_PLAYBACK_LINK_CACHE_TTL3600Cache TTL for debrid playback links (seconds)
BUILTIN_DEBRID_ERROR_CACHE_TTL3600Cache TTL for content-level failures (seconds)
BUILTIN_DEBRID_LIBRARY_CACHE_TTL604800Cache TTL for debrid library list (seconds)
BUILTIN_DEBRID_LIBRARY_STALE_THRESHOLD600Stale threshold for background library refresh (seconds)
BUILTIN_DEBRID_USE_TORRENT_DOWNLOAD_URLtrueUse torrent download URLs instead of magnets
MAX_NZB_FAILOVER_COUNT5Max NZB failover attempts users can configure
BUILTIN_DOWNLOAD_POLL_INTERVALsee samplePer-service download poll intervals (e.g. torbox:15s,nzbdav:3s,*:10s)
BUILTIN_DOWNLOAD_MAX_WAIT_TIMEsee samplePer-service max wait times before timeout
BUILTIN_GET_TORRENT_TIMEOUT5000Timeout for fetching torrent metadata from a URL (ms)
BUILTIN_GET_TORRENT_CONCURRENCY100Concurrency for torrent metadata fetch tasks
BUILTIN_GET_TORRENT_LAZILYtrueFetch non-magnet torrents in the background instead of blocking the search
BUILTIN_MINIMUM_BACKGROUND_REFRESH_INTERVAL86400Minimum interval between background cache refreshes (seconds)

Prowlarr

VariableDescription
BUILTIN_PROWLARR_URLDefault Prowlarr URL (hidden from users)
BUILTIN_PROWLARR_API_KEYDefault Prowlarr API key (hidden from users)
BUILTIN_PROWLARR_INDEXERSComma-separated list of allowed indexers
BUILTIN_PROWLARR_SEARCH_CACHE_TTLCache TTL for search results (default: 604800)
BUILTIN_PROWLARR_INDEXERS_CACHE_TTLCache TTL for indexer list (default: 1209600)

Jackett

VariableDescription
BUILTIN_JACKETT_URLDefault Jackett URL (hidden from users)
BUILTIN_JACKETT_API_KEYDefault Jackett API key (hidden from users)

NZBHydra2

VariableDescription
BUILTIN_NZBHYDRA_URLDefault NZBHydra2 URL (hidden from users)
BUILTIN_NZBHYDRA_API_KEYDefault NZBHydra2 API key (hidden from users)

Knaben

VariableDescription
BUILTIN_KNABEN_SEARCH_TIMEOUTTimeout for Knaben search requests (default: 30000 ms)
BUILTIN_KNABEN_SEARCH_CACHE_TTLCache TTL for Knaben results (default: 604800)
BUILTIN_KNABEN_DOWNLOAD_TORRENTSWhether to download .torrent files for results without an infohash

Torrent Galaxy

VariableDescription
BUILTIN_TORRENT_GALAXY_URLTGx URL (default: https://torrentgalaxy.space)
BUILTIN_TORRENT_GALAXY_SEARCH_TIMEOUTTimeout for TGx searches (default: 30000 ms)
BUILTIN_TORRENT_GALAXY_SEARCH_CACHE_TTLCache TTL (default: 604800)
BUILTIN_TORRENT_GALAXY_PAGE_LIMITMax pages to fetch (default: 5)

*znab (Torznab / Newznab)

VariableDefaultDescription
BUILTIN_NAB_SEARCH_TIMEOUT30000Search request timeout (ms)
BUILTIN_NAB_SEARCH_CACHE_TTL604800Search results cache TTL (seconds)
BUILTIN_NAB_CAPABILITIES_CACHE_TTL1209600Indexer capabilities cache TTL (seconds)
BUILTIN_NAB_MAX_PAGES5Max pages to fetch per search
BUILTIN_NAB_USER_AGENTOverride the User-Agent for *znab requests
BUILTIN_NAB_HTTP_PROXYPer-namespace HTTP proxy override (e.g. torznab:http://proxy:8118)
VariableDefaultDescription
BUILTIN_TORBOX_SEARCH_SEARCH_API_TIMEOUT30000Timeout for TorBox Search API (ms)
BUILTIN_TORBOX_SEARCH_CACHE_PER_USER_SEARCH_ENGINEfalseCache results per-user when user search engines are enabled
BUILTIN_TORBOX_SEARCH_SEARCH_API_CACHE_TTL604800Cache TTL for search results (seconds)

Stremio GDrive

VariableDescription
BUILTIN_GDRIVE_CLIENT_IDOAuth2 Client ID for Google Drive integration
BUILTIN_GDRIVE_CLIENT_SECRETOAuth2 Client Secret for Google Drive integration
BUILTIN_GDRIVE_PAGE_SIZE_LIMITMax Drive API results per query (default: 1000)

Bitmagnet

VariableDescription
BUILTIN_BITMAGNET_URLURL of a Bitmagnet instance to enable in the marketplace

SeaDex

VariableDefaultDescription
BUILTIN_SEADEX_URLhttps://releases.moeSeaDex URL
BUILTIN_SEADEX_DATASET_REFRESH_INTERVAL86400Refresh interval for SeaDex data (seconds)

Other Built-in Addons

VariableDefaultDescription
BUILTIN_ZILEAN_URLhttps://zileanfortheweebs.midnightignite.meZilean URL
BUILTIN_ANIMETOSHO_URLhttps://feed.animetosho.orgAnimeTosho URL
BUILTIN_NEKOBT_URLhttps://nekobt.to/api/torznabNekoBT URL

Anime Database

VariableDefaultDescription
ANIME_DB_LEVEL_OF_DETAILrequiredDetail level for the local anime database: none, required, or full
ANIME_DB_FRIBB_MAPPINGS_REFRESH_INTERVAL86400000Refresh interval for Fribb mappings (ms)
ANIME_DB_MANAMI_DB_REFRESH_INTERVAL604800000Refresh interval for Manami DB (ms)
ANIME_DB_KITSU_IMDB_MAPPING_REFRESH_INTERVAL86400000Refresh interval for Kitsu→IMDb mappings (ms)
ANIME_DB_EXTENDED_ANITRAKT_MOVIES_REFRESH_INTERVAL86400000Refresh interval for AniTrakt movie mappings (ms)
ANIME_DB_EXTENDED_ANITRAKT_TV_REFRESH_INTERVAL86400000Refresh interval for AniTrakt TV mappings (ms)

Debrid & Service API Keys

For each service, you can set a DEFAULT_ value (pre-filled in the UI but user-editable) or a FORCED_ value (overrides user settings and is hidden from the UI).

ServiceVariables
Real-DebridDEFAULT_REALDEBRID_API_KEY, FORCED_REALDEBRID_API_KEY
AllDebridDEFAULT_ALLDEBRID_API_KEY, FORCED_ALLDEBRID_API_KEY
PremiumizeDEFAULT_PREMIUMIZE_API_KEY, FORCED_PREMIUMIZE_API_KEY
Debrid-LinkDEFAULT_DEBRIDLINK_API_KEY, FORCED_DEBRIDLINK_API_KEY
TorBoxDEFAULT_TORBOX_API_KEY, FORCED_TORBOX_API_KEY
OffCloudDEFAULT_OFFCLOUD_API_KEY/EMAIL/PASSWORD, FORCED_OFFCLOUD_API_KEY/EMAIL/PASSWORD
Put.ioDEFAULT_PUTIO_CLIENT_ID/SECRET, FORCED_PUTIO_CLIENT_ID/SECRET
EasyNewsDEFAULT_EASYNEWS_USERNAME/PASSWORD, FORCED_EASYNEWS_USERNAME/PASSWORD
EasyDebridDEFAULT_EASYDEBRID_API_KEY, FORCED_EASYDEBRID_API_KEY
DebriderDEFAULT_DEBRIDER_API_KEY, FORCED_DEBRIDER_API_KEY
PikPakDEFAULT_PIKPAK_EMAIL/PASSWORD, FORCED_PIKPAK_EMAIL/PASSWORD
SeedrDEFAULT_SEEDR_ENCODED_TOKEN, FORCED_SEEDR_ENCODED_TOKEN

Also available for metadata:

VariableDescription
TMDB_ACCESS_TOKENTMDB access token for title matching
TMDB_API_KEYTMDB API key
TRAKT_CLIENT_IDTrakt client ID for alias lookups
FETCH_TRAKT_ALIASESWhether to fetch Trakt aliases (default: true)

Stream Proxy (MediaFlow / StremThru)

These control the default stream proxy shown to users. DEFAULT_ values are pre-filled. FORCE_ values override and hide the option.

VariableDefaultDescription
DEFAULT_PROXY_IDmediaflowProxy type: mediaflow or stremthru
DEFAULT_PROXY_URLURL of your proxy instance
DEFAULT_PROXY_PUBLIC_URLPublic URL of your proxy instance (if different)
DEFAULT_PROXY_CREDENTIALSCredentials in username:password format
DEFAULT_PROXY_PUBLIC_IPPublic IP of the proxy
DEFAULT_PROXY_PROXIED_SERVICESJSON array of service IDs to proxy (e.g. ["realdebrid","torbox"])
DEFAULT_PROXY_ENABLEDDefault enabled state
FORCE_PROXY_IDForce proxy type
FORCE_PROXY_URLForce proxy URL
FORCE_PROXY_CREDENTIALSForce proxy credentials
FORCE_PROXY_ENABLEDForce proxy on/off
FORCE_PROXY_DISABLE_PROXIED_ADDONSfalseDisable the "Proxied Addons" feature
ENCRYPT_MEDIAFLOW_URLStrueEncrypt MediaFlow streaming URLs
ENCRYPT_STREMTHRU_URLStrueEncrypt StremThru streaming URLs

Outgoing Addon Proxy

Configure a proxy for requests AIOStreams makes to upstream addons (e.g. to bypass Torrentio IP blocks).

VariableDescription
ADDON_PROXYProxy URL, e.g. http://warp:1080. Can be a JSON array for multiple proxies
ADDON_PROXY_CONFIGComma-separated rules domain:bool_or_index (e.g. *:false,*.strem.fun:true)

Caching

VariableDefaultDescription
DEFAULT_MAX_CACHE_SIZE100000Max items in any cache instance
PROXY_IP_CACHE_TTL900TTL for proxy public IP cache (seconds). -1 disables
MANIFEST_CACHE_TTL21600Manifest cache TTL (seconds)
SUBTITLE_CACHE_TTL300Subtitle cache TTL (seconds)
STREAM_CACHE_TTL-1Stream cache TTL. Supports per-addon rules (e.g. *:-1,torrentio:300)
CATALOG_CACHE_TTL300Catalog cache TTL (seconds)
META_CACHE_TTL300Meta cache TTL (seconds)
ADDON_CATALOG_CACHE_TTL300Addon catalog cache TTL (seconds)
POSTER_API_KEY_VALIDITY_CACHE_TTL604800TTL for poster service API key validation cache (seconds)
BACKGROUND_RESOURCE_REQUEST_TIMEOUTTimeout for background resource requests (ms)

Customisation & Access Control

VariableDescription
CUSTOM_HTMLHTML snippet displayed at the top of the configuration page
FEATURED_TEMPLATE_IDSComma-separated template IDs to pin in the "About" section (max 2)
ALTERNATE_DESIGNEnable alternate AIOStreams logo design (default: false)
ALIASED_CONFIGURATIONSComma-separated alias:uuid:encryptedPassword vanity URL triplets
PROVIDE_STREAM_DATAtrue, false, or comma-separated IPs to control stream data exposure
ENABLE_SEARCH_APIEnable the /api/v1/search endpoint (default: true)

Remote Templates

VariableDefaultDescription
TEMPLATE_URLS[]JSON array of URLs to fetch remote templates from
TEMPLATE_REFRESH_INTERVAL86400How often remote templates are refreshed (seconds). 0 disables auto-refresh

Feature Control

VariableDefaultDescription
DISABLE_SELF_SCRAPINGtruePrevent this instance from being added as an addon to itself
DISABLED_HOSTShost:reason pairs to block specific hostnames from being added
DISABLED_ADDONSaddonID:reason pairs to hide addons from the marketplace
DISABLED_SERVICESservice:reason pairs to hide services from the configuration page

Logging

VariableDefaultOptions
LOG_LEVELhttperror, warn, info, http, verbose, debug, silly
LOG_FORMATtexttext or json
LOG_SENSITIVE_INFOtrueInclude API keys/sensitive data in logs
LOG_TIMEZONEEtc/UTCIANA timezone string (e.g. Europe/London)

Limits

VariableDefaultDescription
MAX_ADDONS15Max addons per configuration
MAX_GROUPS20Max groups per configuration
MAX_KEYWORD_FILTERS30Max keyword filters per configuration
MAX_STREAM_EXPRESSIONS200Max total stream expressions across all filter types
MAX_STREAM_EXPRESSIONS_TOTAL_CHARACTERS50000Max total character count across all stream expressions
MAX_SEL_LENGTH3000Max character length of a single SEL expression
MAX_FORMATTER_TEMPLATE_LENGTH5000Max character length for formatter templates
MAX_BACKGROUND_PINGS2Max streams that can be pinged in a single background operation
PRELOAD_STREAMS_CONCURRENCY5Concurrency for stream preload requests
MAX_TIMEOUT50000Maximum addon timeout override (ms)
MIN_TIMEOUT1000Minimum addon timeout override (ms)
DEFAULT_TIMEOUT7000Default request timeout (ms)
PRECACHE_NEXT_EPISODE_MIN_INTERVAL86400Minimum interval between precache attempts of the same episode (seconds)
PRELOAD_MIN_INTERVAL3600Minimum interval between preload operations for the same item (seconds)

Rate Limits

VariableDefault (window/max)Description
DISABLE_RATE_LIMITSfalseDisable all rate limits (not recommended)
STATIC_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 75Static file serving
USER_API_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 5User API
STREAM_API_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 10Stream API
FORMAT_API_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 30Format API
CATALOG_API_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 5Catalog API
ANIME_API_RATE_LIMIT_WINDOW / _MAX_REQUESTS60s / 120Anime API
STREMIO_STREAM_RATE_LIMIT_WINDOW / _MAX_REQUESTS15s / 10Stremio stream endpoint
STREMIO_CATALOG_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 30Stremio catalog endpoint
STREMIO_MANIFEST_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 5Stremio manifest endpoint
STREMIO_SUBTITLE_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 10Stremio subtitle endpoint
STREMIO_META_RATE_LIMIT_WINDOW / _MAX_REQUESTS5s / 15Stremio meta endpoint

Inactive User Pruning

VariableDefaultDescription
PRUNE_INTERVAL86400How often to check for inactive users (seconds)
PRUNE_MAX_DAYS-1Days of inactivity before pruning. -1 disables pruning

URL Mappings

VariableDescription
REQUEST_URL_MAPPINGSJSON map to reroute outgoing requests (e.g. {"https://ext.example.com": "http://localhost:3000"})
STREAM_URL_MAPPINGSJSON map to rewrite stream URLs returned to clients

External Addon URLs & Timeouts

For each supported third-party addon, you can configure a default URL and timeout via <ADDON_NAME>_URL and DEFAULT_<ADDON_NAME>_TIMEOUT. Examples:

VariableDefault
TORRENTIO_URLhttps://torrentio.strem.fun/
COMET_URLhttps://comet.feels.legal/
MEDIAFUSION_URLhttps://mediafusion.elfhosted.com/
JACKETTIO_URLhttps://jackettio.elfhosted.com/
STREMTHRU_STORE_URLhttps://stremthru.13377001.xyz/stremio/store/
METEOR_URLhttps://meteorfortheweebs.midnightignite.me

Refer to the .env.sample for the complete list. Most addons also support FORCE_<ADDON>_HOSTNAME, FORCE_<ADDON>_PORT, and FORCE_<ADDON>_PROTOCOL overrides for reverse proxy scenarios.

On this page