Files
esh-pfi-infrastructure/servers/nh3-docker/README.md
T
vh e376d0aec9 Initial commit: PFI fleet inventory, stacks, tooling, and backup pipeline
Captures the full workspace state built up to this point:

  - CLAUDE.md + README.md describing conventions and the four-host fleet
    (ana-ml2, ana-docker, nh3-docker, esh-docker-vm).
  - Per-host notes under servers/<host>/ with ssh-target fallback files
    and latest system-details snapshots (two in-compose credential leaks
    scrubbed; the upstream compose files still need to move those to .env).
  - scripts/: server_inspect.sh (read-only remote diagnostic),
    refresh-server-info.sh (dir-driven discovery + snapshot capture with
    validation warnings), add-host.sh, sync-stacks.sh (pull
    compose/conf trees), deploy-stack.sh (push with per-file diff + prompt).
  - stacks/: canonical compose for backrest, beszel, dozzle, llama-swap,
    rest-server-ana, rest-server-nh3, vllm-qwen3, plus the retired
    infinity reference. All use the .env-driven + traefik-net + homepage
    label pattern.
  - configs/restic/ana-docker/: first resticprofile config + pre-backup
    hook (Synapse pg_dump, Seafile mysqldump, Vaultwarden SQLite); templates
    for the other three hosts to come.
  - docs/pfi/: general infrastructure reference carried over.
  - .gitignore excludes .env, stacks-mirror/, and assorted secret/state
    filenames to prevent re-leaks on later commits.
2026-04-20 14:29:48 -07:00

53 lines
1.9 KiB
Markdown

# nh3-docker
General-purpose Docker host for the New Hampshire (nh3) site. Small VM, no GPU. Separate LAN from the Anaheim colo.
## Network
- **LAN IP:** 10.100.50.40
- **LAN subnet:** 10.100.0.0/16 (NH site)
- **FQDN:** `nh3-docker.phasefinal.com`
- **SSH:** standard port 22
## Hardware
- **CPU:** 8 vCPU (QEMU virtual — VM)
- **RAM:** 7.8 GB
- **GPUs:** none
- **Storage:** 125 GB root (ext4) + NFS mounts from `10.100.50.50` (Synology)
- **OS:** Debian 12 (bookworm), kernel 6.1.x
- **Docker:** running (daemon socket at `/var/run/docker.sock`; also listens on `:2375` — be aware if firewalling)
## Key paths
| Path | Purpose |
|------|---------|
| `/opt/docker/compose/<stack>/` | Compose files (also a git repo) |
| `/opt/docker/conf/<stack>/` | Config bind mounts (empty as of last inspection) |
| `/mnt/compose` | NFS — `10.100.50.50:/volume1/compose` |
| `/mnt/backup` | NFS — `10.100.50.50:/volume1/Backup` |
## Running stacks
| Stack | Port(s) | Notes |
|-------|---------|-------|
| adguard | 53 / 853 / 8080 / 8443 / 3000 / 784 | AdGuard Home — primary DNS for the NH site |
| dockge | 5001 | Docker stack management UI |
| dozzle-agent | 7007 | Log agent; hub on ana-docker pulls from here |
| beszel-nh3-docker (agent) | 45876 | Metrics agent; hub on ana-docker |
| portainer (+ portainer_agent) | 9443 / 8000 / 9001 | Container management UI (ad-hoc, no compose dir under `/opt/docker/compose/`) |
No Traefik / TLS terminator on this host — services are accessed on raw LAN ports. If that changes, mirror the ana-docker pattern (`/opt/docker/conf/traefik-nh3/…` + `anaprod`-style cert resolver).
## Refresh state
```bash
scripts/refresh-server-info.sh nh3-docker
```
Latest snapshot: `system-details.txt` (regenerate as needed).
## Placement rule
No GPU → this is the default target for NH-site Docker workloads. GPU-only stacks still go to **ana-ml2**; non-GPU Anaheim-specific services stay on **ana-docker**.