74 lines
2.8 KiB
Markdown
74 lines
2.8 KiB
Markdown
# 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)
|