Add the following environment variable to your system, for example within ~/.bashrc or ~/.zshrc:
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)Creates every file which gets mounted into the php container (shell rc/history, git, ssh and the coding agent auth/settings files) without overwriting existing ones. Adjust the seeded settings files afterwards to your liking, they stay on the host and get mounted.
./setup-mount-points.shThe following coding agents (harnesses) are preinstalled within the php container, their auth and settings files
get mounted from the host (see docker-compose.yml):
- Claude Code:
~/.claude.json,~/.claude/.credentials.json,~/.claude/settings.json - Codex:
~/.codex/auth.json,~/.codex/config.toml - Opencode:
~/.config/opencode/opencode.jsonc,~/.config/opencode/tui.json,~/.local/share/opencode/auth.json - PI incl. pi-llama:
~/.pi/agent/auth.json
PI can run against a local model via pi-llama, start a llama.cpp server on the host, for example:
llama-server \
-hf lmstudio-community/Qwen3.6-35B-A3B-GGUF:Q4_K_M \
-c 32768 \
-ngl 999 \
--flash-attn on \
--host 0.0.0.0 \
--port 9931docker compose up -d
docker compose exec php bash2026 Dominik Zogg