Files
infrastructure/docs/unraid-claude.md
jazzymc 7a29f07fb4
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
docs: Add reboot persistence note and first-run command
- Added IMPORTANT section explaining /tmp is not persistent
- Added first-run command to clone/pull infrastructure repo
- Added persistence note for /boot/config/
2026-01-18 19:12:46 +02:00

5.2 KiB

Claude Code - Unraid Server Context

Claude Installation

Item Path
Claude binary /root/.local/bin/claude
Claude data /mnt/user/appdata/claude-code/
Config ~/.claude/
Project instructions /root/CLAUDE.md (symlink to this file)

Run Claude: claude or /root/.local/bin/claude


IMPORTANT: First Run After Reboot

The infrastructure documentation lives in /tmp/infrastructure/ which is NOT persistent across Unraid reboots (tmp is cleared on restart).

Always run this command first when starting a new session:

cd /tmp && ([ -d infrastructure ] && cd infrastructure && git pull || git clone "https://jazzymc:zRuHTu%5D7Q3LC%2Bq%3F@git.xtrm-lab.org/jazzymc/infrastructure.git")

This command:

  1. Checks if /tmp/infrastructure exists
  2. If yes → pulls latest changes
  3. If no → clones the repository fresh

Without this, the /root/CLAUDE.md symlink will be broken and Claude won't have context.


Infrastructure Documentation

Repository: https://git.xtrm-lab.org/jazzymc/infrastructure

Local clone: /tmp/infrastructure

Documentation Structure

/tmp/infrastructure/docs/
├── 00-CURRENT-STATE.md          # Current network/infrastructure state
├── 01-PHASE1-DNS-PORTABILITY.md # DNS portability plan
├── 02-PHASE2-FOSSORIAL-STACK.md # Fossorial stack setup
├── 03-PHASE3-AUTHENTIK-ZEROTRUST.md # Authentik zero-trust config
├── 04-PHASE4-REMOTE-GAMING.md   # Remote gaming setup
├── 05-PHASE5-RUSTDESK.md        # RustDesk deployment
├── 06-PHASE6-PORTAINER-MANAGEMENT.md # Portainer setup
├── 07-CHANGELOG.md              # Change history
├── 08-PHASE7-GITEA-GITOPS.md    # Gitea & Woodpecker CI
└── unraid-claude.md             # This file

Key Unraid Paths

Item Path
Docker appdata /mnt/user/appdata/
Docker templates /boot/config/plugins/dockerMan/templates/
FolderView2 config /boot/config/plugins/folder.view2/docker.json
Flash drive (persistent) /boot/config/
User shares /mnt/user/
Disk shares /mnt/disk[1-n]/
Cache /mnt/cache/

Persistence note: Only /boot/config/ survives reboots. All plugin configs, Docker templates, and custom scripts should be stored there.


Network Configuration

Device IP Role
MikroTik Router 192.168.31.1 Gateway, primary DNS
Unraid Server 192.168.31.2 Docker host
Pi-hole (Unraid) 192.168.31.4 Secondary DNS
Unbound (Unraid) 192.168.31.5 Recursive resolver
Tailscale IP 100.100.208.70 Remote access

SSH to MikroTik:

ssh -i /root/.ssh/mikrotik_key -p 2222 unraid@192.168.31.1

Docker Commands

Quick Status

docker ps -a --format table {{.Names}}t{{.Status}} | sort

Container Logs

docker logs container-name --tail 100 -f

Recreate with Labels (Unraid)

Always include these labels for Unraid integration:

--label net.unraid.docker.managed=dockerman
--label net.unraid.docker.icon=ICON_URL_HERE
--label net.unraid.docker.webui=WEBUI_URL_HERE

Icon Collection: Dazzle Line Icons


Documentation Update Routine

After any infrastructure change:

  1. Pull latest: cd /tmp/infrastructure && git pull
  2. Update docs: Edit relevant files in docs/
  3. Update changelog: Add entry to docs/07-CHANGELOG.md
  4. Commit & push:
    cd /tmp/infrastructure
    git add docs/
    git commit -m "Description of changes"
    git push
    

Changelog Format

## YYYY-MM-DD
- [PHASE X] Task description - COMPLETED/FIXED/ISSUE
- [SERVICE] service-name: status change or config change
- [DOCS] Documentation updates
- [UNRAID] Unraid-specific changes

Git Credentials

  • Username: jazzymc
  • Repo URL (with auth): https://jazzymc:zRuHTu%5D7Q3LC%2Bq%3F@git.xtrm-lab.org/jazzymc/infrastructure.git

Services Quick Reference

GitOps

Service URL
Gitea https://git.xtrm-lab.org
Woodpecker CI https://ci.xtrm-lab.org

Core Services

Service URL
Traefik https://traefik.xtrm-lab.org
Authentik https://auth.xtrm-lab.org
Portainer http://100.100.208.70:9002 (Tailscale)
Vaultwarden https://vault.xtrm-lab.org
Home Assistant https://ha.xtrm-lab.org

Monitoring

Service URL
Uptime Kuma http://192.168.31.2:3001
NetAlertX https://netalert.xtrm-lab.org

FolderView2 Categories

Category Containers
Infrastructure traefik, unbound, pihole, DoH-Server, stunnel-dot, pangolin, dockersocket, nebula-sync
Security authentik, authentik-worker, vaultwarden
Monitoring UptimeKuma, Uptime-Kuma-API, AutoKuma, NetAlertX, speedtest-tracker
DevOps gitea, woodpecker-server, woodpecker-agent, postgresql17, Redis, pgAdmin4
Media plex, Libation, transmission
Storage/Backup rustfs, UrBackup, TimeMachine, Nextcloud
Productivity actual-budget, n8n, karakeep, homarr
Smart Home HomeAssistant_inabox
Remote Access rustdesk-hbbs, rustdesk-hbbr
Management portainer, unimus