From b6b151a5000c25de3427362b84f717f65819db38 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 29 Jun 2026 18:07:33 -0400 Subject: [PATCH 1/2] docs(agent): docker-compose for the GPU agent compose file (pull the published image, GPU reservation, model-cache volume, .env for the token) so the agent runs with `docker compose up -d` instead of a long docker run. A copy + .env template also placed in ~/Documents/fc-gpu-agent. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa --- agent/docker-compose.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 agent/docker-compose.yml diff --git a/agent/docker-compose.yml b/agent/docker-compose.yml new file mode 100644 index 0000000..9b1adb1 --- /dev/null +++ b/agent/docker-compose.yml @@ -0,0 +1,40 @@ +# FabledCurator GPU agent — desktop run via docker compose. +# +# Usage: +# 1. Generate a token: FC → Settings → Tagging → GPU agent → Generate token. +# 2. Create a .env next to this file: +# FC_URL=http://curator.traefik.internal +# FC_TOKEN= +# # optional: CCIP_MODEL=ccip-caformer_b36-24 (the F1-0.94 variant) +# 3. docker compose up -d (pulls the published image) +# 4. Open http://localhost:8770 → Start. Pause/Stop hands the GPU back. +# docker compose down to stop the container entirely. +# +# Needs the NVIDIA Container Toolkit installed on the host for --gpus. + +services: + fc-gpu-agent: + image: git.fabledsword.com/bvandeusen/fabledcurator-agent:latest + pull_policy: always + ports: + - "8770:8770" + environment: + FC_URL: ${FC_URL:-http://curator.traefik.internal} + FC_TOKEN: ${FC_TOKEN:?set FC_TOKEN in .env (FC → GPU agent → Generate token)} + CCIP_MODEL: ${CCIP_MODEL:-} + DETECTOR_LEVEL: ${DETECTOR_LEVEL:-m} + BATCH_SIZE: ${BATCH_SIZE:-4} + volumes: + # Persist the downloaded ONNX models so restarts are fast. + - fc-agent-models:/models + restart: unless-stopped + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: all + capabilities: [gpu] + +volumes: + fc-agent-models: -- 2.52.0 From 7b10f4caabaadab71b96019392938636518fae7c Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 29 Jun 2026 18:47:59 -0400 Subject: [PATCH 2/2] fix(agent): cuDNN base image so onnxruntime-gpu loads (#114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit onnxruntime-gpu needs cuDNN 9; the plain cuda:12.4.1-runtime image lacks it (libcudnn.so.9 missing → CUDAExecutionProvider falls back to CPU). Switch to the -cudnn-runtime variant which bundles cuDNN 9. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa --- agent/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index 2e3ca9f..f0a1e24 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -1,6 +1,8 @@ # FabledCurator GPU agent — runs on the desktop with the GPU. -# CUDA runtime so onnxruntime-gpu can use the card; ffmpeg for video frames. -FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04 +# CUDA + cuDNN runtime so onnxruntime-gpu can use the card (it needs cuDNN 9 — +# the plain -runtime image lacks it: "libcudnn.so.9: cannot open shared object +# file"); ffmpeg for video frames. +FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 RUN apt-get update \ -- 2.52.0