daemon/docker-compose.ymlDocker Setup
The daemon ships with a Dockerfile and docker-compose.yml for containerized deployment. Drop in a PRD, and the daemon builds it automatically inside the container.
Quick Start (3 Commands)
cd daemon
cp .env.example .env # fill in ANTHROPIC_API_KEY
docker compose up -ddocker-compose.yml Reference
The compose file defines two services:
- daemon — the main Great Minds daemon (always runs)
- shipyard-daemon — optional Shipyard AI daemon (runs with
--profile shipyard)
services:
daemon:
build:
context: .
args:
REPO_URL: ${REPO_URL:-https://github.com/sethshoultes/great-minds.git}
container_name: great-minds-daemon
restart: unless-stopped
env_file: .env
volumes:
- ./prds:/home/agent/great-minds/prds
- ./deliverables:/home/agent/great-minds/deliverables
- ./rounds:/home/agent/great-minds/rounds
- ./dreams:/home/agent/great-minds/dreams
- ./memory-store/memory.db:/home/agent/great-minds/memory-store/memory.db
- ${CLAUDE_CONFIG_DIR:-~/.claude}:/home/agent/.claude:ro
- ${GIT_CONFIG:-~/.gitconfig}:/home/agent/.gitconfig:roEnvironment Variables (.env)
Create a .env file in the daemon directory with at minimum:
ANTHROPIC_API_KEY=sk-ant-your-key-here
# Optional overrides
REPO_URL=https://github.com/sethshoultes/great-minds.git
CLAUDE_CONFIG_DIR=~/.claude
GIT_CONFIG=~/.gitconfigVolume Mounts
| Host Path | Container Path | Purpose |
|---|---|---|
./prds/ | /home/agent/great-minds/prds | Drop a .md file here to trigger a build |
./deliverables/ | /home/agent/great-minds/deliverables | Built products appear here |
./rounds/ | /home/agent/great-minds/rounds | Debate transcripts, QA reports, board reviews |
./dreams/ | /home/agent/great-minds/dreams | featureDream output |
./memory-store/memory.db | /home/agent/great-minds/memory-store/memory.db | Persistent memory database |
~/.claude | /home/agent/.claude | Claude auth credentials (read-only) |
~/.gitconfig | /home/agent/.gitconfig | Git identity for commits (read-only) |
Dockerfile Details
The Dockerfile:
- Starts from
node:22-slim - Installs git, curl, and the Claude Code CLI globally
- Creates an
agentuser (Claude refuses--dangerously-skip-permissionsas root) - Clones the repo and installs daemon + memory-store dependencies
- Runs
npx tsx src/daemon.tsas the entrypoint
Viewing Logs
# Follow daemon logs in real-time
docker compose logs -f daemon
# Last 100 lines
docker compose logs --tail 100 daemon
# Check health status
docker inspect great-minds-daemon | jq '.[0].State.Health'Stopping and Restarting
# Stop the daemon gracefully
docker compose down
# Restart after config changes
docker compose up -d --build
# Run Shipyard AI daemon alongside
docker compose --profile shipyard up -dBuilding a Custom Image
To use a forked repo or custom branch:
docker compose build --build-arg REPO_URL=https://github.com/you/your-fork.git
docker compose up -d