mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-28 17:01:16 +00:00
73 lines
4.4 KiB
PHP
73 lines
4.4 KiB
PHP
<?php
|
|
|
|
return [
|
|
'db_name' => env('DB_DATABASE', 'nntmux'),
|
|
'items_per_page' => env('ITEMS_PER_PAGE', 50),
|
|
'items_per_cover_page' => env('ITEMS_PER_COVER_PAGE', 20),
|
|
'max_pager_results' => env('MAX_PAGER_RESULTS', 125000),
|
|
'echocli' => env('ECHOCLI', true),
|
|
'rename_par2' => env('RENAME_PAR2', true),
|
|
'rename_music_mediainfo' => env('RENAME_MUSIC_MEDIAINFO', true),
|
|
'cache_expiry_short' => (int) env('CACHE_EXPIRY_SHORT', 5),
|
|
'cache_expiry_medium' => (int) env('CACHE_EXPIRY_MEDIUM', 10),
|
|
'cache_expiry_long' => (int) env('CACHE_EXPIRY_LONG', 15),
|
|
'admin_username' => env('ADMIN_USER', 'admin'),
|
|
'admin_password' => env('ADMIN_PASS', 'admin'),
|
|
'admin_email' => env('ADMIN_EMAIL', 'admin@example.com'),
|
|
'crc_token' => env('CRC_TOKEN', null),
|
|
'multiprocessing_max_child_time' => env('NN_MULTIPROCESSING_MAX_CHILD_TIME', 1800),
|
|
'concurrency_timeout' => env('NN_CONCURRENCY_TIMEOUT'),
|
|
'stream_fork_output' => env('STREAM_FORK_OUTPUT', false),
|
|
'purge_inactive_users' => env('PURGE_INACTIVE_USERS', false),
|
|
'purge_inactive_users_days' => env('PURGE_INACTIVE_USERS_DAYS', 180),
|
|
'mysql_search_fallback' => env('MYSQL_SEARCH_FALLBACK', false), // Disable MySQL LIKE fallback when Manticore/Elasticsearch return no results
|
|
'api' => [
|
|
'release_cache_ttl' => (int) env('API_RELEASE_CACHE_TTL', 600),
|
|
'release_cache_jitter' => (int) env('API_RELEASE_CACHE_JITTER', 60),
|
|
'release_cache_stale_ttl' => (int) env('API_RELEASE_CACHE_STALE_TTL', 900),
|
|
'release_cache_lock_ttl' => (int) env('API_RELEASE_CACHE_LOCK_TTL', 15),
|
|
'async_audit' => (bool) env('API_ASYNC_AUDIT', true),
|
|
'audit_queue' => env('API_AUDIT_QUEUE', 'api-audit'),
|
|
'access_update_interval' => (int) env('API_ACCESS_UPDATE_INTERVAL', 60),
|
|
'metrics_sample_rate' => (float) env('API_METRICS_SAMPLE_RATE', 0.01),
|
|
],
|
|
'block_proxy_indexer_apps' => (bool) env('BLOCK_PROXY_INDEXER_APPS', false),
|
|
'block_proxy_indexer_app_user_agents' => env('BLOCK_PROXY_INDEXER_APP_USER_AGENTS', 'Prowlarr/,NZBHydra2'),
|
|
|
|
// Behavioural detection of direct proxy fetches (NZBHydra2/Prowlarr) that spoof a downloader UA.
|
|
// Combines Referer, UA-pair, download/search ratio, and IP-correlation signals into a score; blocks
|
|
// only when the score meets the threshold, so legitimate redirected grabs are left untouched.
|
|
'proxy_detection_enabled' => (bool) env('PROXY_DETECTION_ENABLED', false),
|
|
'proxy_detection_threshold' => (int) env('PROXY_DETECTION_THRESHOLD', 50),
|
|
'proxy_detection_window_seconds' => (int) env('PROXY_DETECTION_WINDOW_SECONDS', 3600),
|
|
'proxy_detection_ratio_min' => (float) env('PROXY_DETECTION_RATIO_MIN', 0.8),
|
|
'proxy_detection_min_searches' => (int) env('PROXY_DETECTION_MIN_SEARCHES', 20),
|
|
// Only apps that fetch NZBs directly from the indexer belong here. NZBHydra2 and Prowlarr issue their
|
|
// own download requests, so they can proxy an NZB fetch. The *arr suite (Sonarr, Radarr, Lidarr,
|
|
// Readarr, Bazarr) only search — directly or via Prowlarr/NZBHydra2 — and never download from the
|
|
// indexer, so listing them here would only risk false positives. Jackett is torrent-only (Torznab)
|
|
// and cannot query a newznab/Usenet indexer, so it never fetches NZBs here either.
|
|
'proxy_detection_indexer_referer_patterns' => env('PROXY_DETECTION_INDEXER_REFERER_PATTERNS', 'hydra,prowlarr'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Release dedupe (import-time)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Size tolerance for matching an existing release when deduping imports
|
|
| (collections / NZB). Default 0.05 = ±5% on total bytes (par2/RAR drift).
|
|
|
|
|
*/
|
|
'release_dedupe_size_tolerance' => (float) env('RELEASE_DEDUPE_SIZE_TOLERANCE', 0.05),
|
|
'btcpay_webhook_secret' => env('BTCPAY_SECRET'),
|
|
'tmp_unrar_path' => env('TEMP_UNRAR_PATH', storage_path('tmp/unrar/')),
|
|
'tmp_unzip_path' => env('TEMP_UNZIP_PATH', storage_path('tmp/unzip/')),
|
|
'nzb_import_folder' => env('NZB_IMPORT_FOLDER'),
|
|
'nzb_upload_folder' => env('NZB_UPLOAD_FOLDER'),
|
|
'redis_fast_degrade' => (bool) env('REDIS_FAST_DEGRADE', true),
|
|
'redis_tcp_check_seconds' => (float) env('REDIS_TCP_CHECK_SECONDS', 0.2),
|
|
'categorization' => [
|
|
'log' => (bool) env('NNTMUX_CATEGORIZATION_LOG', false),
|
|
],
|
|
];
|