server-monitor-manager/agents/_salvage-2026-08-18/smm-deliverables/Старые задачи/smm-install-oneliner-2026-08-13.md
Ochenstarik 23eb3f5233 chore(agents): разбор рабочих папок с диска на 2026-08-18
Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в
домашней папке, перенесены в agents/. Разложено по агентам там, где имя
файла позволяло определить автора; остальное — в _salvage-2026-08-18/
и разбирается вручную.

Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных
рабочих копий: она существовала только на диске.

Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не
попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 14:19:54 +07:00

6.3 KiB
Raw Permalink Blame History

Установка на серверы — одной командой

Работает после выпуска v0.1.0-alpha.14. Сейчас опубликован alpha.13, а в нём подпись без сертификата, поэтому проверка на нём откажет. Выпуск alpha.14 — задание Hermes.

Проверить, что релиз вышел:

curl -fsSI https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/v0.1.0-alpha.14/smm-setup.sh | head -1

Ответ HTTP/2 200 — можно ставить. 404 — релиз ещё не опубликован.


Роли

Нужны четыре машины: Hub плюс три Node. Hub и Node нельзя совмещать — оба пишут /etc/wireguard/smm0.conf.

Машина Роль Требования
A, публичный IP Control Hub свободны TCP 7443, UDP 51820
B Node ai-agent только исходящий доступ
C Node home только исходящий доступ
D Node second только исходящий доступ, годится домашняя ВМ

Ниже всё для x86_64. Для arm64 замените linux-x64 на linux-arm64.

Снимите снапшоты у провайдера до начала.


Hub — одна команда

Подставьте публичное имя сервера A вместо ВАШ-ХОСТ:

TAG=v0.1.0-alpha.14 ARCH=linux-x64 HOST=ВАШ-ХОСТ; \
B=https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/$TAG; \
sudo apt-get update -qq && sudo apt-get install -y -qq --no-install-recommends curl ca-certificates openssl coreutils tar netcat-openbsd && \
mkdir -p ~/smm && cd ~/smm && \
for f in smm-setup.sh smm-setup.sh.sha256 server-monitor-manager-$ARCH.tar.gz server-monitor-manager-$ARCH.tar.gz.sha256 server-monitor-manager-manifest.json server-monitor-manager-manifest.sig server-monitor-manager-manifest.pem; do curl -fsSL -O "$B/$f"; done && \
sha256sum -c smm-setup.sh.sha256 && sha256sum -c server-monitor-manager-$ARCH.tar.gz.sha256 && \
sudo bash smm-setup.sh install-control server-monitor-manager-$ARCH.tar.gz "$HOST" 7443 && \
sudo bash smm-setup.sh mesh-init "$HOST" 51820

Команда скачивает установщик, архив и все три файла подписи, сверяет контрольные суммы, ставит Control и поднимает mesh. Проверка подписи manifest выполняется внутри install-control — если она не сойдётся, установка прервётся.

Затем откройте в панели хостера TCP 7443 и UDP 51820 и, если включён ufw:

sudo ufw allow 7443/tcp comment 'SMM Control' && sudo ufw allow 51820/udp comment 'SMM WireGuard'

Проверка:

sudo curl -sf --cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt https://ВАШ-ХОСТ:7443/healthz && echo " — Control отвечает"

Node — одна команда

На каждом из B, C, D. Сначала на Hub выпустите код непосредственно перед установкой — он живёт 10 минут:

sudo bash ~/smm/smm-setup.sh node-code ai-agent

Для C — home, для D — second. Скопируйте строку SMMNODE2.....

Затем на Node:

TAG=v0.1.0-alpha.14 ARCH=linux-x64; \
B=https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/$TAG; \
sudo apt-get update -qq && sudo apt-get install -y -qq --no-install-recommends curl ca-certificates openssl coreutils tar netcat-openbsd && \
mkdir -p ~/smm && cd ~/smm && \
for f in smm-setup.sh smm-setup.sh.sha256 server-monitor-manager-$ARCH.tar.gz server-monitor-manager-$ARCH.tar.gz.sha256 server-monitor-manager-manifest.json server-monitor-manager-manifest.sig server-monitor-manager-manifest.pem; do curl -fsSL -O "$B/$f"; done && \
sha256sum -c smm-setup.sh.sha256 && sha256sum -c server-monitor-manager-$ARCH.tar.gz.sha256 && \
sudo bash smm-setup.sh install-node server-monitor-manager-$ARCH.tar.gz

Установщик спросит код — вставьте SMMNODE2...., ввод скрытый. Сверьте показанный отпечаток CA с тем, что выдаёт Hub по команде sudo bash ~/smm/smm-setup.sh control-ca-fingerprint, и введите yes.

На выходе появится SMMPEER1.... — скопируйте и активируйте на Hub:

sudo bash ~/smm/smm-setup.sh peer-add 'SMMPEER1....'

После всех трёх на Hub:

sudo bash ~/smm/smm-setup.sh mesh-status

Должны быть три строки active со свежими handshake.


Приёмка

С вашей машины, из WSL или Git Bash, в клоне репозитория:

export HUB_SSH_HOST=A HUB_SSH_USER=пользователь
export SOURCE_SSH_HOST=B SOURCE_SSH_USER=пользователь
export SSH_IDENTITY_FILE="$HOME/.ssh/id_ed25519"
export SOURCE_NODE_ID=ai-agent HOME_NODE_ID=home SECOND_NODE_ID=second
export HOME_WG_IP=10.77.0.x SECOND_WG_IP=10.77.0.y
export TARGET_PORT=22
bash tests/acceptance/three-server-mesh.sh

Адреса возьмите из mesh-status. Этот прогон ничего не перезагружает. Успех — THREE_SERVER_ACCEPTANCE=PASS.

Полная приёмка добавляет перезагрузку Hub и источника — делать в низкий трафик:

SMM_ACCEPT_RESTORE=1 SMM_ACCEPT_REBOOT=1 bash tests/acceptance/three-server-mesh.sh

Откат

sudo bash ~/smm/smm-setup.sh uninstall-agent --purge
sudo bash ~/smm/smm-setup.sh uninstall-control --confirm-destroy-control
sudo systemctl disable --now wg-quick@smm0 2>/dev/null || true
sudo rm -f /etc/wireguard/smm0.conf /etc/sysctl.d/90-ochenstarik-smm-mesh.conf
sudo nft delete table inet ochenstarik_smm 2>/dev/null || true

Аварийно отключить mesh, не трогая Control, Agent, SSH и 3x-ui:

sudo ochenstarik-smm-emergency mesh-disable