# CodeCraft – copy .env.example to .env and adjust, then: docker compose up -d --build # # Persistent state lives in the named volume "codecraft-data" (mounted at /data): # /data/config.toml configuration (also editable in the web UI) # /data/codecraft.db sessions, messages, statistics # /data/home home directory of the agent (git config, caches, ...) # Rebuilding or recreating the container keeps all of it. services: codecraft: build: . image: codecraft:latest container_name: codecraft restart: unless-stopped # Same UID/GID as the owner of your project files. user: "${UID:-1000}:${GID:-1000}" # Bound to localhost by default: expose it through a TLS reverse proxy. # Set BIND_ADDR=0.0.0.0 to publish it on all interfaces. ports: - "${BIND_ADDR:-127.0.0.1}:${PORT:-8787}:8787" # All variables from .env are available to the config as ${NAME} # (provider keys, MCP tokens, OIDC secret, initial admin). env_file: - path: .env required: false volumes: - codecraft-data:/data # The projects the agents may work on. - ${WORKSPACE:-./workspace}:/workspace # Reach self-hosted models (Ollama, vLLM, ...) on the host. extra_hosts: - "host.docker.internal:host-gateway" shm_size: "1gb" # Chromium (craft mode) volumes: codecraft-data: name: codecraft-data