mirror of
https://github.com/paperclipai/paperclip
synced 2026-05-13 02:16:38 +02:00
- Add wget, ripgrep, python3, and GitHub CLI (gh) to base image - Add OPENCODE_ALLOW_ALL_MODELS=true to production ENV - Move compose files, onboard-smoke Dockerfile to docker/ - Move entrypoint script to scripts/docker-entrypoint.sh - Add Podman Quadlet unit files (pod, app, db containers) - Add docker/README.md with build, compose, and quadlet docs - Add scripts/docker-build-test.sh for local build validation - Update all doc references for new file locations - Keep main Dockerfile at project root (no .dockerignore changes needed) Co-Authored-By: Paperclip <noreply@paperclip.ing>
72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
---
|
|
title: Docker
|
|
summary: Docker Compose quickstart
|
|
---
|
|
|
|
Run Paperclip in Docker without installing Node or pnpm locally.
|
|
|
|
## Compose Quickstart (Recommended)
|
|
|
|
```sh
|
|
docker compose -f docker/docker-compose.quickstart.yml up --build
|
|
```
|
|
|
|
Open [http://localhost:3100](http://localhost:3100).
|
|
|
|
Defaults:
|
|
|
|
- Host port: `3100`
|
|
- Data directory: `./data/docker-paperclip`
|
|
|
|
Override with environment variables:
|
|
|
|
```sh
|
|
PAPERCLIP_PORT=3200 PAPERCLIP_DATA_DIR=../data/pc \
|
|
docker compose -f docker/docker-compose.quickstart.yml up --build
|
|
```
|
|
|
|
**Note:** `PAPERCLIP_DATA_DIR` is resolved relative to the compose file (`docker/`), so `../data/pc` maps to `data/pc` in the project root.
|
|
|
|
## Manual Docker Build
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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.
|