Files
codecraft/docker-compose.yml
T
Richard ZinkandClaude Opus 5.5 6dffcb501a Add terminal client, memory, model fallback, version and install improvements
- codecraft: full-screen terminal client (ratatui) – local tools and files,
  models via the CodeCraft server gateway or own providers (standalone with a
  guided setup), slash commands, @files, permission dialogs, resume, update
- Static Linux CLI builds (x86_64/aarch64, cargo-zigbuild) served by the
  server: /cli/install.sh and /cli/download/<target>
- Project memory (remember tool, .codecraft/memory.md) and personal memory
- Model fallback when a host is unreachable or a budget is used up
- Version/commit in UI and health, daily release check, "What's new" dialog
- PWA: install button, maskable icon, manifest id and screenshots
- Case-insensitive detection of connection errors for retries

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 00:13:06 +01:00

51 lines
2.0 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
# 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