# Unraid server baseline (functional-completion audit) Captured 2026-08-02 before any functional-completion changes, via `ssh unraid` (alias in `~/.ssh/config`, key `itworx_unraid_deploy`; the `widefrog_unraid_deploy` identity named in the task brief does not exist locally — the working alias/key was used instead, no new key was created). ## SSH access ```bash ssh -o BatchMode=yes -o ConnectTimeout=10 unraid "hostname && docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'" ``` Result: reachable, host `Tower`. `widefrog_unraid_deploy` is not a valid identity path on this workstation (`~/.ssh/widefrog_unraid_deploy` does not exist); the pre-existing `unraid` SSH config alias (`itworx_unraid_deploy` key, root@192.168.10.150:22) was used instead and is fully functional. No key was created, copied, or replaced. ## Deployed containers (Compose project `mobilityops`) | Container | Image | Status | Health | Restarts | Host port | |---|---|---|---|---|---| | `mobilityops-web-1` | `mobilityops-web` | Up | healthy | 0 | `1236:80` | | `mobilityops-api-1` | `mobilityops-api` | Up | healthy | 0 | none (compose-network only) | | `mobilityops-db-1` | `postgres:16-alpine` | Up | healthy | 0 | none (compose-network only) | Shared host `n8n` container (outside the `mobilityops` Compose project, pre-existing infrastructure): Up, healthy, `5678:5678`, on the default `bridge` network (not on `mobilityops_mobilityops`). Deployment directory: `/mnt/user/appdata/mobilityops` (matches `docs/17-runbook.md` / `deploy/unraid/README.md`). ## Deployed revision `.deploy/source-revision` on the server contains: ``` 54dc952915a4874fcdf14781e1c37feb0e253851 ``` This matches the local `design/mobilityops-premium-ui` HEAD (`54dc952`) exactly — the server is running the last committed premium-design revision, confirming the externally observed branch/revision. `.deploy/` also retains prior archives (`source-a737860.tar.gz`, `source-686b62f.tar.gz`, `source.tar.gz`) for rollback. ## Migrations ```bash docker compose -p mobilityops exec -T api python -m alembic current # e7b08389f47f (head) ``` Matches the local repository's Alembic head (`backend/alembic/versions/`: `c9498525abb5_initial_schema.py` → `e7b08389f47f_idempotency_records.py`). No drift. ## Volumes and network - `mobilityops_mobilityops-db` (Postgres data, named/persistent) - `mobilityops_mobilityops-n8n` (retained from an earlier bundled-n8n attempt; unused now that the shared host `n8n` is reused — see `compose.unraid.yaml` `bundled-n8n` profile) - Network: `mobilityops_mobilityops` (bridge) ## Environment variable names present on the server `.env` (names only — no values inspected or printed) `APP_SECRET`, `COMPOSE_PROJECT_NAME`, `DATABASE_URL`, `DEMO_TODAY`, `KNOWLEDGE_PROVIDER`, `MCP_HUB_BASE_URL`, `MCP_HUB_REGISTRATION_ENABLED`, `MCP_HUB_SERVICE_TOKEN`, `MCP_PROVIDER_ID`, `MOBILITYOPS_API_URL`, `MOBILITYOPS_CALLBACK_TOKEN`, `MOBILITYOPS_DEMO_MODE`, `MOBILITYOPS_ENV`, `MOBILITYOPS_PUBLIC_URL`, `N8N_BASE_URL`, `N8N_BASIC_AUTH_ACTIVE`, `N8N_BASIC_AUTH_PASSWORD`, `N8N_BASIC_AUTH_USER`, `N8N_ENCRYPTION_KEY`, `N8N_OWNER_EMAIL`, `N8N_OWNER_PASSWORD`, `N8N_WEBHOOK_URL`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `RAGCORE_API_TOKEN`, `RAGCORE_BASE_URL`, `RAGCORE_COLLECTION`, `RAGCORE_TENANT`, `RAGCORE_WORKSPACE`, `TZ`. `diff` against the committed `.env.example` variable set: no difference — the server `.env` was generated from the current `.env.example` with no drift in variable names. ## Integration configuration (as previously documented in `artifacts/deployment/unraid-summary.md`, re-verified live) - **n8n**: shared host instance at `http://192.168.10.150:5678`, healthy, outside the MobilityOps Compose project. The bundled MobilityOps `n8n` service exists only behind the `bundled-n8n` Compose profile and is not started. - **RAGcore**: `KNOWLEDGE_PROVIDER=demo` — not live-connected by design; no live RAGcore instance exists yet. - **ITWorx MCP Hub**: `MCP_HUB_REGISTRATION_ENABLED=false` — provider endpoints exist and are independently testable, but no live Hub round trip is claimed. ## Application reachability ```bash curl -s -o /dev/null -w "%{http_code}\n" http://192.168.10.150:1236/ # 200 ``` ## Startup log scan ```bash docker compose -p mobilityops logs --tail=200 api ``` No traceback, fatal, or unresolved startup error observed — only routine `GET /health` polling entries from the Compose healthcheck. ## Configuration differences vs. the committed repository None found: deployed source revision, Alembic head, and `.env.example` variable set all match the current `design/mobilityops-premium-ui` branch exactly. This baseline was captured immediately before any functional-completion work began.