Files
knowledge-base/projects/benilux/umny-server-concept.md

19 KiB
Raw Blame History

date, type, status, tags, aliases
date type status tags aliases
2026-06-29 project concept
alexandr
umnybot
concept
cosmos
self-service
ai-services
media
nextcloud
концепция умного сервера Александра
umnybot concept
сервис-каталог Александра

🧠 Концепция «Умного сервера» Александра — единый ИИ-сервис с самообслуживанием

Развитие пилота ../dttb/ai-assistant-pilot/architecture в законченный продукт: «умный сервер с ИИ-сервисами», который продали клиенту. Цель — удобный личный кабинет, где Александр сам ставит и настраивает сервисы, всё за одним входом. Секреты — в ../dttb/ai-assistant-pilot/credentials и credentials.

TL;DR (что решили)

  • Витрина и автодеплойCosmos Cloud на хосте: один контейнер = реверс-прокси + авто-HTTPS + SSO/логин + App Store + защита (SmartShield) + мониторинг. Это «магазин сервисов», где Александр сам ставит приложения в один клик.
  • Железо — работаем в рамках (i3-2100, 2 ядра, 15 ГБ ОЗУ, уже ~⅔ занято). Лёгкие версии сервисов, без одновременной тяжёлой нагрузки, приоритизация. Честно: всё включить «на полную» эта коробка не потянет — концепция это учитывает.
  • Что работает сейчас: боты Алекс + Hermes, SwarmClaw, Homepage, Open WebUI, Nextcloud, Plex, торрент — с интеграцией «скачал → видно в облаке и медиа».
  • Бюджет ОЗУ — главный лимит, не диск и не CPU. См. #бюджет-ресурсов.

1. Что уже есть на коробке (инвентарь)

Сервер физически у Александра (КП Бенелюкс), Proxmox pve 192.168.1.247. Публичный вход — домены *.umnybot.ru через статичный VPS-шлюз 158.255.0.139 по NetBird (WAN Александра динамический, DNS на него вешать нельзя).

LXC Сервис RAM (выдано) Статус
101 NPM (внутр. реверс-прокси коробки) 512 МБ 🟢 работает
102 бот Алекс (openclaw @alex_umny_bot) + OmniRoute + Postgres ~4 ГБ 🟢 работает
103 SwarmClaw (umnybot.ru, публично) ~4 ГБ 🟢 работает
104 Gitea ~1 ГБ 🟢 работает
105 Homepage + filebrowser (Docker) ~1 ГБ 🟢 работает
VM100 ZimaOS удалена (VT-x слетел)

Свободно ОЗУ: ориентировочно 35 ГБ (нужно замерить free -m перед стартом — см. шаг 0). Диск: SSD 111 ГБ (система) + HDD 1.8 ТБ под медиа/торренты/облако — места достаточно.

Чего по ТЗ ещё нет

Nextcloud, медиасервер (Plex/«Flex»), торрент-клиент, Open WebUI, второй бот (Hermes на GLM 5.2), и сама платформа самообслуживания — её и делаем сердцем продукта.


2. Целевая архитектура

Интернет → *.umnybot.ru → VPS-шлюз 158.255.0.139 (NetBird)
                                  │
                    ┌─────────────┴─────────────┐
                    ▼                             ▼
          umnybot.ru (SwarmClaw)        app.umnybot.ru (Cosmos UI)
                                                 │  ← ЕДИНЫЙ ВХОД клиента
                    ┌────────────────────────────┼────────────────────────────┐
                    ▼              ▼              ▼              ▼              ▼
              Nextcloud         Plex          qBittorrent   Open WebUI    бот Hermes
              cloud.*          media.*         dl.*          chat.*        (TG + web)
                                                 │
                          скачал торрент → /mnt/Work/media (HDD 1.8 ТБ)
                                                 │
                          ├─→ Plex видит библиотеку (media volume)
                          └─→ Nextcloud External Storage (тот же путь) → видно в облаке

Почему Cosmos Cloud (а не CasaOS/Runtipi/Portainer)

Выбран как «магазин сервисов» по ключевому критерию ТЗсамостоятельная установка + безопасный публичный доступ:

  • Всё-в-одном: встроенный реверс-прокси + автоматический Let's Encrypt + страница логина/2FA (свой SSO) + App Store + контейнерный мониторинг — одним сервисом. Не нужно собирать NPM+authentik+Portainer+Homepage по кусочкам.
  • Безопасен для паблика: SmartShield (анти-брутфорс, гео/rate-limit, изоляция приложений) — у CasaOS этого нет, его в интернет голым выставлять нельзя.
  • Один клик для клиента: Александр заходит в app.umnybot.ru, видит каталог, жмёт «Install» — Cosmos сам поднимает контейнер, выдаёт поддомен и HTTPS.
  • Сосуществует с текущим NPM: Cosmos берёт на себя новые сервисы, существующие (SwarmClaw, pve) остаются за NPM коробки. Мигрируем постепенно, ничего не ломая.

Лёгкий по ресурсам (сам Cosmos ~150250 МБ ОЗУ) — критично для этой коробки.


3. Сервисы — что и как

3.1 Боты (ИИ-ядро, уже частично есть)

Бот Движок Канал Ключ/модель Статус
Алекс openclaw (LXC102) Telegram @alex_umny_bot + веб OmniRoute (Codex/Max) 🟢 есть
Hermes (новый) Hermes Agent Telegram + веб-дашборд GLM 5.2 на ключе Олега 🔜 поставить

Hermes для Александра — по образцу German (LXC141, см. ../../decisions/2026-06-18-german-hermes-agent-deploy):

  • Отдельный LXC (или контейнер в Cosmos), Hermes Agent + gateway Telegram + dashboard hermes.umnybot.ru.
  • Модель — GLM 5.2 напрямую (ключ Олега) или через OmniRoute-провайдер glm/*. ⚠️ В KB у glm/glm-5.1 был баланс 0 — проверить баланс ключа GLM 5.2 перед стартом (см. #открытые-вопросы).
  • ОЗУ: ~11.5 ГБ. Это самый заметный новый потребитель после медиа — ставить, когда подтвердим бюджет.

SwarmClaw для клиента — сейчас это админский оркестратор Олега (umnybot.ru). Приспособить можно так:

  • Завести отдельный read-only/ограниченный аккаунт Александру (доступ к чату с агентами, без управления узлами/креденшалами).
  • ⚠️ База swarmclaw.db хранит API-ключи всех клиентов — не давать Александру админ-доступ, только пользовательский профиль. Если нужна полная изоляция — отдельный инстанс SwarmClaw для него (но это +4 ГБ ОЗУ, коробка не потянет вместе с медиа). Рекомендация: ограниченный аккаунт в текущем инстансе.

3.2 Homepage — информационный портал

  • Уже есть на LXC105. Доработать: плитки на ВСЕ ресурсы Александра (боты, облако, медиа, торрент, Open WebUI, Cosmos), живые виджеты (Proxmox, Nextcloud, qBittorrent).
  • Сделать стартовой страницей home.umnybot.ru — первое, что видит клиент. Можно вынести как «дашборд» внутри Cosmos.
  • Образец конфига — ../../decisions/2026-06-27-homepage-dashboard-lxc145.

3.3 Nextcloud — личное облако

  • Лёгкая установка, НЕ AIO (AIO тянет 10+ контейнеров и 10 ГБ ОЗУ — коробка не вытянет). Ставим nextcloud:apache + отдельный MariaDB, или официальный образ через Cosmos App Store.
  • Данные — на HDD /mnt/pve/Work (1.8 ТБ).
  • Интеграция с торрентом: External Storage → локальная папка /mnt/Work/media (куда качает qBittorrent). Скачанное сразу видно в облаке.
  • Домен cloud.umnybot.ru. ОЗУ ~11.5 ГБ.

3.4 Plex — мультимедиа («Flex»)

  • Plex Media Server (выбран клиентом), библиотека на HDD /mnt/Work/media.
  • ⚠️ Честное ограничение: i3-2100 (2011, без рабочего QuickSync) не тянет транскодинг, особенно 4K. Работает только Direct Play — файл должен подходить устройству напрямую (формат/кодек/битрейт). Для ТВ/телефона в большинстве случаев ок; 4K HEVC на старый ТВ — будет тормозить. Это нужно проговорить с клиентом.
  • Интеграция: та же папка /mnt/Work/media, что у торрента и Nextcloud → скачал → появилось в Plex. Домен media.umnybot.ru. ОЗУ ~1 ГБ (без транскода).

3.5 Торрент — qBittorrent

  • qbittorrent (linuxserver), WebUI dl.umnybot.ru, загрузки в /mnt/Work/media (общая папка с Plex и Nextcloud — ключ всей интеграции).
  • Лёгкий, ~256512 МБ ОЗУ.
  • Прямой доступ из Nextcloud и Plex реализуется именно через общий путь загрузок — отдельные «коннекторы» не нужны, всё через одну директорию на HDD.

3.6 Open WebUI — чат с ИИ через браузер

  • open-webui, бэкенд — OmniRoute (http://<omni>:20128/v1), как на LXC142 (../../decisions/2026-06-22-open-webui-deploy).
  • Домен chat.umnybot.ru. Клиенту — красивый веб-чат со всеми моделями без Telegram.
  • ОЗУ ~1 ГБ (embedding-модель грузится с HF при первом старте — учесть медленную загрузку из РФ).

3.7 Что ещё полезного предложить Александру

  • Vaultwarden — менеджер паролей (на дом/семью), ~128 МБ. Дёшево и очень полезно.
  • Immich — фото-бэкап с телефонов (замена Google Photos). ⚠️ Тяжёлый (ML-распознавание лиц) — только если добавить ОЗУ или отключить ML.
  • Uptime Kuma — мониторинг доступности всех сервисов, ~128 МБ, плитка в Homepage.
  • AdGuard Home — блокировка рекламы/трекеров на весь дом (DNS), ~128 МБ. Хорошо ложится на тему «обхода РКН» которая у клиента уже есть.
  • Paperless-ngx — архив документов с распознаванием (для домовладельца удобно). Тяжеловат, опционально.

Всё это — карточки в Cosmos App Store, клиент ставит сам когда захочет. Мы лишь готовим каталог и проверяем, что лёгкие.


4. Бюджет ресурсов

Главный лимит — ОЗУ (15 ГБ), а не диск/CPU. Нельзя поднять всё сразу. Грубая раскладка «реалистичного» набора:

Сервис ОЗУ Приоритет
Текущее (Алекс+OmniRoute, SwarmClaw, Gitea, NPM, Homepage) ~10 ГБ уже работает
Cosmos Cloud (платформа) ~0.25 ГБ P0
qBittorrent ~0.4 ГБ P1
Plex (Direct Play) ~1 ГБ P1
Nextcloud (light) ~1.5 ГБ P1
Open WebUI ~1 ГБ P2
Hermes (GLM 5.2) ~1.5 ГБ P2
Vaultwarden / Uptime Kuma / AdGuard ~0.4 ГБ P3

Сумма P0+P1 уже подводит к потолку. Варианты разруливания (для обсуждения с клиентом):

  1. Поджать текущее — SwarmClaw/Gitea Александру не критичны; SwarmClaw можно ужать или вынести на инфру Олега, освободив ~4 ГБ.
  2. Апгрейд ОЗУ — плата ZOTAC H61 держит до 1632 ГБ DDR3 (2 слота). Докупить планки = весь стек комфортно. Дешёвый DDR3 б/у. Самое разумное вложение, если клиент хочет «всё».
  3. Тяжёлое — на инфру Олега — Open WebUI/Hermes держать у Олега, отдавать через *.umnybot.ru. Разгружает коробку, но появляется зависимость от Олега (против идеи автономности).

Рекомендация: стартуем P0+P1 в рамках текущего железа (поджав SwarmClaw), параллельно предлагаем клиенту апгрейд ОЗУ до 32 ГБ под полный набор.


5. План внедрения (по шагам, с проверками)

Шаг 0 — замер. free -m, df -h /mnt/pve/Work, pct list + RAM каждого LXC. Зафиксировать реальный свободный объём ОЗУ. если свободно ≥3 ГБ — продолжаем; если нет — сначала поджать SwarmClaw/обсудить апгрейд.

Шаг 1 — Cosmos Cloud. Поставить на хост (или в LXC с nesting). Подключить домен app.umnybot.ru через VPS-шлюз. Настроить SSO/2FA. клиент логинится, видит пустой App Store и текущие контейнеры.

Шаг 2 — общая медиа-папка + торрент. Создать /mnt/pve/Work/media. Поставить qBittorrent (volume = эта папка). тестовая закачка появляется в папке.

Шаг 3 — Plex. Библиотека на /mnt/Work/media. тестовый файл играет Direct Play на ТВ/телефоне клиента.

Шаг 4 — Nextcloud (light). External Storage → /mnt/Work/media. скачанный торрент виден и в облаке, и в Plex (проверка сквозной интеграции — ядро ТЗ).

Шаг 5 — Open WebUI. Бэкенд OmniRoute. чат отвечает в браузере.

Шаг 6 — Hermes (GLM 5.2). Сначала проверить баланс ключа GLM. Поставить, Telegram + hermes.umnybot.ru. бот отвечает.

Шаг 7 — Homepage как портал. Плитки на всё, живые виджеты. Сделать стартовой. клиент с одной страницы попадает в любой сервис.

Шаг 8 — каталог App Store + инструкция. Подготовить карточки лёгких приложений (Vaultwarden, Uptime Kuma, AdGuard) + короткая памятка клиенту «как поставить сервис самому». клиент ставит что-то сам в один клик.


6. Открытые вопросы (уточнить у Олега/клиента)

  • Баланс ключа GLM 5.2 — в KB glm/glm-5.1 был «баланс 0». Hermes на нём не заведётся. Проверить/пополнить.
  • Апгрейд ОЗУ до 32 ГБ DDR3 — готов ли клиент на железо? Определяет, P1 или полный набор.
  • Plex и транскод — проговорить ограничение Direct Play (4K на старом ТВ будет тормозить). Возможно, клиенту хватит — но ожидания выровнять заранее.
  • SwarmClaw для клиента — ограниченный аккаунт в текущем инстансе (рекомендация) или поджать/вынести? Влияет на бюджет ОЗУ.
  • Cosmos vs текущий NPM — Cosmos на новые сервисы, NPM коробки остаётся на SwarmClaw/pve; или со временем всё на Cosmos? (постепенная миграция).
  • NetBird на сам хост — давно висящий TODO (../dttb/proxmox-pve-147); упростит управление, стоит закрыть в ходе работ.

Связанное