diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..40c6961 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,119 @@ +# Home Network - Unraid Server + +## Connect to Unraid + +When user says "connect unraid", use this command: +```bash +ssh -i ~/.ssh/id_ed25519_unraid root@192.168.10.20 -p 422 +``` + +## Connect to MikroTik HAP ax³ + +SSH port is **2222** (not 22): + +From Mac (user **xtrm**): +```bash +ssh -i ~/.ssh/mikrotik_key -p 2222 xtrm@192.168.10.1 +``` + +From Unraid (user **unraid**): +```bash +ssh -p 2222 unraid@192.168.10.1 +``` + +Alternative IPs (depending on your VLAN): +- VLAN 10 (Management): 192.168.10.1 +- VLAN 20 (Trusted): 192.168.20.1 +- VLAN 40 (Catch-All): 192.168.1.1 + +WinBox (port 8291) and WebFig (port 80) also available. + +## Key Paths on Unraid Server + +| Item | Path | +|------|------| +| Claude binary | `/root/.local/bin/claude` | +| Claude data | `/mnt/user/appdata/claude-code/` | +| Infrastructure repo | `/tmp/infrastructure` (git clone) | + +## Infrastructure Documentation (Git-Managed) + +**Repository:** https://git.xtrm-lab.org/jazzymc/infrastructure + +All infrastructure documentation is version-controlled in Gitea: + +``` +infrastructure/ +├── README.md +├── CLAUDE.md +└── docs/ + ├── 01-NETWORK-MAP.md # Network topology + ├── 02-SERVICES-CRITICAL.md # P0/P1 services (DNS, Auth, Proxy) + ├── 02-PORT-UTILIZATION.md # Device port assignments + ├── 03-SERVICES-OTHER.md # Non-critical services + ├── 03-VLAN-DEVICE-ASSIGNMENT.md # VLAN device mapping + ├── 04-HARDWARE-INVENTORY.md # Hardware list + ├── 06-CHANGELOG.md # Change history + ├── archive/ # Completed phase docs + ├── incidents/ # Incident reports + └── wip/ # Work in progress +``` + +## On Connect - Clone/Pull Docs First + +Always ensure you have the latest infrastructure documentation: + +```bash +# Clone if not exists, or pull latest +cd /tmp && \ + ([ -d infrastructure ] && cd infrastructure && git pull || \ + git clone 'https://jazzymc:zRuHTu%5D7Q3LC%2Bq%3F@git.xtrm-lab.org/jazzymc/infrastructure.git') +``` + +## Documentation Update Routine (Git-Based) + +**IMPORTANT:** After any infrastructure change, commit to Git: + +### When to Update +- Service added/removed/changed +- Container started/stopped/crashed +- NAT rules changed on MikroTik +- Network configuration changed +- Phase task completed or status changed + +### Update Process +1. **Pull latest:** `cd /tmp/infrastructure && git pull` +2. **Check current state:** `docker ps -a` on Unraid +3. **Update docs:** Edit files in `/tmp/infrastructure/docs/` +4. **Commit & push:** + ```bash + cd /tmp/infrastructure + git add docs/ + git commit -m "Description of changes" + git push + ``` + +### Changelog Format (docs/06-CHANGELOG.md) +```markdown +## YYYY-MM-DD +- [PHASE X] Task description - COMPLETED/FIXED/ISSUE +- [SERVICE] service-name: status change or config change +``` + +### Quick Status Check Command +```bash +ssh -i ~/.ssh/id_ed25519_unraid root@192.168.10.20 -p 422 "docker ps -a --format 'table {{.Names}}\t{{.Status}}' | grep -vE '^NAMES'" +``` + +## GitOps Services + +| Service | URL | Purpose | +|---------|-----|---------| +| Gitea | https://git.xtrm-lab.org | Git repository hosting | +| Woodpecker CI | https://ci.xtrm-lab.org | CI/CD pipelines | +| Dockge | http://192.168.10.20:5001 | Docker Compose stack management | + +## Git Credentials (for automation) + +- **Username:** jazzymc +- **Repo URL (with auth):** `https://jazzymc:zRuHTu%5D7Q3LC%2Bq%3F@git.xtrm-lab.org/jazzymc/infrastructure.git` diff --git a/docs/03-SERVICES-OTHER.md b/docs/03-SERVICES-OTHER.md index d9837ca..7345917 100644 --- a/docs/03-SERVICES-OTHER.md +++ b/docs/03-SERVICES-OTHER.md @@ -1,6 +1,6 @@ # Other Services -**Last Updated:** 2026-01-25 +**Last Updated:** 2026-02-06 Non-critical services that enhance functionality but don't affect core network operation. @@ -239,14 +239,16 @@ Non-critical services that enhance functionality but don't affect core network o ## Container Management -### Portainer +### Dockge | Network | Port | |---------|------| -| bridge | 9002 | +| bridge | 5001 | -**Purpose:** Docker container management UI -**Access:** http://192.168.31.2:9002 or via Tailscale +**Purpose:** Docker Compose stack management UI +**Access:** http://192.168.10.20:5001 +**Data:** `/mnt/user/appdata/dockge/data` +**Stacks:** `/mnt/user/appdata/dockge/stacks` --- @@ -254,6 +256,7 @@ Non-critical services that enhance functionality but don't affect core network o | Service | Reason | Status | |---------|--------|--------| +| Portainer | Replaced by Dockge | Removed | | Unbound | Redundant (AdGuard upstream) | Stopped | | DoH-Server | Redundant (AdGuard built-in) | Removed | | stunnel-dot | Redundant (AdGuard built-in) | Removed |