services: codexbar-api: image: jez500/codexbar-api:${TAG:-latest} pull_policy: always env_file: .env ports: - "3033:3000" volumes: - codexbar-cache:/home/node/.codexbar - ${HOME}/.claude:/home/node/.claude - ${HOME}/.codex:/home/node/.codex restart: unless-stopped healthcheck: test: ["CMD", "node", "-e", "fetch('http://localhost:3000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s retries: 3 webui: image: jez500/tokenburn-webui:${TAG:-latest} pull_policy: always environment: API_BASE_URL: http://codexbar-api:3000 API_TOKEN: ${API_TOKEN} ports: - "8080:3000" depends_on: codexbar-api: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "node", "-e", "fetch('http://localhost:3000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s retries: 3 volumes: codexbar-cache: