--- date: 2026-06-17 type: reference tags: [ai-assistant, alexandr, umnybot, architecture, topology, netbird, proxmox] aliases: [архитектура коробки Александра, umnybot architecture, топология умного сервера] --- # 🏗️ Архитектура «Умного сервера» Александра (umnybot) > Авторитетная карта коробки после переезда к Александру (2026-06-17). Секреты — в [[credentials]]. Пилот/контекст — память `project_alexandr_assistant`, [[../../benilux/credentials|сеть Бенелюкса]]. ## Кратко «Консьерж в коробке» — Proxmox-нода у Александра (КП Бенелюкс), переехала из LAN Олега `10.0.0.0/24` в сеть Александра `192.168.1.0/24` (2026-06-17). Интерфейс клиента — **бот Алекс в Telegram** + **SwarmClaw на `https://umnybot.ru`**. Публичный доступ — через статичный VPS-шлюз по NetBird (WAN Александра динамический, на него вешать DNS нельзя). ## Топология ```mermaid flowchart TB user([Интернет]) -->|"https://umnybot.ru"| dns["DNS *.umnybot.ru → 158.255.0.139"] user -->|"https://pve.umnybot.ru
(Basic Auth oleg)"| dns dns --> vps subgraph VPSGW ["VPS-шлюз · vm-nano · 158.255.0.139 (статичный) · NetBird 100.70.127.23"] vps["jc21 NPM :443 · LE-серты
Basic Auth для pve"] end vps ==>|"NetBird → 100.70.90.103:80"| boxnpm subgraph BOX ["Коробка Александра · Proxmox pve-147 (192.168.1.247) · LAN 192.168.1.0/24"] boxnpm["LXC101 «npm» · 192.168.1.221
NetBird 100.70.90.103 (alex-npm)"] boxnpm ==>|"Host umnybot.ru"| swarm["LXC103 SwarmClaw
192.168.1.71:3456"] boxnpm ==>|"Host pve.umnybot.ru"| host["Proxmox UI
host:8006"] boxnpm -.->|"omni (internal)"| omni["LXC102 OmniRoute :20128
NetBird 100.70.186.192"] boxnpm -.->|"cloud (internal)"| fb["LXC105 filebrowser :8082"] boxnpm -.->|"alex (internal)"| hp["LXC105 Homepage :3001"] boxnpm -.->|"git (internal)"| git["LXC104 Gitea :3000"] bot["LXC102 openclaw «Алекс»
→ Telegram @alex_umny_bot"] zima["VM100 ZimaOS — STOPPED
(не используется)"] end oleg([Олег / админ]) -.->|"NetBird"| omni classDef pub fill:#1f6f43,stroke:#0a3,color:#fff classDef int fill:#333,stroke:#888,color:#ddd classDef off fill:#5a1a1a,stroke:#a33,color:#fcc class vps,boxnpm,swarm,host pub class omni,fb,hp,git,bot int class zima off ``` Сплошные стрелки (`==>`) — **публичный** путь (`umnybot.ru`; `pve.umnybot.ru` — за Basic Auth). Пунктир (`-.->`) — только **внутри** по NetBird. ## Хосты и сеть | Узел | Адрес | NetBird | Роль | |---|---|---|---| | **Proxmox pve-147** (хост) | `192.168.1.247` static (+резерв Cudy), gw `.1` | нет (джамп через LXC102) | гипервизор, Web UI `:8006` | | Cudy TR3000 (роутер Александра) | LAN `192.168.1.1`, WAN **`45.143.21.60` динамич. (dhcp)** | `100.70.207.97` | шлюз сети Александра | | **VPS-шлюз vm-nano** | `158.255.0.139` (статичный, Ubuntu 22.04) | `100.70.127.23` | публичный фронт, jc21 NPM + LE | ## Контейнеры / VM | ID | Имя | IP (LAN) | NetBird | Сервис | Порт | |---|---|---|---|---|---| | LXC 101 | npm | `192.168.1.221` | **`100.70.90.103`** (alex-npm) | jc21 NPM (внутр. роутер коробки) | 80/81/443 | | LXC 102 | assistant | `192.168.1.154` | `100.70.186.192` (alex-assistant) | openclaw «Алекс» + OmniRoute + Postgres | TG, 20128, 5432 | | LXC 103 | swarmclaw | `192.168.1.71` | — | **SwarmClaw** (UI на umnybot.ru) | 3456 | | LXC 104 | gitea | `192.168.1.96` | — | Gitea | 3000 | | LXC 105 | alex-apps | `192.168.1.14` (резерв) | — | Docker: filebrowser (облако) + Homepage (дашборд) | 8082, 3001 | | VM 100 | Zima | — | — | ZimaOS — **stopped, не используется** (KVM/VT-x слетел, заменён Docker-апками на 105) | — | Все контейнеры — `ip=dhcp` (резервации MAC→IP на Cudy для хоста .247 и apps .14). NetBird-агенты на 101/102 — autostart enabled. ## Домены и доступ | Домен | Доступ | Бэкенд | Через | |---|---|---|---| | **`umnybot.ru`** | 🌐 ПУБЛИЧНО | SwarmClaw (103:3456) | VPS NPM → NetBird → NPM коробки (id9) | | `omni.umnybot.ru` | 🔒 internal | OmniRoute (102:20128) | NetBird (напрямую `100.70.186.192:20128`) | | `cloud.umnybot.ru` | 🔒 internal | filebrowser (105:8082) | NetBird → NPM коробки | | `alex.umnybot.ru` | 🔒 internal | Homepage (105:3001) | NetBird → NPM коробки | | `git.umnybot.ru` | 🔒 internal | Gitea (104:3000) | NetBird → NPM коробки | | **`pve.umnybot.ru`** | 🌐 ПУБЛИЧНО + **Basic Auth** (`oleg`) | Proxmox UI (host:8006) | VPS NPM (LE id18, access-list `pve-basic-auth`) → NetBird → NPM коробки → Proxmox. ⚠️ root-пароль Proxmox слабый — сменить/2FA | | ~~zima/tg/rustdesk/plex/ha/oc/qbit/term~~ | удалены | были апки ZimaOS | VM100 не используется | | `ai.umnybot.ru` | — | домашний openclaw Олега (`10.0.0.239`) | не относится к коробке | > На VPS NPM публично сейчас — **`umnybot.ru`** (SwarmClaw) и **`pve.umnybot.ru`** (Proxmox за Basic Auth). Остальные домены сняты с VPS; их бэкенды доступны по NetBird/LAN. ## Доступ для управления ```bash # Хост Proxmox (нет своего NetBird → джамп через LXC102): ssh -i ~/.ssh/id_ed25519 root@100.70.186.192 # LXC102 assistant (NetBird) sshpass -p '1qaz!QAZ' ssh root@192.168.1.247 # → хост pve # pct exec -- ... для любого контейнера # NPM коробки (внутр. роутер): http://192.168.1.221:81 или http://100.70.90.103:81 # VPS-шлюз: ssh root@158.255.0.139 ; NPM http://158.255.0.139:81 # OmniRoute (internal): http://100.70.186.192:20128 # Web UI Proxmox: ssh -L 8006:192.168.1.247:8006 root@100.70.186.192 ``` Креды (root-пароли, NPM-логины, токены) — [[credentials]]. ## Ключевые факты / грабли - **WAN Александра динамический** (`dhcp`, аренда 24ч) → DNS на него вешать нельзя. Поэтому публичный доступ только через статичный VPS-шлюз. DDNS не нужен. - **Хост без NetBird** → управление джампом через LXC102. Стоящий TODO: поставить NetBird на сам хост. - **NetBird на NPM коробки (LXC101) = `100.70.90.103`** — единственная точка, куда бьёт VPS; NPM коробки роутит по Host-заголовку на внутренние бэкенды. - **ZimaOS (VM100) убран** — заменён Docker-апками (filebrowser+Homepage) на LXC105; виртуализация (VT-x) больше не нужна. - Сторож Антошки (LXC137) ходит к коробке по NetBird → LXC102 (см. [[credentials]]). - Бэкап старого netconfig хоста: `/root/interfaces.bak-alexmove` на pve. ## История изменений (2026-06-17) 1. Переезд хоста `10.0.0.147` → `192.168.1.247`; контейнеры на DHCP сами переехали на `192.168.1.x`. 2. ZimaOS (VM100) выведен из работы; подняты filebrowser+Homepage на новом LXC105. 3. Публичный доступ переведён с прямого проброса Cudy (откатан) на VPS-шлюз `158.255.0.139` по NetBird. 4. NetBird добавлен на NPM коробки (LXC101 = `100.70.90.103`). 5. `umnybot.ru` → SwarmClaw публично; остальное (omni/cloud/alex/git) — internal; 8 ZimaOS-доменов + `ai` удалены с VPS. 6. `pve.umnybot.ru` → Proxmox UI публично **за Basic Auth** (`oleg`, access-list `pve-basic-auth`) + LE-серт id18. Креды — в [[credentials]].