- hermes: pin nousresearch/hermes-agent:v2026.8.18 (was :latest, a
rolling dev build that Watchtower never re-pulled -> 7 weeks stale).
- llamacpp: add compose for the llama.cpp inference backend serving
hermes on .150:8081 (q8_0 KV cache; 2.4x ollama on the same GGUF).
- ai-agents: add reconstructed, version-pinned Dockerfiles for margaret
and spirit (openclaw was built from @latest with no Dockerfile stored).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Under MAS, Synapse returns M_UNRECOGNIZED for the login endpoints, so the
mess-auth-compat router (priority 1000) sends /_matrix/client/*/login,
/logout and /refresh to MAS while everything else stays on Synapse.
Cloudflare A record for auth.hobbs.farm already existed (98.160.103.126,
DNS-only). Blackbox probes added for MAS internal health (:8021) and the
public discovery endpoint; all four matrix-related probes UP.
Snapshot of the node's traefik dynamic config committed for reference.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Config at /mnt/docker-data/configs/mas/config.yaml (node-only, holds signing keys).
Health on :8021 (distroless image - no container healthcheck possible).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
clip-service: container+volumes+compose removed, ~2GB RAM freed; frigate-notify
config never referenced it. Actual Budget: container+compose removed, data kept
at /mnt/docker-data/configs/actual-budget. Prometheus probes for both removed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The unanchored pattern also swallowed compose/hf-pdocker-01/friday-voice/.
Only the top-level nested repo should be ignored.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Post-Swarm: node-exporter must run standalone with pid:host, since Swarm mode
blocked it and cross-node /proc namespaces contaminated swap metrics. Marks the
stacks/ definition superseded.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
FRIDAY Voice (speaches GPU STT/TTS + hermes agent + push-to-talk console) on
.150 Docker Desktop, fronted by coach.hobbs.farm. Also captures the VoiceCoach
compose/agent trees and deploy notes it replaced, which had never been committed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Splits the single main.py into config/database/models/routes/vision/recognition/
ollama_client/cleanup modules, adds a web UI, and introduces clip-service for
CLIP (ViT-L-14) embeddings.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Routes claude-opus-4-8, gpt-5.5, qwen2.5:14b, llama3.1:8b through a
single OpenAI-compatible endpoint on :4000 (LAN-only, no auth).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Watchtower pulled a newer guacamole:latest image whose JDBC extension expected
tables not present in the existing DB (guacamole_user_attribute etc.). Fixed by
reinitializing the DB with the official 1.6.0 schema (001-create-schema.sql +
002-create-admin-user.sql) and pinning both guacamole and guacd to 1.6.0 with
com.centurylinklabs.watchtower.enable=false to prevent recurrence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a Flask backend service for cross-device state persistence, storing
JSON state on an NFS volume at /mnt/docker-data/configs/rongorongo/data.
Frontend Dockerfile/nginx.conf reorganised into frontend/ subdirectory;
frontend API calls now route to /api/* handled by the backend container
over a dedicated bridge network. Traefik basicAuth middleware added to
the public URL with the bcrypt hash deliberately kept out of git
(REPLACE_AT_DEPLOY placeholder in rongorongo.yml). Prometheus probe moved
from https-external to internal http://192.168.86.192:8181/health to
bypass the new auth wall.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Standalone Compose service running a locally-built nginx image that
serves a static Anthropic-API frontend. Traefik dynamic route added
for public HTTPS access. Blackbox probe added to prometheus.yml for
uptime monitoring. CLAUDE.md updated with service entry.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Node hf-pdocker-01 hardware fully repaired and rebuilt (2026-03-08). This
commit captures the completed Phase 2 migration where all failover services
are returned from hf-pdocker-02/bart back to hf-pdocker-01 as their permanent
home.
New compose stacks for hf-pdocker-01:
- adguard: AdGuard Home DNS/ad-blocking (:3000, :53)
- traefik: Reverse proxy with TLS (:80/:443/:8090), .env.example included
- monitoring: Grafana, Prometheus, Alertmanager, InfluxDB, Blackbox, matrix-receiver
- smarthome: Home Assistant (:8123), ESPHome (:6052), Mosquitto (:1883/:8883)
- matrix: Synapse homeserver (:8008) + synapse-db + well-known (:8010)
- guacamole: Guacamole (:8199) + guacd + guacamole-db (local MySQL)
- farm-manager: Farm Manager API (:8888)
Updated compose stacks for hf-pdocker-01:
- frigate-notify: MQTT/Matrix hosts reverted from bart (.167) to hf-pdocker-01 (.192)
Documentation:
- docs/plans/2026-03-08-hf-pdocker-01-phase2-migration.md (new)
- CLAUDE.md: Full service distribution update — failover labels removed,
hf-pdocker-02/bart cleaned up to reflect only permanent services,
NetClaw/Aaron added to hf-pdocker-02, DNSStubListener fix noted
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HA and ESPHome now running on hf-pdocker-01 via smarthome compose stack
- Updated core.config_entries: MQTT broker, go2rtc, Frigate URLs all point to 192.168.86.192
- Removed stale .ha_run.lock before startup
- Stopped and removed HA + ESPHome containers from bart
- All smarthome services (mosquitto, homeassistant, esphome) now consolidated on hf-pdocker-01
Switch from build: to pre-built image (frigate-notify:latest, built from
jeremy/frigate-notify Gitea repo). Added volume mount for SQLite DB on NAS,
CLIP/Ollama env vars for GPU machine, and corrected MQTT/Matrix hosts to
bart (192.168.86.167) since those services are on failover.
Deployed 2026-03-08, health check passing.