Files
codecraft/docker-compose.yml
T

53 lines
2.2 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
context: .
args:
# Shown in Settings and /api/health: GIT_COMMIT=$(git rev-parse --short HEAD) docker compose build
GIT_COMMIT: ${GIT_COMMIT:-}
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
# Separate area for the software factory (clones of the watched repositories).
- ${FACTORY_DIR:-./factory}:/factory
# Reach self-hosted models (Ollama, vLLM, ...) on the host.
extra_hosts:
- "host.docker.internal:host-gateway"
shm_size: "1gb" # Chromium (craft mode)
# Shell commands of non-admin users run in a bubblewrap sandbox. It needs
# user namespaces: a seccomp profile that adds exactly those syscalls to
# Docker's default, AppArmor relaxed for the namespace mounts, and an
# unmasked /proc so the sandbox can mount its own (hiding server processes).
# Remove these three lines and set [sandbox] mode = "off" if you are the
# only user.
security_opt:
- seccomp=./docker/seccomp-sandbox.json
- apparmor=unconfined
- systempaths=unconfined
volumes:
codecraft-data:
name: codecraft-data