Задания, отчёты и патчи, лежавшие в 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>
6.3 KiB
Установка на серверы — одной командой
Работает после выпуска 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