# Single-service compose for OpenAlice self-hosting. # # First time: # docker compose up -d --build # docker exec -it openalice claude # OAuth — paste URL into a browser # docker exec -it openalice codex login # same for codex (if you use it) # # After that the volume holds your auth + workspaces + config across # restarts and image rebuilds. Tear-down + factory reset: # docker compose down -v # also nukes the volume # # Already have claude/codex auth on the host? Skip the docker exec step by # uncommenting the bind-mount lines below. services: openalice: build: . image: openalice:local container_name: openalice restart: unless-stopped ports: # Web UI. The MCP server (47332) is intentionally NOT exposed — it's # only consumed by the CLIs running inside this container. - "47331:47331" volumes: - openalice-data:/data # Optional: reuse host auth instead of authenticating inside the # container. Bind-mount your local credentials read-only. # - ${HOME}/.claude:/data/home/.claude:ro # - ${HOME}/.codex:/data/home/.codex:ro # Keep stdin/tty open so `docker exec -it openalice claude` can run # the interactive OAuth flow. stdin_open: true tty: true volumes: openalice-data: