Files
Lucas Berger 75995b5cd6 docs(02): create Docker integration phase plans
Phase 02: Docker Integration
- 2 plan(s) in 2 wave(s)
- Plan 01: Infrastructure setup (Docker socket, curl, env vars)
- Plan 02: Container query workflow with fuzzy matching
- Sequential execution (02 depends on 01)
- Ready for execution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:25:34 -05:00

5.3 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous, user_setup, must_haves
phase plan type wave depends_on files_modified autonomous user_setup must_haves
02-docker-integration 01 execute 1
false
service why dashboard_config
unraid-docker n8n needs Docker socket access and curl for Docker API queries
task location
Mount Docker socket to n8n container Unraid Docker settings for n8n container -> Add path: /var/run/docker.sock
task location
Add NODES_EXCLUDE environment variable Unraid Docker settings for n8n container -> Add variable: NODES_EXCLUDE=
task location
Install curl in n8n container Unraid terminal: docker exec -u root n8n apk add curl
truths artifacts key_links
Docker socket is mounted in n8n container
Execute Command node is enabled in n8n
curl is available in n8n container
n8n can query Docker API and get container list
path provides
n8n container configuration Docker socket mount at /var/run/docker.sock
path provides
n8n environment NODES_EXCLUDE= env var enabling Execute Command
path provides
n8n container curl binary available
from to via pattern
n8n Execute Command node Docker socket curl --unix-socket curl.*unix-socket.*/var/run/docker.sock
Configure n8n container with Docker socket access and required tools for Docker API queries.

Purpose: Enable n8n to communicate with Docker Engine API to query container information. Output: n8n container configured and verified to query Docker containers.

<execution_context> @/home/luc/.claude/get-shit-done/workflows/execute-plan.md @/home/luc/.claude/get-shit-done/templates/summary.md </execution_context>

@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/02-docker-integration/02-RESEARCH.md Task 1: Configure n8n Container for Docker Access User must configure n8n container in Unraid with the following:
1. **Mount Docker socket:**
   - Unraid Docker UI -> n8n container -> Edit
   - Add path mapping: Container Path: `/var/run/docker.sock` -> Host Path: `/var/run/docker.sock`
   - Access Mode: Read/Write

2. **Enable Execute Command node:**
   - Add environment variable: `NODES_EXCLUDE=` (empty string)
   - This re-enables the Execute Command node which is disabled by default in n8n 2.0+

3. **Install curl in n8n container:**
   - After container restarts, run: `docker exec -u root n8n apk add curl`
   - This adds curl to the Alpine-based n8n image

4. **Restart n8n container** to apply changes
Confirm all three steps completed (socket mounted, env var set, curl installed) Task 2: Verify Docker API Access None (verification only) Create a simple verification to confirm Docker socket access works.
The user should run this command on the Unraid server:
```bash
docker exec n8n curl --unix-socket /var/run/docker.sock 'http://localhost/v1.53/containers/json?all=true'
```

If successful, this returns JSON array of containers.

Common issues:
- "Permission denied": Socket permissions issue - may need to run n8n as root or adjust socket permissions
- "curl: not found": curl not installed - run `docker exec -u root n8n apk add curl`
- Empty response `[]`: Docker has no containers (unlikely on Unraid)

Document the verification command for user to run.
User runs: `docker exec n8n curl --unix-socket /var/run/docker.sock 'http://localhost/v1.53/containers/json?all=true'` Expected: JSON array containing container objects with Id, Names, State, Status fields Docker API returns container list via curl in n8n container Task 3: Confirm Docker Access Working Docker socket access from n8n container via curl Run this command on Unraid: ```bash docker exec n8n curl --unix-socket /var/run/docker.sock 'http://localhost/v1.53/containers/json?all=true' ```
Expected result:
- JSON array with your containers
- Each container has: Id, Names (with leading slash), State, Status
- Example: `[{"Id":"abc123","Names":["/plex-server"],"State":"running","Status":"Up 2 days"...}]`

If you see the JSON output, Docker integration is ready.
Confirm JSON container list returned, or describe error - Docker socket mounted at /var/run/docker.sock in n8n container - NODES_EXCLUDE environment variable set (empty string) - curl available in n8n container - Docker API responds with container list via curl

<success_criteria>

  • docker exec n8n curl --unix-socket /var/run/docker.sock 'http://localhost/v1.53/containers/json?all=true' returns JSON container array
  • n8n container has Execute Command node available in node palette </success_criteria>
After completion, create `.planning/phases/02-docker-integration/02-01-SUMMARY.md`