yt-dlp-dags/airflow/docker-compose.camoufox.yaml.j2
2025-08-26 18:00:55 +03:00

58 lines
2.0 KiB
Django/Jinja

# THIS FILE IS AUTO-GENERATED BY generate_envoy_config.py
# DO NOT EDIT MANUALLY.
#
# It contains the service definitions for the camoufox instances
# and adds the necessary dependencies to the main services.
services:
{% for proxy in proxies %}
camoufox-{{ loop.index }}:
build:
context: ./camoufox
dockerfile: Dockerfile
args:
VNC_PASSWORD: "{{ vnc_password }}"
shm_size: 2gb # Increase shared memory for browser stability
volumes:
- camoufox-data-{{ loop.index }}:/app/persistent-data
ports:
- "{{ base_vnc_port + loop.index - 1 }}:5900"
networks:
- proxynet
command: [
"--ws-host", "0.0.0.0",
"--port", "12345",
"--ws-path", "mypath",
"--proxy-url", "{{ proxy.url }}",
"--locale", "en-US",
"--geoip",
"--extensions", "/app/extensions/google_sign_in_popup_blocker-1.0.2.xpi,/app/extensions/spoof_timezone-0.3.4.xpi,/app/extensions/youtube_ad_auto_skipper-0.6.0.xpi",
"--persistent-context",
"--user-data-dir", "/app/persistent-data",
"--preferences", "security.sandbox.content.level=0,layers.acceleration.disabled=true,cookiebanners.service.mode=2,cookiebanners.service.mode.privateBrowsing=2,network.cookie.lifetimePolicy=0,network.cookie.thirdparty.sessionOnly=false,network.cookie.cookieBehavior=0,network.cookie.alwaysAcceptSessionCookies=true",
"--num-instances", "{{ num_instances | default(4) }}",
"--monitor-resources"
]
restart: unless-stopped
{% endfor %}
{% if proxies %}
# This service is a dependency anchor. The main services depend on it,
# and it in turn depends on all camoufox instances.
camoufox-group:
image: alpine:3.19
command: ["echo", "Camoufox dependency group ready."]
restart: "no"
networks:
- proxynet
depends_on:
{% for proxy in proxies %}
camoufox-{{ loop.index }}:
condition: service_started
{% endfor %}
{% endif %}
volumes:
{% for proxy in proxies %}
camoufox-data-{{ loop.index }}:
{% endfor %}