# UISP/UNMS Server Overview

## Server Details

**Hostname:** `unms.forefrontwireless.com`
**IP:** `5.161.225.131`
**Provider:** Hetzner CPX21 (3 vCPU, 4GB RAM, 80GB disk)
**OS:** Ubuntu (snap-based AWS CLI, no pip)

## Docker Stack

All containers from `ubnt/unms:3.0.140`:

| Container | Image | Purpose |
|---|---|---|
| unms-api | ubnt/unms:3.0.140 | Main API server |
| unms-device-ws-1 | ubnt/unms:3.0.140 | Device WebSocket (read) |
| unms-device-ws-2 | ubnt/unms:3.0.140 | Device WebSocket (write) |
| unms-nginx | ubnt/unms-nginx:3.0.140 | Reverse proxy |
| unms-postgres | ubnt/unms-postgres:3.0.140 | PostgreSQL database |
| unms-siridb | ubnt/unms-siridb:3.0.140 | Time-series database |
| unms-netflow | ubnt/unms-netflow:3.0.140 | NetFlow collector |
| unms-rabbitmq | rabbitmq:3.7.28-alpine | Message queue |
| unms-fluentd | ubnt/unms-fluentd:3.0.140 | Log shipper |
| ucrm | ubnt/unms-crm:4.5.31 | Customer management |

## Data Volume

**Location:** `/home/unms/data/` — 34GB (primarily PostgreSQL + SiriDB time-series)
**Compose:** `/home/unms/app/docker-compose.yml`
**Config:** `/home/unms/app/unms.conf`

## Backup Approach

The user explicitly prefers **Hetzner snapshot** over scripted backup:

1. Create a Hetzner snapshot of the VM (instant, captures exact state)
2. Update OS + UISP/UNMS in place on the VM
3. Plan clean migration to new target server (app3) with fresh UISP install + data restore from updated source

**Why not scripted S3 backup:** The data directory is 34GB with large PostgreSQL time-series data. A `pg_dump` of the `unms` database takes 3+ minutes. rsync of the full data directory fills tmpfs and takes 5+ minutes. If interrupted, partial temp files consume disk until cleanup.

## Dependencies

- **SSH access:** Via `itpp-infra` key (already deployed)
- **AWS credentials:** None on this server — Wasabi keys not stored here
- **No IAM user exists** for this server's S3 access
