# 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:** ```bash 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:** ```bash ssh -i /root/.ssh/mikrotik_key -p 2222 unraid@192.168.31.1 ``` --- ## Docker Commands ### Quick Status ```bash docker ps -a --format table {{.Names}}t{{.Status}} | sort ``` ### Container Logs ```bash docker logs container-name --tail 100 -f ``` ### Recreate with Labels (Unraid) Always include these labels for Unraid integration: ```bash --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](https://www.svgrepo.com/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:** ```bash cd /tmp/infrastructure git add docs/ git commit -m "Description of changes" git push ``` ### Changelog Format ```markdown ## 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 |