claude-home/legacy/headless-claude/docs/n8n-setup-instructions.md
Cal Corum babf062d6a docs: archive headless-claude design docs to legacy/
Original planning folder (no git repo) for the server diagnostics system
that runs on CT 300. Live deployment is on claude-runner; this preserves
the Agent SDK reference, PRD with Phase 2/3 roadmap, and N8N workflow designs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 08:15:13 -06:00

140 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# N8N Setup Instructions
This guide walks through configuring the N8N health check workflow.
## Prerequisites
- N8N running at http://10.10.0.210:5678
- SSH access configured between N8N LXC and Claude Code LXC (already done)
- Discord webhook configured (already done)
## Step 1: Create SSH Credential in N8N
1. Open N8N at http://10.10.0.210:5678
2. Go to **Settings** (gear icon) → **Credentials**
3. Click **Add Credential**
4. Search for and select **SSH**
5. Configure:
- **Credential Name:** `Claude Code LXC`
- **Host:** `10.10.0.148`
- **Port:** `22`
- **Username:** `root`
- **Authentication:** `Private Key`
- **Private Key:** Paste the following:
```
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACAtHWX+TOsNkiL7TP1niwpO5AJjBThghODpa1q93g7bagAAAJiq1/Cyqtfw
sgAAAAtzc2gtZWQyNTUxOQAAACAtHWX+TOsNkiL7TP1niwpO5AJjBThghODpa1q93g7bag
AAAEBVXct4LSCsRexl9JYZtrYx4YVoioYBdWHlPinW+PudBS0dZf5M6w2SIvtM/WeLCk7k
AmMFOGCE4OlrWr3eDttqAAAAEm44bi10by1jbGF1ZGUtY29kZQECAw==
-----END OPENSSH PRIVATE KEY-----
```
6. Click **Save**
## Step 2: Import the Workflow
1. Go to **Workflows** in N8N
2. Click **Add Workflow****Import from File**
3. Select: `/mnt/NV2/Development/headless-claude/n8n-workflow-import.json`
- Or copy the workflow from this repo
4. After import, open the workflow
## Step 3: Link the SSH Credential
1. Click on the **Run Claude Diagnostics** node
2. In the **Credential** dropdown, select `Claude Code LXC`
3. Click **Save**
## Step 4: Test the Workflow
1. Click **Execute Workflow** (play button)
2. Watch each node execute:
- **Every 5 Minutes** → triggers
- **Run Claude Diagnostics** → SSHs to Claude Code LXC
- **Parse Claude Response** → extracts result
- **Has Issues?** → routes based on health
- **Discord Alert** or **Discord OK** → sends notification
3. Check Discord for the notification
## Step 5: Activate the Workflow
1. Toggle the workflow to **Active** (top right)
2. The workflow will now run every 5 minutes automatically
## Workflow Behavior
### Schedule
- Runs every 5 minutes by default
- Adjust in "Every 5 Minutes" node settings
### Health Check
- Calls Claude Code headless mode
- Runs `python3 ~/.claude/skills/server-diagnostics/client.py health paper-dynasty`
- Claude analyzes results and summarizes
### Notifications
- **Issues Found**: Red Discord embed with alert details
- **All Healthy**: Green Discord embed (disabled by default - enable "Discord OK" node if wanted)
### Cost
- Each health check costs ~$0.08 (Claude API usage)
- At 5-minute intervals: ~$0.08 × 12 × 24 = ~$23/day
- Consider increasing interval to 15-30 minutes for cost savings
## Customization
### Change Check Interval
1. Open "Every 5 Minutes" node
2. Adjust `minutesInterval` value
### Add More Servers
1. Update config.yaml on Claude Code LXC
2. Modify the Claude prompt in "Run Claude Diagnostics" node
### Enable OK Notifications
1. Click "Discord OK (Optional)" node
2. Toggle off "Disabled" setting
## Troubleshooting
### SSH Connection Failed
```bash
# Test from N8N LXC
ssh -i ~/.ssh/n8n_to_claude root@10.10.0.148 "hostname"
```
### Claude Command Not Found
```bash
# Verify Claude path on Claude Code LXC
/root/.local/bin/claude --version
```
### Authentication Expired
If Claude returns auth errors, SSH to Claude Code LXC and re-authenticate:
```bash
ssh root@10.10.0.148
/root/.local/bin/claude # Follow device code flow
```
## Architecture
```
N8N (10.10.0.210)
├── Schedule Trigger (every 5 min)
└── SSH to Claude Code LXC (10.10.0.148)
└── Claude Code Headless Mode
└── server-diagnostics skill
└── SSH to Paper Dynasty (10.10.0.88)
└── Docker health checks
```