75995b5cd6
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>
5.3 KiB
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 |
|
|
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>