diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9d2f31b --- /dev/null +++ b/.env.example @@ -0,0 +1,52 @@ +APP_ENV=production +APP_VERSION=1.0.0 +LOG_LEVEL=INFO +APP_DOMAIN=example.com +SQLITE_CACHE_PATH=/app/data/cache.sqlite3 +TRUSTED_PROXY_CIDRS=172.30.20.0/24 +MEDIA_TOKEN_SECRET=replace_with_a_long_random_secret_at_least_32_characters +MEDIA_TOKEN_TTL_SECONDS=180 +MEDIA_TOKEN_BIND_ANONYMOUS_ID=true +AUDIO_CACHE_TTL=600 +AUDIO_INFO_CACHE_TTL=600 +AUDIO_NEGATIVE_CACHE_TTL=90 +SEARCH_CACHE_TTL=600 +RECOMMENDATION_CACHE_TTL=900 +SOURCE_METADATA_CACHE_TTL=1800 +NEGATIVE_CACHE_TTL=90 +CACHE_MAX_VALUE_BYTES=2097152 +CACHE_CLEANUP_INTERVAL_SECONDS=300 +CACHE_CLEANUP_BATCH_SIZE=1000 +YTDLP_CONCURRENCY=5 +SEARCH_YTDLP_CONCURRENCY=3 +AUDIO_YTDLP_CONCURRENCY=2 +RECOMMENDATION_YTDLP_CONCURRENCY=3 +YTDLP_PLAYER_CLIENTS=web,android,mweb,ios +YTDLP_COOKIE_FILE= +YTDLP_BROWSER= +MAX_SEARCH_FETCH=100 +RATE_LIMIT_WINDOW_SECONDS=60 +RATE_LIMIT_SEARCH_MAX=30 +RATE_LIMIT_AUDIO_MAX=20 +MAX_ACTIVE_AUDIO_STREAMS=16 +MAX_ACTIVE_AUDIO_STREAMS_PER_IP=4 +MAX_ACTIVE_AUDIO_STREAMS_PER_ANONYMOUS_ID=4 +MAX_REQUEST_BODY_BYTES=262144 +HTTP_CONNECT_TIMEOUT_SECONDS=10 +HTTP_RESPONSE_HEADER_TIMEOUT_SECONDS=60 +HTTP_IDLE_READ_TIMEOUT_SECONDS=0 +HTTP_MAX_CONNECTIONS=100 +HTTP_MAX_KEEPALIVE_CONNECTIONS=20 +AUDIO_UPSTREAM_ORIGIN=https://www.youtube.com +AUDIO_UPSTREAM_REFERER=https://www.youtube.com/ +ALLOWED_MEDIA_HOST_SUFFIXES=.googlevideo.com,googlevideo.com +MAX_MEDIA_REDIRECTS=3 +KEY_LOCKS_MAX=4096 +RATE_LIMIT_BUCKETS_MAX=20000 +PROXY_FILE=/app/proxies.txt +PROXY_FILE_HOST=./proxies.txt +PROXY_USER= +PROXY_PASS= +PROXY_RETRY_ATTEMPTS=3 +PROXY_RELOAD_SECONDS=30 +PROXY_FAILURE_COOLDOWN_SECONDS=120 \ No newline at end of file