Rust backend (axum/tokio): agent loop with streaming, tools (fs, bash, web_fetch, todo, ask_user, subagents, skills, craft snapshots/compare), permissions with modes and rules, Anthropic + OpenAI-compatible providers, MCP client (stdio/HTTP, elicitation), SQLite sessions, usage statistics, compaction, commented TOML config editable via toml_edit. React PWA: chat with live streaming, permission/question cards, modes (build/plan/craft), settings for providers/models/prices/MCP/permissions, raw config editor, statistics dashboard, i18n (en/de). Docker setup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1008 B
YAML
28 lines
1008 B
YAML
# CodeCraft – copy .env.example to .env and adjust, then: docker compose up -d --build
|
||
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}"
|
||
ports:
|
||
- "${PORT:-8787}:8787"
|
||
environment:
|
||
CODECRAFT_TOKEN: ${CODECRAFT_TOKEN:?set CODECRAFT_TOKEN in .env}
|
||
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
|
||
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
|
||
OPENCODE_API_KEY: ${OPENCODE_API_KEY:-}
|
||
FAL_KEY: ${FAL_KEY:-}
|
||
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
|
||
volumes:
|
||
# Config (config.toml), SQLite database, agent home directory.
|
||
- ./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)
|