x-defaults: &defaults volumes: - /var/run/redis/redis-server.sock:/invidious/redis-server.sock:rw labels: - "com.centurylinklabs.watchtower.enable=false" services: invidious-base: <<: *defaults env_file: - .env profiles: ["base"] cpus: 16 mem_limit: "${INV_MEM_LIMIT}" memswap_limit: "${INV_MEM_SWAP}" image: invidious-nerdvpn:latest build: context: build dockerfile: docker/Dockerfile restart: "${INV_RESTART_POLICY}" environment: &environment INVIDIOUS_CONFIG: | force_resolve: ipv6 invidious_companion: # IPv6 - private_url: "http://invidious-companion-1:8282" public_url: "https://invidious.nerdvpn.de" note: "- EU, NL" - private_url: "http://invidious-companion-2:8282" public_url: "https://invidious.nerdvpn.de" note: "- EU, DE" - private_url: "http://invidious-companion-3:8282" public_url: "https://invidious.nerdvpn.de" note: "- EU, FR" - private_url: "http://invidious-companion-4:8282" public_url: "https://invidious.nerdvpn.de" note: "- US 1" - private_url: "http://invidious-companion-5:8282" public_url: "https://invidious.nerdvpn.de" note: "- US 2" - private_url: "http://invidious-companion-6:8282" public_url: "https://invidious.nerdvpn.de" note: "- CA" - private_url: "http://invidious-companion-7:8282" public_url: "https://invidious.nerdvpn.de" note: "- UK" - private_url: "http://invidious-companion-8:8282" public_url: "https://invidious.nerdvpn.de" note: "- AU" # IPv4 (currently too expensive, so disabled) #- private_url: "http://invidious-proxy-1:8282" # public_url: "https://invidious.nerdvpn.de" # note: "- Main, EU" #- private_url: "http://invidious-proxy-2:8282" # public_url: "https://invidious.nerdvpn.de" # note: "- Main, US" invidious_companion_key: "" backend_name_prefix: "" modified_source_code_url: "https://github.com/Sommerwiesel/invidious-nerdvpn" hmac_key: db: dbname: invidious user: invidious password: host: 192.42.6.1 port: 6432 redis_socket: "/invidious/redis-server.sock" redis_db: 4 redis_auth: "" check_tables: true external_port: 443 domain: "invidious.nerdvpn.de" https_only: true hsts: true pool_size: 100 disable_proxy: ["livestreams","local","dash","downloads"] log_level: "Error" popular_enabled: true statistics_enabled: true admins: [""] enable_user_notifications: false channel_threads: 4 channel_refresh_interval: "120m" use_pubsub_feeds: true feed_threads: 4 banner: "${BANNER_MSG}" use_innertube_for_captions: true default_user_preferences: locale: "de" region: "DE" captions: ["","English","English (auto-generated)"] dark_mode: "dark" feed_menu: ["Trending", "Subscriptions", "Playlists", "Search"] default_home: "Search" comments: ["youtube", ""] autoplay: true continue_autoplay: true quality: "hd720" quality_dash: "720p" unseen_only: true local: false automatic_instance_redirect: true hide_shorts: false networks: invidious_proxy: invidious-companion-1: container_name: invidious-companion-1 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/1:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.11 invidious-companion-2: container_name: invidious-companion-2 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/2:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.12 invidious-companion-3: container_name: invidious-companion-3 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/3:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.13 invidious-companion-4: container_name: invidious-companion-4 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/4:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.14 invidious-companion-5: container_name: invidious-companion-5 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/5:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.15 invidious-companion-6: container_name: invidious-companion-6 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/6:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.16 invidious-companion-7: container_name: invidious-companion-7 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/7:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.17 invidious-companion-8: container_name: invidious-companion-8 cpus: ${COMP_CPU_CORES} mem_limit: "${COMP_MEM_LIMIT}" memswap_limit: "${COMP_MEM_SWAP}" #image: quay.io/invidious/invidious-companion:latest image: invidious-companion-nerdvpn:latest build: context: companion dockerfile: Dockerfile labels: - "com.centurylinklabs.watchtower.enable=false" environment: - SERVER_SECRET_KEY= - PROXY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/8:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true networks: invidious_proxy: ipv4_address: 192.42.6.18 # companion 11 and 12 are for ipv4 proxies that only support socks5 invidious-companion-11: profiles: ["disabled"] container_name: invidious-companion-11 cpus: ${COMP_CPU_CORES} mem_limit: "${INV_MEM_LIMIT}" memswap_limit: "${INV_MEM_SWAP}" image: quay.io/invidious/invidious-companion:latest environment: - SERVER_SECRET_KEY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/11:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true #networks: # invidious_proxy: # ipv4_address: 192.42.6.21 network_mode: "container:invidious-proxy-1" depends_on: - invidious-proxy-1 invidious-companion-12: profiles: ["disabled"] container_name: invidious-companion-12 cpus: ${COMP_CPU_CORES} mem_limit: "${INV_MEM_LIMIT}" memswap_limit: "${INV_MEM_SWAP}" image: quay.io/invidious/invidious-companion:latest environment: - SERVER_SECRET_KEY= - SERVER_ENABLE_METRICS=false restart: unless-stopped cap_drop: - ALL read_only: true volumes: - /srv/invidious/cache/12:/var/tmp/youtubei.js:rw security_opt: - no-new-privileges:true #networks: # invidious_proxy: # ipv4_address: 192.42.6.22 network_mode: "container:invidious-proxy-2" depends_on: - invidious-proxy-2 invidious: <<: *defaults env_file: - .env container_name: invidious cpus: ${INV_CPU_CORES} mem_limit: "${INV_MEM_LIMIT}" memswap_limit: "${INV_MEM_SWAP}" image: "${INV_IMAGE}" restart: "${INV_RESTART_POLICY}" environment: <<: *environment networks: invidious_proxy: ipv4_address: 192.42.6.2 # Those are for proxies that only support socks5 invidious-proxy-1: profiles: ["disabled"] container_name: invidious-proxy-1 restart: unless-stopped image: ghcr.io/xjasonlyu/tun2socks:latest cpus: 2 mem_limit: "128m" memswap_limit: "320m" cap_add: - NET_ADMIN devices: - '/dev/net/tun:/dev/net/tun' environment: - LOGLEVEL=info - TUN=tun0 - ADDR=198.18.0.1/15 - MTU=9000 - PROXY= sysctls: - net.ipv4.ip_forward=1 - net.ipv6.conf.all.forwarding=1 - net.ipv6.conf.default.disable_ipv6=0 networks: invidious_proxy: ipv4_address: 192.42.6.200 invidious-proxy-2: profiles: ["disabled"] container_name: invidious-proxy-2 restart: unless-stopped image: ghcr.io/xjasonlyu/tun2socks:latest cpus: 2 mem_limit: "128m" memswap_limit: "320m" cap_add: - NET_ADMIN devices: - '/dev/net/tun:/dev/net/tun' environment: - LOGLEVEL=info - TUN=tun0 - ADDR=198.18.0.1/15 - MTU=9000 - PROXY= sysctls: - net.ipv4.ip_forward=1 - net.ipv6.conf.all.forwarding=1 - net.ipv6.conf.default.disable_ipv6=0 networks: invidious_proxy: ipv4_address: 192.42.6.201 networks: invidious_proxy: enable_ipv6: true external: true