Files
ginnoirandClaude Opus 4.8 d199b10ba4 feat(camofox): stack files (PARKED — not deployed, upstream browser bug)
Image camofox-browser:135.0.1-x86_64 builds + serves, but camoufox fails to
launch: "cannot open display: [object Promise]" (upstream un-awaited Promise in
the virtual_display path). HTTP /health ok, browserRunning:false. NOT deployed:
no Caddy route, no Portainer registration, no Hermes wiring. Resume once the
upstream display bug is fixed (re-add Caddy block + register stack).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:00:43 -05:00

42 lines
1.6 KiB
YAML

# camofox stack — self-hosted stealth headless browser (Camoufox/Firefox) REST API for the
# Hermes agent. Chosen over the native Playwright/Browserbase plugins for self-hosted,
# no-cloud-key, anti-detection browsing on valhalla.
#
# No published image: built on-host as camofox-browser:135.0.1-x86_64 via `make build` in the
# upstream clone (/storage1/hermes/workspace/clones/camofox-browser). pull_policy: never so
# Portainer's git redeploy uses the local image instead of trying to pull a non-existent
# registry tag. To make it survive a host rebuild, push to registry.ginnoir.com later (famapp
# pattern) and swap the image ref.
#
# Internal-only: published on the edge host-IP (172.20.0.1:9377) so host-side Hermes can reach
# it directly, and joined to `edge` so Caddy reaches it by container name. Bearer-auth enforced
# by camofox itself (CAMOFOX_ACCESS_KEY). Image pinned out of Watchtower.
services:
camofox:
image: camofox-browser:135.0.1-x86_64
pull_policy: never
container_name: camofox
restart: unless-stopped
labels:
- "com.centurylabs.watchtower.enable=false"
env_file:
- stack.env
networks: [edge]
# Firefox-based browsers can crash with the default 64MB /dev/shm.
shm_size: "1gb"
volumes:
- /config/camofox/cookies:/data/cookies
- /config/camofox/profiles:/data/profiles
ports:
- "172.20.0.1:9377:9377"
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:9377/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
networks:
edge:
external: true