COMPOSE_PROJECT_NAME=egress-proxy

# Authenticated upstream HTTP proxy
UPSTREAM_HOST=strictlypragmatic.ru
UPSTREAM_PORT=8088
UPSTREAM_USERNAME=pragmatic
UPSTREAM_PASSWORD=MALAku4a0204!

# Native tarampampam/3proxy settings
LOG_OUTPUT=/dev/stdout
PROXY_PORT=3128
SOCKS_PORT=1080
PRIMARY_RESOLVER=8.8.8.8
SECONDARY_RESOLVER=8.8.8.8
DNS_CACHE_SIZE=65536
MAX_CONNECTIONS=100
NOFILE_SOFT=2048
NOFILE_HARD=4096

# 3proxy chaining and access control
PARENT_RETRIES=3

# Comma-separated source addresses/CIDRs, or * for everyone.
# Examples:
# CLIENT_ALLOW=192.168.0.0/16
# CLIENT_ALLOW=192.168.1.10,192.168.1.11
CLIENT_ALLOW=*

# Additional arguments appended to the generated listeners.
PROXY_EXTRA_ARGS=
SOCKS_EXTRA_ARGS=

# Standalone port publishing
BIND_ADDRESS=127.0.0.1
HTTP_PUBLIC_PORT=3128
SOCKS_PUBLIC_PORT=1080

# Existing Traefik integration
TRAEFIK_NETWORK=traefik
TRAEFIK_ROUTER_PREFIX=chained-3proxy
TRAEFIK_HTTP_ENTRYPOINT=proxy-http
TRAEFIK_SOCKS_ENTRYPOINT=proxy-socks

# Existing containerized Nginx/HAProxy integration
EDGE_NETWORK=edge
EDGE_SERVICE_ALIAS=chained-3proxy

# Smoke tests
TEST_IMAGE=curlimages/curl:8.14.1

# These endpoints must return only the public IP address.
TEST_HTTP_URL=http://ipinfo.io
TEST_HTTPS_URL=https://ipinfo.io

TEST_ATTEMPTS=20
TEST_RETRY_DELAY=1
TEST_TIMEOUT=15

# Strongest validation method when the upstream has a fixed exit IP.
EXPECTED_EXIT_IP=

# Disable this if the upstream rotates between several exit IPs.
ASSERT_SAME_PROXY_EXIT=false

# Disable this if direct internet access is blocked or if the upstream
# legitimately uses the same public IP as the Docker host.
ASSERT_DIFFERENT_FROM_DIRECT=true