Release 0.1.0: MIT license, changelog, multi-arch Docker image without CLI builds

- LICENSE (MIT), CHANGELOG for 0.1.0, README overhaul
- docker-compose.release.yml pulling the registry image
- Dockerfile cross-compiles the server with cargo-zigbuild for amd64 and arm64;
  the terminal client is no longer built into the image
- Server, install script and settings point to a source install of the
  terminal client when no prebuilt binaries are available (/info: cli_builds)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-09 07:50:57 +01:00
1 parent d14c609576
commit ed9942829a
15 files changed
+384 -109

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
# CodeCraft from the published image (amd64 and arm64) – no build needed.
#
# curl -fsSLO https://git.familie-zink.org/zink/codecraft/raw/branch/main/docker-compose.release.yml
# curl -fsSLO https://git.familie-zink.org/zink/codecraft/raw/branch/main/docker/seccomp-sandbox.json --create-dirs --output-dir docker
# curl -fsSL https://git.familie-zink.org/zink/codecraft/raw/branch/main/.env.example -o .env # then edit .env
# docker compose -f docker-compose.release.yml up -d
# docker compose -f docker-compose.release.yml logs codecraft # one-time setup code for the first admin
#
# Update: docker compose -f docker-compose.release.yml pull && docker compose -f docker-compose.release.yml up -d
#
# 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/backups daily backups
# /data/home home directory of the agent (git config, caches, ...)
services:
codecraft:
# Pin a version (e.g. :0.1.0) or follow :latest.
image: git.familie-zink.org/zink/codecraft:${CODECRAFT_VERSION:-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, browser tool)
# 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