Files
n8n-flows/IDEAS.md
T

4.3 KiB

n8n Flow Ideas

Backlog of automation ideas to build. Implement via n8n UI at https://n8n.nuclide.systems or API.

🔴 High priority

Homelab Health Check (hourly)

Status: Prototype as bash/systemd on nuc. Migrate to n8n. What: Every hour — check critical containers (Pocket-ID, LiteLLM, Grafana, Homarr, Nextcloud, HA), disk usage, key HTTP endpoints. Auto-restart stopped containers. Send Gotify alert for crash loops, disk >90%, VM down. Nodes: Cron → SSH (per host, check docker ps) → IF (status != running) → Execute Command (docker start) → Gotify HTTP. Gotify token: Az9NpC-m1jjf571 (homelab-health app), URL: http://192.168.1.40:10003

Backrest backup result notification

Status: Not built. What: After each Backrest snapshot (Pocket-ID, media, services plans), notify Gotify with summary: plan name, files added, size, duration, next run. On failure, priority 10 alert. How: Backrest has webhooks (post-backup hook) → n8n webhook → Gotify. Nodes: Webhook → Parse Backrest payload → Gotify.

Nextcloud/Paperless → Docling → embeddings pipeline

Status: Docling MCP deployed; pipeline not built. What: Watch Nextcloud for new documents → send to Docling for OCR/extraction → chunk + embed → store in Chroma → index in LobeChat knowledge base. Nodes: Cron (poll Nextcloud activity) or Nextcloud webhook → HTTP (Docling API) → HTTP (Chroma upsert) → optional Gotify confirmation.

🟠 Medium priority

HA entity alert → Gotify bridge

Status: Gotify notify platform configured in HA but no automation rules written. What: HA automations for: EV charger state changes, door open >10 min, CO₂ > 1200 ppm, low battery (<20%) on sensors. Send formatted Gotify push via n8n or directly. Nodes: HA webhook automation → n8n webhook → format message → Gotify.

Gitea repo activity digest (daily)

Status: Not built. What: Every morning at 08:00, pull yesterday's commits across all homelab repos, format into a digest, send to Gotify (priority 3 — FYI). Nodes: Cron → HTTP (Gitea API /repos/fkrebs/*/commits?since=yesterday) → Code (aggregate) → Gotify.

Immich face/album auto-tagging

Status: Not built. What: On new Immich upload, run face recognition → auto-assign to album based on person. Optional: generate caption via LiteLLM vision model. Nodes: Cron (poll Immich /api/asset?isFavorite=false&order=asc) → HTTP (Immich album API) → optional LiteLLM caption.

WAL-G backup health monitor

Status: bash-level only; silent stall went undetected 13h. What: Every hour, query Garage S3 for latest WAL-G backup timestamps per DB (immich, lobe). If last backup > 26h, send Gotify alert priority 8. Nodes: Cron → Execute Command (mc ls on Garage) or HTTP (Garage S3 API) → IF (age > 26h) → Gotify.

Karakeep → memos enrichment (extend existing flow)

Status: Karakeep-to-memos flow exists; basic save only. What: Extend: after saving link to Memos, also: (1) fetch page via crawl4ai MCP for summary, (2) generate tags via LiteLLM, (3) update Memos entry with summary + tags. Nodes: Extend existing Karakeep-to-memos → HTTP (LiteLLM /v1/chat/completions) → HTTP (Memos PATCH).

🔵 Nice-to-have

Coder workspace lifecycle alerts

Status: Planned (see memory: coder-monitoring-gotify). What: When a Coder workspace starts/stops/fails build, send Gotify notification with workspace name, owner, duration. Nodes: Cron (poll Coder API /api/v2/workspaces) → compare state → Gotify on change.

n8n workflow backup reminder

Status: Covered by this repo's daily sync cron. What: If sync cron detects uncommitted changes, send Gotify reminder to review new/changed flows.

Paperless document classification

Status: Not built. What: On new Paperless document → send text to LiteLLM → suggest title, tags, correspondent, document_type → auto-update via Paperless API. Nodes: Paperless webhook or cron poll → HTTP (LiteLLM) → HTTP (Paperless PATCH /api/documents/{id}/).

Traccar GPS geofence → HA

Status: Not built. Traccar running on CT 104 :13005. What: When a tracked device enters/leaves home geofence → call HA webhook to trigger automations (e.g. arm/disarm alarm, preheat EV). Nodes: Traccar webhook → HTTP (HA webhook).