From 98cae1e08f66fdc92de56e4c2a59b8313bb99181 Mon Sep 17 00:00:00 2001 From: jeremy Date: Thu, 28 May 2026 10:54:53 -0500 Subject: [PATCH] feat: linkedstorm docker-compose and Traefik route Add compose/hf-pdocker-01/linkedstorm/ with 3-container compose (pipeline :8300, api :8310, cron) and stacks/traefik/dynamic/linkedstorm.yml routing linkedstorm.hobbs.farm -> :8310. Co-Authored-By: Claude Sonnet 4.6 --- .../hf-pdocker-01/linkedstorm/.env.example | 6 ++ .../linkedstorm/docker-compose.yml | 70 +++++++++++++++++++ stacks/traefik/dynamic/linkedstorm.yml | 15 ++++ 3 files changed, 91 insertions(+) create mode 100644 compose/hf-pdocker-01/linkedstorm/.env.example create mode 100644 compose/hf-pdocker-01/linkedstorm/docker-compose.yml create mode 100644 stacks/traefik/dynamic/linkedstorm.yml diff --git a/compose/hf-pdocker-01/linkedstorm/.env.example b/compose/hf-pdocker-01/linkedstorm/.env.example new file mode 100644 index 0000000..e8ceefa --- /dev/null +++ b/compose/hf-pdocker-01/linkedstorm/.env.example @@ -0,0 +1,6 @@ +SPEACHES_URL=http://192.168.86.150:8000 +OLLAMA_URL=http://192.168.86.150:11434 +OLLAMA_MODEL=qwen2.5:14b +LIVEKIT_API_KEY=your-livekit-api-key +LIVEKIT_API_SECRET=your-livekit-api-secret +CLIP_RETENTION_DAYS=30 diff --git a/compose/hf-pdocker-01/linkedstorm/docker-compose.yml b/compose/hf-pdocker-01/linkedstorm/docker-compose.yml new file mode 100644 index 0000000..a8a962e --- /dev/null +++ b/compose/hf-pdocker-01/linkedstorm/docker-compose.yml @@ -0,0 +1,70 @@ +services: + linkedstorm-pipeline: + build: + context: /opt/linkedstorm + dockerfile: pipeline/Dockerfile + container_name: linkedstorm-pipeline + restart: unless-stopped + ports: + - "8300:8300" + volumes: + - /mnt/docker-data/configs/linkedstorm:/data + environment: + - DB_PATH=/data/linkedstorm.db + - CLIPS_DIR=/data/clips + - SPEACHES_URL=${SPEACHES_URL:-http://192.168.86.150:8000} + - OLLAMA_URL=${OLLAMA_URL:-http://192.168.86.150:11434} + - LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey} + - LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-devsecret} + networks: + - linkedstorm-net + labels: + - com.centurylinklabs.watchtower.enable=false + + linkedstorm-api: + build: + context: /opt/linkedstorm + dockerfile: api/Dockerfile + container_name: linkedstorm-api + restart: unless-stopped + ports: + - "8310:8310" + volumes: + - /mnt/docker-data/configs/linkedstorm:/data + environment: + - DB_PATH=/data/linkedstorm.db + - CLIPS_DIR=/data/clips + - PIPELINE_INTERNAL_URL=http://linkedstorm-pipeline:8300 + - OLLAMA_URL=${OLLAMA_URL:-http://192.168.86.150:11434} + - OLLAMA_MODEL=${OLLAMA_MODEL:-qwen2.5:14b} + - LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey} + - LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-devsecret} + networks: + - linkedstorm-net + depends_on: + - linkedstorm-pipeline + labels: + - com.centurylinklabs.watchtower.enable=false + + linkedstorm-cron: + build: + context: /opt/linkedstorm + dockerfile: cron/Dockerfile + container_name: linkedstorm-cron + restart: unless-stopped + volumes: + - /mnt/docker-data/configs/linkedstorm:/data + environment: + - DB_PATH=/data/linkedstorm.db + - CLIPS_DIR=/data/clips + - OLLAMA_URL=${OLLAMA_URL:-http://192.168.86.150:11434} + - OLLAMA_MODEL=${OLLAMA_MODEL:-qwen2.5:14b} + - CLIP_RETENTION_DAYS=${CLIP_RETENTION_DAYS:-30} + networks: + - linkedstorm-net + labels: + - com.centurylinklabs.watchtower.enable=false + +networks: + linkedstorm-net: + driver: bridge diff --git a/stacks/traefik/dynamic/linkedstorm.yml b/stacks/traefik/dynamic/linkedstorm.yml new file mode 100644 index 0000000..c01602e --- /dev/null +++ b/stacks/traefik/dynamic/linkedstorm.yml @@ -0,0 +1,15 @@ +http: + routers: + linkedstorm: + rule: "Host(`linkedstorm.hobbs.farm`)" + entryPoints: + - websecure + service: linkedstorm + tls: + certResolver: letsencrypt + + services: + linkedstorm: + loadBalancer: + servers: + - url: "http://192.168.86.192:8310"