services: newtube: image: docker-registry.dev.home:5000/newtube-angular:latest container_name: newtube hostname: ${NGINX_HOSTNAME} ports: - "8080:4000" environment: - PORT=${PORT} - NODE_ENV=${NODE_ENV} - JWT_SECRET=${JWT_SECRET} - ACCESS_TTL_MIN=${ACCESS_TTL_MIN} - REFRESH_TTL_DAYS=${REFRESH_TTL_DAYS} - REMEMBER_TTL_DAYS=${REMEMBER_TTL_DAYS} - YT_CACHE_TTL_MS=${YT_CACHE_TTL_MS} - GEMINI_API_KEY=${GEMINI_API_KEY} - YOUTUBE_API_KEY=${YOUTUBE_API_KEY} - YOUTUBE_API_KEYS=${YOUTUBE_API_KEYS} - TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID} - TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET} - DOWNLOAD_PROVIDERS=${DOWNLOAD_PROVIDERS:-youtube,dailymotion,twitch,peertube,odysee,rumble} - DOWNLOAD_MAX_CONCURRENT=${DOWNLOAD_MAX_CONCURRENT:-2} # --- YouTube hybride (Steps 17-18) --- - YT_SEARCH_MODE=${YT_SEARCH_MODE:-innertube-first} - YT_SCRAPE_TTL_MS=${YT_SCRAPE_TTL_MS:-1800000} - YT_DLP_TIMEOUT_MS=${YT_DLP_TIMEOUT_MS:-20000} - YT_INNERTUBE_GL=${YT_INNERTUBE_GL:-FR} - YT_INNERTUBE_HL=${YT_INNERTUBE_HL:-fr} - YT_TRANSCRIPT_SOURCE=${YT_TRANSCRIPT_SOURCE:-innertube-first} - YT_RELATED_TTL_MS=${YT_RELATED_TTL_MS:-3600000} - YT_COOKIES_FILE=${YT_COOKIES_FILE:-} - YT_PO_TOKEN=${YT_PO_TOKEN:-} - YT_EGRESS_PROXY=${YT_EGRESS_PROXY:-} - TWITCH_REDIRECT_URI=${TWITCH_REDIRECT_URI} - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - GOOGLE_REDIRECT_URI=${GOOGLE_REDIRECT_URI} - OAUTH_APP_BASE_URL=${OAUTH_APP_BASE_URL} - TZ=${TZ} volumes: - ${DIR_NEWTUBE}/assets:/app/assets - ${DIR_NEWTUBE}/db:/app/db - ${DIR_NEWTUBE}/tmp/downloads:/app/tmp/downloads restart: unless-stopped