Skip to main content
Run Paperclip in Docker without installing Node or pnpm locally.
docker compose -f docker-compose.quickstart.yml up --build
Open http://localhost:3100. Defaults:
  • Host port: 3100
  • Data directory: ./data/docker-paperclip
Override with environment variables:
PAPERCLIP_PORT=3200 PAPERCLIP_DATA_DIR=./data/pc \
  docker compose -f docker-compose.quickstart.yml up --build

Manual Docker Build

docker build -t paperclip-local .
docker run --name paperclip \
  -p 3100:3100 \
  -e HOST=0.0.0.0 \
  -e PAPERCLIP_HOME=/paperclip \
  -v "$(pwd)/data/docker-paperclip:/paperclip" \
  paperclip-local

Data Persistence

All data is persisted under the bind mount (./data/docker-paperclip):
  • Embedded PostgreSQL data
  • Uploaded assets
  • Local secrets key
  • Agent workspace data

Claude and Codex Adapters in Docker

The Docker image pre-installs:
  • claude (Anthropic Claude Code CLI)
  • codex (OpenAI Codex CLI)
Pass API keys to enable local adapter runs inside the container:
docker run --name paperclip \
  -p 3100:3100 \
  -e HOST=0.0.0.0 \
  -e PAPERCLIP_HOME=/paperclip \
  -e OPENAI_API_KEY=sk-... \
  -e ANTHROPIC_API_KEY=sk-... \
  -v "$(pwd)/data/docker-paperclip:/paperclip" \
  paperclip-local
Without API keys, the app runs normally — adapter environment checks will surface missing prerequisites.