docs: add full homelab documentation structure
This commit is contained in:
73
docs/servers/NOMAD.md
Normal file
73
docs/servers/NOMAD.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# N.O.M.A.D. Server
|
||||
|
||||
Offline survival/knowledge server and game server host.
|
||||
|
||||
## Specs
|
||||
- **OS:** Ubuntu 25.10 (bare metal)
|
||||
- **IP:** 10.5.1.16
|
||||
- **CPU:** Intel Core i7-4770K @ 3.50GHz (4c/8t)
|
||||
- **RAM:** 32GB DDR3 1600MHz
|
||||
- **GPU:** NVIDIA GeForce GTX 1080 (8GB VRAM)
|
||||
- **NIC:** Intel I218-V (1GbE) + Aquantia AQC113 (10GbE)
|
||||
- **Motherboard:** ASRock H97M Pro4
|
||||
- **UPS:** None
|
||||
|
||||
## Storage
|
||||
| Device | Size | Mount | Purpose |
|
||||
|--------|------|-------|---------|
|
||||
| Samsung SSD 840 (sdb) | 232.9GB | `/` (LVM 100GB) | OS boot |
|
||||
| WD Red HDD (sda) | 3.6TB | `/mnt/hdd-1` | Primary data |
|
||||
| WD Red HDD (sdc) | 3.6TB | `/mnt/hdd-2` | Docker data-root |
|
||||
| Seagate SSD (sdd) | 223.6GB | `/mnt/ssd-1` | Fast scratch |
|
||||
|
||||
## Project N.O.M.A.D.
|
||||
- 10 containers running via `start_nomad.sh` / `stop_nomad.sh`
|
||||
- `/opt/project-nomad` → symlinked from `/mnt/hdd-1/project-nomad`
|
||||
- Docker data-root: `/mnt/hdd-2/docker`
|
||||
- Based on Crosstalk Solutions offline survival/knowledge server
|
||||
|
||||
## Pelican Panel (Game Server Management)
|
||||
- **URL:** `https://panel.paccoco.com`
|
||||
- **Stack:** PHP 8.4 + nginx + MariaDB (native, not Docker)
|
||||
- **Panel files:** `/var/www/pelican`
|
||||
- **DB:** MariaDB, database `pelican`, user `pelican`@`127.0.0.1`
|
||||
- **APP_URL:** `https://panel.paccoco.com`
|
||||
- **TRUSTED_PROXIES:** `*`
|
||||
- **Cron:** `* * * * * php /var/www/pelican/artisan schedule:run` (www-data)
|
||||
- **Admin user:** `fizzlepoof`
|
||||
- **Reverse proxy:** Pangolin via Newt container at `/opt/newt`
|
||||
|
||||
## Wings (Game Server Daemon)
|
||||
- **Binary:** `/usr/local/bin/wings`
|
||||
- **Config:** `/etc/pelican/config.yml`
|
||||
- **Systemd:** `wings.service`
|
||||
- **ExecStart:** `/usr/local/bin/wings --ignore-certificate-errors`
|
||||
- **API port:** 8443
|
||||
- **SFTP port:** 2022
|
||||
- **Node domain:** `node1.paccoco.com` (Pangolin, no auth, connection port 443)
|
||||
- **Game server volumes:** `/var/lib/pelican/volumes`
|
||||
- **Docker network:** `pelican_nw` (172.20.0.0/16)
|
||||
|
||||
## Active Game Servers
|
||||
- **Minecraft:** Purpur, Java 21, port 25565 TCP/UDP (direct host port forward)
|
||||
|
||||
## Networking Notes
|
||||
- `panel.paccoco.com` → `127.0.0.1` in `/etc/hosts` for NAT loopback
|
||||
- nginx on 80 and 443 (self-signed cert) for local Wings → Panel
|
||||
- Wings uses `--ignore-certificate-errors` for self-signed cert
|
||||
- Pangolin resource `node1.paccoco.com` has auth disabled
|
||||
|
||||
## Known Quirks
|
||||
- NVIDIA container toolkit repo has invalid GPG key — remove `/etc/apt/sources.list.d/*nvidia*` if apt errors
|
||||
- Port 8080 occupied by `nomad_admin` container — Wings uses 8443
|
||||
- Interactive artisan commands break over SSH — always use inline flags
|
||||
- Wings CORS derived from `remote:` URL — keep remote as `https://` and use `--ignore-certificate-errors`
|
||||
|
||||
## Newt Tunnel
|
||||
- Container: `newt` at `/opt/newt/docker-compose.yaml`
|
||||
- `network_mode: host`
|
||||
- Connects to Pangolin VPS at `https://paccoco.com`
|
||||
|
||||
## Pending
|
||||
- Regenerate Wings token (was exposed in chat)
|
||||
- Regenerate Newt secret (was exposed in chat)
|
||||
60
docs/servers/PLAUSIBLEDENABILITY.md
Normal file
60
docs/servers/PLAUSIBLEDENABILITY.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# PlausibleDeniability
|
||||
|
||||
Primary Docker host running all production workloads.
|
||||
|
||||
## Specs
|
||||
- **OS:** TrueNAS Scale 25.10.2.1
|
||||
- **CPU:** Ryzen 9 3950X
|
||||
- **RAM:** 32GB
|
||||
- **GPU:** Nvidia RTX 2080 Ti (11GB VRAM)
|
||||
- **UPS:** None
|
||||
|
||||
## Storage Tiers
|
||||
|
||||
| Tier | Mount | Use for |
|
||||
|------|-------|---------|
|
||||
| Local SSD (Crucial MX500 500GB) | `/mnt/docker-ssd` | Docker root, databases, write-heavy appdata, GPU/model caches |
|
||||
| TrueNAS pool (tank, 2-drive ZFS mirror ~3.5TB) | `/mnt/tank` | General appdata, configs, backups, downloads |
|
||||
| Unraid NFS | `/mnt/unraid` | Media libraries, Immich media |
|
||||
|
||||
## Docker Root
|
||||
`/mnt/docker-ssd/docker/docker-data`
|
||||
|
||||
## Compose Repo
|
||||
`/mnt/docker-ssd/docker/compose`
|
||||
|
||||
## Key Docker Networks
|
||||
- `ix-databases_shared-databases` — shared DB access network (created by databases stack)
|
||||
- `pangolin` — reverse proxy exposure network (created by newt)
|
||||
|
||||
## GPU Usage
|
||||
RTX 2080 Ti used by:
|
||||
- Plex (hardware transcoding)
|
||||
- immich-ml (CUDA face recognition)
|
||||
- ollama (LLM inference)
|
||||
|
||||
Recommended models for 11GB VRAM:
|
||||
| Model | VRAM | Best for |
|
||||
|-------|------|---------|
|
||||
| `qwen2.5:14b` | ~8GB | General use, coding, reasoning |
|
||||
| `qwen2.5-coder:7b` | ~5GB | Code tasks |
|
||||
| `deepseek-r1:8b` | ~5GB | Math, logic |
|
||||
| `phi4` | ~8GB | Analytical tasks |
|
||||
|
||||
## Remote Access
|
||||
- Pangolin VPS + Newt for external services
|
||||
- SSH from Windows 11
|
||||
|
||||
## NFS Exports to Other Servers
|
||||
- `data` share → PD at `/mnt/unraid/data`
|
||||
- `immich` share → PD at `/mnt/unraid/immich`
|
||||
|
||||
## Known Issues
|
||||
- immich-ml intermittently unhealthy — investigate GPU/CUDA health
|
||||
- docker-ssd has no redundancy — single point of failure for all appdata
|
||||
- No off-site backup
|
||||
|
||||
## Pending
|
||||
- Deploy: dispatcharr, gotify, bytestash, kima-hub, n8n, qdrant, paperless-ngx
|
||||
- Add Pangolin resource + DNS for `ai.paccoco.com`
|
||||
- Install fresh editor
|
||||
55
docs/servers/SERENITY.md
Normal file
55
docs/servers/SERENITY.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Serenity
|
||||
|
||||
Unraid NAS and media ingestion server.
|
||||
|
||||
## Specs
|
||||
- **OS:** Unraid 7.2.4
|
||||
- **IP:** 10.5.1.5 | Tailscale: 100.94.87.79
|
||||
- **CPU:** Xeon X5690
|
||||
- **RAM:** 102GB
|
||||
- **GPU:** None (Matrox IPMI only)
|
||||
- **UPS:** None
|
||||
|
||||
## Storage
|
||||
- `malcolm` pool: RAIDZ1 of 6×10TB HDDs (~40TB usable) — heavily utilized
|
||||
- Cache pool: single Kingston SNV2S 1TB NVMe (ZFS)
|
||||
|
||||
## Docker Networks
|
||||
`arrs`, `hotio`, `br0` (macvlan), `bridge`
|
||||
|
||||
## Active Containers
|
||||
- **Media:** sonarr, sonarr-anime, radarr, lidarr, readarr, readarr-epub, prowlarr, bazarr, unpackerr
|
||||
- **Download:** qBittorrent, GluetunVPN, autobrr, qbit_manage
|
||||
- **Notifications:** Notifiarr
|
||||
- **Access:** Wizarr, Newt, dockersocket, Hawser
|
||||
- **Databases:** postgresql15, MariaDB-Official
|
||||
- **Other:** romm, GameVault, shelfmark (port 8084), netdata
|
||||
- **Dead/remove:** Unraid-Cloudflared-Tunnel
|
||||
|
||||
## Backup Strategy
|
||||
- Sanoid snapshots cache/appdata: 7 daily, 4 weekly, 6 monthly
|
||||
- Syncoid replicates cache/appdata → malcolm/zfs_backups_array (strict-mirror)
|
||||
- No off-site backup currently
|
||||
|
||||
## Custom Scripts
|
||||
- **qBit Mover script:** pauses torrents 0–4 days old, then runs Unraid mover
|
||||
- **MAM-init script:** updates MyAnonamouse IP inside qbit container
|
||||
- **Mover Status script:** sends Discord webhook notifications
|
||||
|
||||
## Key Shares
|
||||
| Share | Size | Purpose |
|
||||
|-------|------|---------|
|
||||
| data | 35TB | Media library (NFS-mounted by PD at `/mnt/unraid/data`) |
|
||||
| immich | 62GB | Immich photo storage (NFS-mounted by PD at `/mnt/unraid/immich`) |
|
||||
| nextcloud | 7.4GB | Nextcloud data |
|
||||
| Tesla/dashcam | 1.6TB | Dashcam footage |
|
||||
| fizzlebang | 17GB | Personal files |
|
||||
| isos | 22GB | ISO images |
|
||||
| Syncthing | 4.6GB | Syncthing data |
|
||||
| manndra | — | Partner's storage |
|
||||
| Long and Low Crafts | — | Crafts business files |
|
||||
| zfs_backups_array | — | ZFS backup target for cache/appdata |
|
||||
|
||||
## Pending
|
||||
- Remove dead Unraid-Cloudflared-Tunnel container
|
||||
- malcolm pool capacity planning (heavily utilized)
|
||||
Reference in New Issue
Block a user