Files
unraid-docker-manager/.claude/instructions.md
T
Lucas Berger fae429a05e feat(10.1-05): deploy sub-workflows to n8n with real IDs
- Replaced TODO placeholders with actual n8n workflow IDs:
  - Batch UI: ZJhnGzJT26UUmW45
  - Container Status: lqpg2CqesnKE2RJQ
  - Confirmation Dialogs: fZ1hu8eiovkCk08G
- Updated instructions.md with new workflow IDs and renamed files
- All workflows deployed and activated in n8n

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 21:39:37 -05:00

1.9 KiB

Project Instructions — Unraid Docker Manager

n8n API Integration

This project can deploy workflows directly to n8n via API.

Credentials: .env.n8n-api in project root (gitignored)

N8N_HOST=https://your-n8n-instance.com
N8N_API_KEY=your-api-key

Workflow IDs:

Workflow ID File
Docker Manager Bot (main) HmiXBlJefBRPMS0m4iNYc n8n-workflow.json
Container Update 7AvTzLtKXM2hZTio92_mC n8n-update.json
Container Actions fYSZS5PkH0VSEaT5 n8n-actions.json
Container Logs oE7aO2GhbksXDEIw n8n-logs.json
Batch UI ZJhnGzJT26UUmW45 n8n-batch-ui.json
Container Status lqpg2CqesnKE2RJQ n8n-status.json
Confirmation Dialogs fZ1hu8eiovkCk08G n8n-confirmation.json

Push workflow to n8n:

# Load credentials
source .env.n8n-api

# Extract allowed fields and push (n8n API rejects extra fields)
jq '{name, nodes, connections, settings}' n8n-workflow.json > /tmp/update.json
curl -X PUT "$N8N_HOST/api/v1/workflows/<ID>" \
  -H "X-N8N-API-KEY: $N8N_API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/update.json

List workflows:

source .env.n8n-api
curl -s "$N8N_HOST/api/v1/workflows" -H "X-N8N-API-KEY: $N8N_API_KEY" | jq '.data[] | {id, name}'

Technical Patterns

n8n data chain pattern:

  • Use $('NodeName').item.json to reference data across async nodes
  • Don't rely on $json after Telegram/HTTP nodes (response overwrites data)

n8n workflow JSON for API:

  • API PUT rejects extra fields like active, triggerCount, tags, pinData, staticData
  • Filter to only: name, nodes, connections, settings

Container ID resolution:

  • Keyboard callbacks only pass container names (64-byte limit)
  • Sub-workflows resolve name → ID via Docker API when containerId is empty

GSD Workflow

Using /gsd:* commands for structured development. See .planning/ for roadmap and state.