- Sandbox (bubblewrap) for non-admin shell/git, MCP per-user rights, hard budgets and quotas, login rate limiting, audit log and backups - Ghidra headless decompilation (ARM64 natives built from source), binary_info tool, clean room / deep workflow per session - Recreate skill and commands for analysing and re-building old software - File checkpoints with rewind/restore, background shells (bash_output, kill_shell) - web_search tool (DuckDuckGo, SearXNG, Brave, Tavily) - In-app dialogs and toasts instead of browser dialogs - 15 base themes (trilium-themes palettes plus Nord, VS Code, GitHub, Catppuccin, One, Dracula, Rose Pine, Everforest, Kanagawa) with light/dark/auto switcher and license notes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47 lines
1.9 KiB
YAML
47 lines
1.9 KiB
YAML
# 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)
|
||
# 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
|