Replace Portainer with Dockge for container management
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Remove Portainer, add Dockge on port 5001 - Add project-specific CLAUDE.md with infrastructure instructions - Update services documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
119
CLAUDE.md
Normal file
119
CLAUDE.md
Normal file
@@ -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`
|
||||
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user