Fixes Hermes CLI not found in PATH by installing hermes-agent inside paperclip_app container. Symlinks hermes executable to PATH, mounts persistent volumes for venv and hermes-data, configures shared API keys, and integrates setup script into deployment.
53 lines
2.3 KiB
YAML
53 lines
2.3 KiB
YAML
services:
|
|
paperclip-postgres:
|
|
image: postgres:17-alpine
|
|
container_name: paperclip-postgres
|
|
environment:
|
|
POSTGRES_USER: paperclip
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: paperclip
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U paperclip -d paperclip"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 30
|
|
volumes:
|
|
- /opt/PaperClip-Data/paperclip-db:/var/lib/postgresql/data
|
|
networks:
|
|
- paperclip-net
|
|
restart: unless-stopped
|
|
|
|
paperclip:
|
|
image: ghcr.io/paperclipai/paperclip:latest
|
|
container_name: paperclip_app
|
|
pids_limit: 2048
|
|
env_file:
|
|
- ../shared.env # Geteilte API Keys (OpenRouter, Mistral, etc.)
|
|
- .env # Service-spezifisch (DB-Passwort, Auth-Secret, OPENAI_* Overrides)
|
|
environment:
|
|
DATABASE_URL: postgres://paperclip:${POSTGRES_PASSWORD}@paperclip-postgres:5432/paperclip
|
|
PORT: "3100"
|
|
HOST: "0.0.0.0"
|
|
SERVE_UI: "true"
|
|
PAPERCLIP_HOME: "/paperclip"
|
|
PAPERCLIP_DEPLOYMENT_MODE: "authenticated"
|
|
PAPERCLIP_DEPLOYMENT_EXPOSURE: "public"
|
|
PAPERCLIP_AUTH_BASE_URL_MODE: "explicit"
|
|
PAPERCLIP_PUBLIC_URL: "https://paperclip.orfel.de"
|
|
HERMES_GATEWAY_ALLOW_INSECURE_HTTP: "1"
|
|
PAPERCLIP_OPENCODE_PROVIDERS: '{"openrouter":{"npm":"@ai-sdk/openai-compatible","options":{"baseURL":"https://openrouter.ai/api/v1","apiKey":"{env:OPENROUTER_API_KEY}"},"models":{"anthropic/claude-sonnet-4-5":{},"anthropic/claude-3.5-sonnet":{},"google/gemini-2.5-pro":{},"deepseek/deepseek-r1":{},"openai/gpt-4o":{}}},"mistral":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:MISTRAL_API_KEY}"},"models":{"mistral/mistral-large":{}}},"minimax":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:MINIMAX_API_KEY}"},"models":{"minimax/abab6.5s":{}}},"poe":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:POE_API_KEY}"},"models":{"poe/claude-3-opus":{}}}}'
|
|
volumes:
|
|
- /opt/PaperClip-Data/paperclip:/paperclip
|
|
- /opt/PaperClip-Data/paperclip-hermes-venv:/opt/hermes-venv
|
|
- /opt/PaperClip-Data/paperclip-hermes-data:/home/node/.hermes
|
|
depends_on:
|
|
paperclip-postgres:
|
|
condition: service_healthy
|
|
networks:
|
|
- paperclip-net
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
paperclip-net:
|
|
external: true
|