27 Commits
Author SHA1 Message Date
Jannik ee101b4a73 fix: Resolve spawn E2BIG by passing Hermes prompt via --query-file
Linux execve limits arguments to 128KB, causing Paperclip to fail with spawn E2BIG on large prompts. Adds runtime patch to write prompt to /tmp/hermes-prompt-*.txt and pass via Hermes native --query-file flag, while cleaning up file after execution and filtering oversized env vars.
2026-10-02 07:10:06 +02:00
Jannik f4d8b10dfb fix: Pin anthropic package to 0.87.0 in hermes-venv
Fixes Invalid timeout argument httpx.Timeout vs httpx2 error by removing httpx2 and installing anthropic==0.87.0, which matches the official Hermes Agent SDK requirements.
2026-10-02 07:02:26 +02:00
Jannik a1eb9a8e67 fix: Define SERVICES_DIR in service.pre_start and default HERMES_API_KEY in compose 2026-10-02 06:41:57 +02:00
Jannik c70fd63092 feat: Configure MiniMax as default provider for Hermes and PaperClip
Sets Hermes default model provider to MiniMax (MiniMax-M3) using MINIMAX_API_KEY from shared.env. Updates PaperClip OpenCode providers with MiniMax baseURL and additional models (MiniMax-M3, MiniMax-Text-01).
2026-10-02 06:33:53 +02:00
Jannik 47bfdfbd49 fix: Install anthropic package in hermes-venv
PaperClip Hermes agent requires anthropic>=0.39.0 package to communicate with Anthropic models. Also copies all keys from shared.env into hermes .env.
2026-10-02 06:28:22 +02:00
Jannik ddf678fb9c feat: Add Hermes setup sub-script and in-container CLI installation
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.
2026-10-02 05:10:10 +02:00
Jannik 92c7442df7 Route Hermes Gateway through Caddy HTTPS on hermes.paperclip.orfel.de 2026-10-01 21:08:57 +02:00
Jannik 8e23b08ac4 Fix Hermes service.init: Erhöhe Timeout auf 90s, nutze curl und Bearer Token 2026-10-01 21:03:59 +02:00
Jannik 416533726e Fix Hermes Gateway: Enable HTTP for container network, bind 0.0.0.0 and run gateway 2026-10-01 20:41:05 +02:00
Jannik c0e66dd3f8 Konfiguration fuer Hermes Gateway, OpenCode und Gemini CLI eingerichtet 2026-10-01 20:15:11 +02:00
Jannik aabbf6c28a refactor: Move Paperclip-specific .env generation to service.pre_start script 2026-10-01 20:07:56 +02:00
Jannik 7c38da5efc Add Gemini API key to shared.env 2026-10-01 20:05:04 +02:00
Jannik 78d4a4894e feat: Generic service.init system + Hermes setup script
- NEW: services/hermes/service.init — wartet auf Hermes-API, konfiguriert
  Provider aus shared.env (OpenRouter bevorzugt), gibt Dashboard-URL aus
- NEW: services/paperclip/service.init — extrahiert PaperClip-Setup aus
  main() in eigenständiges Skript (Patch, Onboarding, Bootstrap-URL)
- NEW: run_service_inits() in deploy_script.sh — ruft automatisch alle
  service.init-Skripte nach dem Start auf
- CLEANUP: main() in deploy_script.sh ist jetzt schlank und generisch
2026-10-01 20:04:56 +02:00
Jannik 60d48a43b4 refactor: Single source of truth for API keys via services/shared.env
- NEW: services/shared.env.age — encrypted shared API keys (OpenRouter, Mistral, Minimax, Poe)
- REMOVE: services/hermes/.env.age — no service-specific secrets needed
- UPDATE: services/paperclip/.env.age — now only DB password + auth secret
- UPDATE: docker-compose.yml (paperclip + hermes) — use env_file for shared.env
- UPDATE: deploy_script.sh — decrypt shared.env.age first, read API keys from there
- UPDATE: .gitignore — add services/shared.env
- UPDATE: README.md — document shared.env pattern
2026-10-01 19:57:17 +02:00
Jannik 2df8b29470 fix: Change Hermes dashboard URL to hermes.paperclip.orfel.de 2026-10-01 19:51:31 +02:00
Jannik e079b43b14 feat: Add Hermes Agent service
- New service in services/hermes/ with docker-compose.yml
- Uses nousresearch/hermes-agent:latest on paperclip-net
- Hermes reachable internally at http://hermes:8642 (API) and :9119 (dashboard)
- Public dashboard at hermes.orfel.de via Caddy
- .env.age encrypted with age for OPENROUTER_API_KEY
- README updated with Hermes architecture and PaperClip integration guide
2026-10-01 19:50:55 +02:00
Jannik 4d64e09cd6 Auto-configure OpenAI API Key from OpenRouter/Mistral to bypass UI Onboarding screen 2026-10-01 18:45:32 +02:00
Jannik 6cfe3a375b Fix Paperclip startup crash: authenticated + public exposure requires auth.baseUrlMode=explicit 2026-10-01 18:15:29 +02:00
Jannik fcba2a3b3a Fix 502 Bad Gateway by ensuring HOST is 0.0.0.0 and auto-generating missing BETTER_AUTH_SECRET 2026-10-01 18:07:37 +02:00
Jannik 973727a56d Auto-initialize Paperclip config with onboard command before bootstrapping 2026-10-01 17:53:28 +02:00
Jannik 46c72994d8 Fix Paperclip exposure policy to public and map custom OpenCode providers 2026-10-01 17:41:21 +02:00
Jannik 7c2a5013b8 Revert "Update paperclip service to use Gitea registry image"
This reverts commit 9a7842cfcf.
2026-10-01 17:38:27 +02:00
Jannik 9a7842cfcf Update paperclip service to use Gitea registry image 2026-10-01 17:37:22 +02:00
Jannik 905f066ac7 Fix caddy reload by removing admin off 2026-10-01 17:30:24 +02:00
Jannik fc49ad230f Add paperclip service configuration (Docker Compose, Caddy, .env.age) and update deploy_script.sh 2026-10-01 17:22:55 +02:00
Jannik 6ff71851e3 Add deploy_script.sh and configure caddy volume 2026-10-01 17:18:09 +02:00
Jannik 8c8ee6b4be Clean initial state: removed all wrapper scripts and debug code. deploy_script.sh and the dev server are the only files that should drive the next deploy. 2026-10-01 17:11:10 +02:00