# A single deploy/container running both viewers. # # cp .env.example .env # # Set ACCESS_KEY and ACCESS_TOKEN # docker compose up -d # curl http://localhost:10000/health services: viewers: build: . shm_size: 2g ports: - "10000:10000" # Optional FeelingSurf's internal status UI: - "3000:3000" environment: PORT: "10000" FEELINGSURF_PORT: "3000" NINEHITS_ENABLED: "${NINEHITS_ENABLED:-no}" FEELINGSURF_ENABLED: "${FEELINGSURF_ENABLED:-yes}" # 512MB dual-viewer management (see README): LOW_MEMORY flags + memguard # memory guardian; auto falls back to time-slicing the two viewers. DUAL_VIEWER_MODE: "${DUAL_VIEWER_MODE:-auto}" TIME_SLICE: "${TIME_SLICE:-1500}" LOW_MEMORY: "${LOW_MEMORY:-auto}" NH_SP: "${NH_SP:-yes}" FS_SP: "${FS_SP:-yes}" FS_GL_MODE: "${FS_GL_MODE:-swiftshader}" FS_SHARE_DISPLAY: "${FS_SHARE_DISPLAY:-yes}" MEMGUARD_LIMIT_MB: "${MEMGUARD_LIMIT_MB:-0}" MEMGUARD_HARD_PCT: "${MEMGUARD_HARD_PCT:-97}" CREATE_SWAP: "${CREATE_SWAP:-}" NH_RUN_EXTRA_ARGS: "${NH_RUN_EXTRA_ARGS:-}" FS_EXTRA_FLAGS: "${FS_EXTRA_FLAGS:-}" ACCESS_TOKEN: "${ACCESS_TOKEN:-}" ACCESS_KEY: "${ACCESS_KEY:-}" CLEAR_ALL_SESSIONS: "${CLEAR_ALL_SESSIONS:-yes}" SYSTEM_SESSION: "${SYSTEM_SESSION:-no}" SESSION_NOTE: "${SESSION_NOTE:-my-proxies}" BULK_ADD_PROXY_TYPE: "${BULK_ADD_PROXY_TYPE:-}" BULK_ADD_PROXY_LIST: "${BULK_ADD_PROXY_LIST:-}" BULK_ADD_PROXY_LIST_URL: "${BULK_ADD_PROXY_LIST_URL:-}" EX_PROXY_SESSIONS: "${EX_PROXY_SESSIONS:-}" EX_PROXY_URL: "${EX_PROXY_URL:-}" ALLOW_POPUPS: "${ALLOW_POPUPS:-no}" ALLOW_ADULT: "${ALLOW_ADULT:-no}" ALLOW_CRYPTO: "${ALLOW_CRYPTO:-no}" HIDE_BROWSER: "${HIDE_BROWSER:-yes}" CACHE_LIMIT: "${CACHE_LIMIT:-0}" RESET_INTERVAL: "${RESET_INTERVAL:-2h}" NOTE: "${NOTE:-local}" SUPERVISOR_DELAY: "${SUPERVISOR_DELAY:-10}" tmpfs: - /tmp:size=512m,mode=1777 logging: driver: json-file options: max-size: "10m" max-file: "3" restart: unless-stopped