unifi: контроллер UniFi на LXC 140 (10.0.0.196) + домен unifi.dttb.ru
- Docker-стек mongo:4.4 + linuxserver/unifi-network-application - MongoDB 4.4 принудительно: хост Xeon X5672 без AVX, 5.0+ падает Illegal instruction - образ с docker.io (ghcr.io виснет из РФ), rootfs на work (local-lvm 90%) - NPM #36 + Let's Encrypt (DNS через Spaceweb, один editMain add) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
61
decisions/2026-06-15-unifi-controller-homelab.md
Normal file
61
decisions/2026-06-15-unifi-controller-homelab.md
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
date: 2026-06-15
|
||||
type: decision
|
||||
tags: [decision, dttb, unifi, proxmox, lxc, network]
|
||||
---
|
||||
|
||||
# UniFi Network Application на home lab — LXC 140 (2026-06-15)
|
||||
|
||||
## Задача
|
||||
Развернуть контроллер UniFi (Network Application) на Proxmox home lab (10.0.0.250) + домен `unifi.dttb.ru`.
|
||||
|
||||
## Итог
|
||||
- **LXC 140 `unifi`** — Debian 12, unprivileged + nesting/keyctl, Docker compose
|
||||
- IP **10.0.0.196** (статика), nameserver **1.1.1.1**
|
||||
- Ресурсы: 2 vCPU / 3 GB RAM / 16 GB диск (**rootfs на `work`** — `local-lvm` забит на 90%)
|
||||
- Стек: `docker.io/mongo:4.4` + `docker.io/linuxserver/unifi-network-application:latest`, persistent bind-mount `/opt/unifi/{config,db}`
|
||||
- Web UI: **https://10.0.0.196:8443** (302 на логин — поднялся), inform на :8080
|
||||
- Домен: **unifi.dttb.ru** (NPM proxy host #36 → HTTPS 10.0.0.196:8443, WSS) + Let's Encrypt
|
||||
|
||||
## КОРЕНЬ (важная грабля): MongoDB 4.4, не выше
|
||||
Хост HP Z800 = 2× **Xeon X5672 (Westmere)** — **без AVX** (`grep avx /proc/cpuinfo` пусто).
|
||||
MongoDB **5.0+** (и 7.0, который ставит стандартный community-script `ct/unifi.sh`) требует AVX и падает с **`Illegal instruction`**.
|
||||
LXC видит CPU хоста напрямую — маскировки нет. → берём **mongo:4.4** (последняя версия без AVX; UniFi 8.x поддерживает Mongo 3.6–7.0).
|
||||
Проверка живости: `docker logs unifi-db` → `restarts=0`, «Waiting for connections», app подключился. Падений нет.
|
||||
|
||||
Native-установка на Debian 12 отпала: MongoDB 4.4 под bookworm в репах нет (4.4 собран под bullseye/libssl1.1). Docker-стек `mongo:4.4` самодостаточен и обходит это. Заодно это тот же стек, что отлажен на Передельках ([[2026-04-16-unifi-migration-peredelki]], там bind-mount решал сброс БД).
|
||||
|
||||
## Грабля 2: ghcr.io виснет из РФ
|
||||
`lscr.io/linuxserver/...` редиректит на **ghcr.io** → закачка встала на 0 KB/s (compose висел). `mongo:4.4` с docker.io скачался нормально.
|
||||
→ Образ переключён на **`docker.io/linuxserver/unifi-network-application:latest`** (linuxserver публикует и туда, и в ghcr). Скорость 1.2 MB/s. Если опять затык — NetBird Trance→finland exit или docker registry mirror.
|
||||
|
||||
## Домен и SSL (процедура как для omni — [[2026-05-26-omni-domain-and-update]])
|
||||
DNS dttb.ru — на **Spaceweb** (нет публичного wildcard, каждый поддомен записью вручную).
|
||||
1. `unifi.dttb.ru` → публично NXDOMAIN (DoH 1.1.1.1; с Mac `dig` хайджачится NetBird — [[feedback_dttb_dns_split_view]]).
|
||||
2. Добавлена A-запись через Spaceweb API **одним** вызовом (НЕ в цикле — `editMain` циклом ломает зону):
|
||||
`POST https://api.sweb.ru/domains/dns` → `editMain action=add name=unifi type=A value=176.62.183.186` → `result:true`.
|
||||
3. Negative-cache LE Boulder + 1.1.1.1 (TTL ~600) → ждать ~10 мин после первой неудачной попытки, потом выпуск.
|
||||
4. NPM proxy host #36 создан (backend HTTPS 10.0.0.196:8443, WSS вкл). Cert Let's Encrypt **id 126** (exp 2026-09-13) выпущен и привязан (`ssl_forced`, http2).
|
||||
|
||||
Проверка: `https://unifi.dttb.ru` → **302 `/setup/`** (свежий контроллер), сертификат CN=unifi.dttb.ru issued by Let's Encrypt YE1.
|
||||
|
||||
## Доступы
|
||||
- Proxmox: `ssh root@10.0.0.250` (1qaz!QAZ), `pct ... 140`
|
||||
- Контейнер: `pct exec 140 -- ...`; compose в `/opt/unifi/`
|
||||
- MongoDB (внутр.): user `unifi` / `Un1fiM0ngo2026`, db `unifi`/`unifi_stat`
|
||||
- UniFi UI: https://10.0.0.196:8443 или https://unifi.dttb.ru — **первый вход = создание admin-аккаунта** (контроллер пустой)
|
||||
- Spaceweb DNS: `it5870yand` / `1qaz!QAZ` (api.sweb.ru)
|
||||
- NPM: 10.0.0.195:81, `it5870@yandex.ru` / `1qaz!QAZ`
|
||||
|
||||
## Управление
|
||||
```bash
|
||||
ssh root@10.0.0.250
|
||||
pct exec 140 -- bash -c 'cd /opt/unifi && docker compose ps'
|
||||
pct exec 140 -- bash -c 'cd /opt/unifi && docker compose restart'
|
||||
pct exec 140 -- bash -c 'cd /opt/unifi && docker compose pull && docker compose up -d' # апдейт
|
||||
```
|
||||
|
||||
## Что осталось / на заметку
|
||||
- Контроллер пустой — устройств UniFi в домашней сети (10.0.0.0/24) пока нет (роутер — OpenWrt). Готов к adopt новых AP/switch.
|
||||
- Для adopt устройств из других подсетей — set-inform на UI или DNS `unifi → <ip>` (как на Передельках).
|
||||
- `.196` — статика; убедиться, что вне DHCP-пула OpenWrt.
|
||||
@@ -82,6 +82,17 @@ tags: [dttb]
|
||||
| Роль | SwarmClaw — оркестратор/control-plane над openclaw (рой агентов, делегирование, дашборд) |
|
||||
| Доступ | http://10.0.0.135:3456 (cookie `sc_auth`); провайдер OmniRoute, gateway-связка с LXC 137 |
|
||||
|
||||
### 10.0.0.196 — unifi (UniFi Network Application)
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Hostname | unifi |
|
||||
| Proxmox | LXC 140 |
|
||||
| ОС | Debian 12 (Docker compose) |
|
||||
| Открытые порты | 8443/https (Web UI), 8080/http (device inform), 3478/udp (STUN), 10001/udp (discovery), 8843, 8880, 6789 |
|
||||
| Роль | Контроллер UniFi (mongo:4.4 + linuxserver/unifi-network-application) |
|
||||
| Домен | unifi.dttb.ru → 10.0.0.196:8443 |
|
||||
| ⚠️ Заметка | MongoDB строго 4.4 — хост-CPU Xeon X5672 без AVX |
|
||||
|
||||
### 10.0.0.140 — proxmox-local
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -470,6 +481,7 @@ tags: [dttb]
|
||||
| mail.dttb.ru | 10.0.0.107:443 | Mailcow (почта dttb.ru) |
|
||||
| matrix.dttb.ru | 10.0.0.224:8080 | Matrix/Element Web |
|
||||
| rec.dttb.ru | 10.0.0.227:8091 | Agent-DVR / NVR |
|
||||
| unifi.dttb.ru | 10.0.0.196:8443 | UniFi Network Application |
|
||||
| plex.dttb.ru | 10.0.0.200:32400 | Plex Media Server |
|
||||
| porteiner.dttb.ru | 10.0.0.10:9443 | Portainer |
|
||||
| z.dttb.ru | 10.0.0.220:80 | Z-сервис |
|
||||
|
||||
@@ -9,7 +9,7 @@ tags: [dttb, npm]
|
||||
> **NPM LXC:** 103 (10.0.0.195)
|
||||
> **Панель:** https://npm.dttb.ru
|
||||
>
|
||||
> Последнее обновление: 2026-06-08 (добавлен swarm.dttb.ru → SwarmClaw LXC 135)
|
||||
> Последнее обновление: 2026-06-15 (добавлен unifi.dttb.ru → UniFi LXC 140)
|
||||
|
||||
---
|
||||
|
||||
@@ -17,7 +17,7 @@ tags: [dttb, npm]
|
||||
|
||||
| Всего хостов | С SSL | Без SSL | Активных |
|
||||
|--------------|-------|---------|----------|
|
||||
| 21 | 17 | 4 | 21 |
|
||||
| 22 | 18 | 4 | 22 |
|
||||
|
||||
---
|
||||
|
||||
@@ -51,6 +51,7 @@ tags: [dttb, npm]
|
||||
| 31 | `zima.umnybot.ru` | 10.0.0.190:80 | ✅ Let's Encrypt | ✅ | ✅ | ❌ | ZimaOS NAS коробки Алекса (pve-147 VM 100) |
|
||||
| 33 | `tg.umnybot.ru` | 10.0.0.190:3000 | ✅ Let's Encrypt | ✅ | ✅ | ❌ | Telegram web (KasmVNC, ZimaOS) — Basic Auth ACL `umnybot-kasm` |
|
||||
| 34 | `rustdesk.umnybot.ru` | 10.0.0.190:3005 | ✅ Let's Encrypt | ✅ | ✅ | ❌ | RustDesk client web (KasmVNC, ZimaOS) — Basic Auth ACL `umnybot-kasm` |
|
||||
| 36 | `unifi.dttb.ru` | 10.0.0.196:8443 (HTTPS) | ✅ Let's Encrypt | ✅ | ✅ | ✅ | **UniFi Network Application** (LXC 140) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ tags: [dttb, proxmox]
|
||||
> **Основная нода:** pve (10.0.0.250) — описана ниже
|
||||
> **Вторая нода (standalone):** pve (10.0.0.147) — отдельный хост i3-2100/15GB/SSD+1.8TB HDD, см. [[proxmox-pve-147]] (VM 100 ZimaOS, LXC 101 второй NPM)
|
||||
>
|
||||
> Последнее обновление: 2026-06-08 (добавлен LXC 135 swarmclaw)
|
||||
> Последнее обновление: 2026-06-15 (добавлен LXC 140 unifi — UniFi Network Application)
|
||||
|
||||
---
|
||||
|
||||
@@ -18,8 +18,8 @@ tags: [dttb, proxmox]
|
||||
| Тип | Всего | Запущено | Остановлено |
|
||||
|-----|-------|----------|-------------|
|
||||
| QEMU VM | 15 | 5 | 10 |
|
||||
| LXC | 22 | 12 | 10 |
|
||||
| **Итого** | **37** | **17** | **20** |
|
||||
| LXC | 23 | 13 | 10 |
|
||||
| **Итого** | **38** | **18** | **20** |
|
||||
|
||||
---
|
||||
|
||||
@@ -203,6 +203,19 @@ tags: [dttb, proxmox]
|
||||
| IP | 10.0.0.141 (LAN) / 100.70.161.29 (NetBird) |
|
||||
| Назначение | VPN-proxy (детали уточнить) |
|
||||
|
||||
### LXC 140 — unifi (UniFi Network Application)
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Статус | 🟢 running |
|
||||
| IP | 10.0.0.196 (статика, nameserver 1.1.1.1) |
|
||||
| ОС/рантайм | Debian 12, unprivileged + nesting/keyctl, Docker compose |
|
||||
| Ресурсы | 2 vCPU / 3 GB / 16 GB (rootfs на `work`, т.к. local-lvm 90%) |
|
||||
| Стек | `docker.io/mongo:4.4` + `docker.io/linuxserver/unifi-network-application:latest`, bind-mount `/opt/unifi/{config,db}` |
|
||||
| Web UI | https://10.0.0.196:8443 · домен `unifi.dttb.ru` (NPM #36) |
|
||||
| NPM домен | unifi.dttb.ru → 10.0.0.196:8443 (HTTPS backend, WSS) |
|
||||
| Tags | network, unifi |
|
||||
| Назначение | **Контроллер UniFi (Network Application)** для home lab. ⚠️ MongoDB именно **4.4** — CPU Xeon X5672 без AVX, Mongo 5.0+ падает с `Illegal instruction`. См. [[../../decisions/2026-06-15-unifi-controller-homelab]] |
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Остановленные LXC
|
||||
|
||||
Reference in New Issue
Block a user