version: '3.8'
services:
tarzi-mcp-server:
build: .
ports:
- "8000:8000"
environment:
- PYTHONUNBUFFERED=1
- DISPLAY=:99
- MOZ_HEADLESS=1
- FIREFOX_BINARY_PATH=/usr/bin/firefox-esr
- GECKODRIVER_PATH=/usr/local/bin/geckodriver
- TARZI_FETCHER_TIMEOUT=30
- TARZI_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
- TARZI_WEB_DRIVER=geckodriver
- TARZI_TIMEOUT=30
volumes:
- ./logs:/app/logs
- browser-data:/app/browser-data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
shm_size: 2gb
tarzi-mcp-browser-test:
build: .
environment:
- PYTHONUNBUFFERED=1
- DISPLAY=:99
- MOZ_HEADLESS=1
- FIREFOX_BINARY_PATH=/usr/bin/firefox-esr
- GECKODRIVER_PATH=/usr/local/bin/geckodriver
volumes:
- browser-data:/app/browser-data
command: ["python", "-m", "tarzi_mcp_server.browser_config"]
profiles:
- "test"
shm_size: 1gb
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- tarzi-mcp-server
restart: unless-stopped
profiles:
- "proxy"
vnc-server:
image: theasp/novnc:latest
ports:
- "8080:8080"
environment:
- DISPLAY_WIDTH=1920
- DISPLAY_HEIGHT=1080
- RUN_XTERM=no
volumes:
- browser-data:/app/browser-data
profiles:
- "debug"
volumes:
browser-data:
driver: local