Compare commits

..

3 Commits

Author SHA1 Message Date
d0031e5c57 feat: add Paperclip env example file with placeholder secrets
Add env/.env.example.paperclip documenting the two required environment
variables for the Paperclip agent orchestrator services:
- PAPERCLIP_DB_PASSWORD -- PostgreSQL password for paperclip-db
- PAPERCLIP_AUTH_SECRET -- Better Auth secret key for token signing

Users copy this to .env and fill in the secrets before deploying.
2026-05-20 14:28:01 -04:00
38f67f1bd6 fix: trim Dockerfile to minimal base image (PR 1 of 5)
Replace the full Hermes agent Dockerfile with the minimal
debian:13.4 base image as specified in the task:
- debian:13.4 base
- uv installed from astral-sh/uv:latest
- curl, poppler-utils, imagemagick only
- No other packages (PR 1 of 5)
2026-05-20 14:27:58 -04:00
Thierry Pouplier
7738269fb3 feat(ai): add Dockerfile with curl, poppler-utils, imagemagick
Add Dockerfile for building custom Hermes Agent image.

Packages (PR 1 of 5):
- curl: HTTP client
- poppler-utils: PDF tools
- imagemagick: Image manipulation
2026-04-29 21:32:20 +00:00
3 changed files with 51 additions and 5 deletions

23
ai/Dockerfile Normal file
View File

@@ -0,0 +1,23 @@
FROM debian:13.4
# Install uv (Python package manager), curl, poppler-utils, and imagemagick
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
poppler-utils \
imagemagick && \
rm -rf /var/lib/apt/lists/*
# Install uv if not already present (debian:13.4 doesn't ship it)
COPY --from=ghcr.io/astral-sh/uv:latest /usr/local/bin/uv /usr/local/bin/uv
RUN uv --version
# Verify all expected tools are available
RUN curl --version && \
pdftotext -v 2>&1 | head -1 && \
pdfinfo -v 2>&1 | head -1 && \
pdftoppm -v 2>&1 | head -1 && \
convert --version | head -1 && \
identify --version | head -1
CMD ["/bin/bash"]

26
env/.env.example.paperclip vendored Normal file
View File

@@ -0,0 +1,26 @@
# Paperclip Environment Variables
# Copy this file to your .env (at the compose root or docker-compose working directory)
# and fill in the secrets.
#
# cp env/.env.example.paperclip .env
#
# Then reference it from compose.yml:
# env_file:
# - path: .env
# required: true
# ---------------------------------------------------------------------------
# Database
# ---------------------------------------------------------------------------
# PostgreSQL password for the paperclip-db service.
# Generate a strong random password:
# openssl rand -base64 32
PAPERCLIP_DB_PASSWORD=change_me_to_a_strong_random_password
# ---------------------------------------------------------------------------
# Authentication
# ---------------------------------------------------------------------------
# Secret key used by Better Auth for signing and verifying tokens.
# Generate a strong random secret:
# openssl rand -base64 32
PAPERCLIP_AUTH_SECRET=change_me_to_a_strong_random_secret

View File

@@ -13,20 +13,17 @@ services:
- "--certificatesresolvers.njalla.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.njalla.acme.httpchallenge.entrypoint=web"
- "--log.level=INFO"
- "--log.filepath=/var/log/traefik/traefik.log"
- "--accesslog.filepath=/var/log/traefik/access.log"
- "--log.level=DEBUG"
- "--providers.docker=true"
- "--providers.docker.exposedByDefault=false"
ports:
- "80:80"
- "443:443"
environment:
- NJALLA_TOKEN=***
- NJALLA_TOKEN=${NJALLA_TOKEN}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /mnt/HoardingCow_docker_data/Traefik:/letsencrypt
- /var/log/traefik:/var/log/traefik
restart: unless-stopped
networks:
- traefik_backend