# 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**.
