Add Windows SSH monitoring MVP #1
12 changed files with 499 additions and 71 deletions
153
README.md
153
README.md
|
|
@ -1,53 +1,78 @@
|
||||||
# Server Monitor Manager
|
# Server Monitor Manager
|
||||||
|
|
||||||
Лёгкая система мониторинга и безопасного управления Linux-серверами с одного ПК. Первый клиент создаётся для Windows; после стабилизации протокола появятся клиенты для других настольных систем и мобильных устройств.
|
**English** · [Русский](docs/i18n/README.ru.md) · [Español](docs/i18n/README.es.md) · [简体中文](docs/i18n/README.zh-CN.md) · [हिन्दी](docs/i18n/README.hi.md) · [العربية](docs/i18n/README.ar.md) · [Português](docs/i18n/README.pt-BR.md) · [Français](docs/i18n/README.fr.md) · [Deutsch](docs/i18n/README.de.md) · [日本語](docs/i18n/README.ja.md) · [한국어](docs/i18n/README.ko.md) · [Türkçe](docs/i18n/README.tr.md)
|
||||||
|
|
||||||
## Основные задачи
|
Server Monitor Manager is a lightweight, Windows-first application for monitoring Linux servers, opening direct SSH sessions, and explicitly controlling secure connections between servers. It is designed for personal infrastructure and small fleets where a heavy monitoring platform, Kubernetes, or a public API on every node would be unnecessary.
|
||||||
|
|
||||||
- единая панель для нескольких личных и рабочих серверов;
|
The current alpha combines a packaged WinUI 3 desktop client, an ASP.NET Core control service, a small outbound Linux agent, SQLite storage, and a WireGuard data plane managed by restrictive nftables policies.
|
||||||
- CPU/load, память, корневой диск, задержка и uptime через ограниченный SSH forced-command;
|
|
||||||
- SSH-терминал и сохранённые подключения без передачи приватных ключей серверу управления;
|
|
||||||
- группы серверов, теги, избранное и сводные предупреждения;
|
|
||||||
- явное включение и ручное отключение защищённых связей между серверами;
|
|
||||||
- ограниченный доступ любого AI-агента к выбранному серверу разработки;
|
|
||||||
- маленький Linux-агент без тяжёлой панели, Docker и отдельной базы данных на каждом узле.
|
|
||||||
|
|
||||||
## Архитектура
|
## What it does
|
||||||
|
|
||||||
|
- monitors CPU/load, memory, swap, disks, inodes, network activity, uptime, latency, SSH, and WireGuard;
|
||||||
|
- keeps several server profiles, groups, tags, favorites, alerts, and short local metric history;
|
||||||
|
- generates a dedicated Ed25519 SSH key and stores private material only on the Windows device;
|
||||||
|
- opens direct SSH terminals without sending a private terminal key to the Hub;
|
||||||
|
- joins servers through one Hub with a public IP; secondary servers need outbound access only;
|
||||||
|
- creates directional Links such as `AI agent → Home server:22` and disables each Link independently;
|
||||||
|
- limits Links by source, destination `/32`, TCP/UDP port, policy version, and optional TTL;
|
||||||
|
- uses one-time enrollment tokens, CSR-based certificates, mTLS, role separation, idempotency, and audit records;
|
||||||
|
- runs without Docker or a database on every Node.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Windows client -- ограниченный SSH --> главный WireGuard Hub с белым IP
|
Windows desktop -- mTLS/HTTPS --> Control Hub (ASP.NET Core + SQLite)
|
||||||
^
|
| |
|
||||||
| исходящие WireGuard-соединения
|
+-------- direct SSH ----------+
|
||||||
|
|
|
|
||||||
AI-агент / Home / другие серверы
|
WireGuard + nftables
|
||||||
|
/ | \
|
||||||
|
AI-agent Home Server 2
|
||||||
```
|
```
|
||||||
|
|
||||||
Hub объединяет узлы в приватной подсети, но по умолчанию запрещает транзит между ними. Каждая связь `источник → цель` включается и отключается отдельно. Поэтому можно оставить `AI-агент → Home`, отключив только `AI-агент → Server2`. Обратное направление не появляется автоматически.
|
The Hub has a public IP and coordinates the fleet. Nodes initiate their own WireGuard and mTLS connections, so a home server behind NAT does not need a white/dedicated IP or an inbound public port. Transit is denied by default. A Link is directional: enabling `AI-agent → Home` does not enable `Home → AI-agent` or access to another server.
|
||||||
|
|
||||||
Подробности: [архитектура](docs/architecture.md), [модель безопасности](docs/security-model.md), [план разработки](docs/roadmap.md) и [контракт Linux-установщика](docs/installer-contract.md).
|
The control plane and data plane are separated:
|
||||||
|
|
||||||
## Планируемая структура
|
- **Control plane:** ASP.NET Core 10, SQLite inventory, metrics, policies, history, audit, enrollment, and an authenticated event stream.
|
||||||
|
- **Data plane:** WireGuard peers and persistent nftables ACLs on the Hub.
|
||||||
|
- **Desktop:** packaged WinUI 3 client with DPAPI-protected operator certificate and SSH identity.
|
||||||
|
- **Agent:** self-contained Linux binary for `amd64` and `arm64`; it only creates outbound mTLS sessions.
|
||||||
|
|
||||||
|
See [architecture](docs/architecture.md), [security model](docs/security-model.md), [roadmap](docs/roadmap.md), and [installer contract](docs/installer-contract.md).
|
||||||
|
|
||||||
|
## Repository layout
|
||||||
|
|
||||||
```text
|
```text
|
||||||
src/
|
src/ServerMonitorManager.Desktop/ Windows WinUI 3 client
|
||||||
ServerMonitorManager.Desktop/ WinUI 3, Windows-first
|
src/ServerMonitorManager.Core/ Shared contracts and models
|
||||||
ServerMonitorManager.Core/ общие модели и сценарии
|
src/ServerMonitorManager.Control/ Hub API, SQLite, events, and policy coordination
|
||||||
ServerMonitorManager.Agent/ лёгкий Linux-агент
|
src/ServerMonitorManager.Agent/ Outbound Linux monitoring agent
|
||||||
ServerMonitorManager.Control/ API, события, аудит и координация
|
tests/ Control-plane tests
|
||||||
docs/
|
docs/ Architecture, security, roadmap, translations
|
||||||
deploy/
|
|
||||||
tests/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Текущий статус
|
The Linux installer is maintained in [`ochenstarik-ui/lightweight-server`](https://github.com/ochenstarik-ui/lightweight-server) as `ochenstarik-server-monitor-manager.sh`. Release binaries are attached to [Server Monitor Manager releases](https://github.com/ochenstarik-ui/server-monitor-manager/releases).
|
||||||
|
|
||||||
Проект находится на стадии первого тестируемого Windows MVP. Репозиторий переименован из `mobile-server-manager`, потому что первой целевой платформой теперь является Windows. Клиент создаёт отдельный Ed25519-ключ, сохраняет профили локально и получает живые метрики серверов через системный OpenSSH.
|
## Quick start: Hub and two Nodes
|
||||||
|
|
||||||
Установочный скрипт Linux-части хранится в репозитории [`ochenstarik-ui/lightweight-server`](https://github.com/ochenstarik-ui/lightweight-server) под именем `ochenstarik-server-monitor-manager.sh`. Он устанавливает режим Hub или Node, создаёт отдельного пользователя `ochenstarik-monitor` и SSH forced-command: ключ приложения не получает shell, PTY, port forwarding или право выполнять произвольные команды.
|
Use a fresh Debian or Ubuntu server with a public IP as the Hub. Download and inspect the installer before running it:
|
||||||
|
|
||||||
В разработческой ветке также появился первый срез постоянного control layer: ASP.NET Core 10 Hub, SQLite и исходящий Linux Agent. Регистрация использует одноразовый token и CSR, дальнейшие heartbeat-запросы — mTLS. Этот слой ещё не заменяет проверенный SSH/WireGuard установщик: сначала будут добавлены release-бинарники, systemd-установка и миграция Links.
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
Alpha-установка постоянного слоя после обычных ролей Hub/Node:
|
Open the selected WireGuard UDP port (default `51820`) and Control Hub TCP port `7443`. Create enrollment codes on the Hub:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ochenstarik-smm node-code home
|
||||||
|
sudo ochenstarik-smm node-code ai-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
On each secondary server, use the same installer and select the Node role. Paste the code for that Node. The private WireGuard key is created locally and never leaves the Node. Then install the persistent control layer:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Hub
|
# Hub
|
||||||
|
|
@ -55,62 +80,48 @@ sudo ./ochenstarik-server-monitor-manager.sh install-control-hub
|
||||||
sudo ./ochenstarik-server-monitor-manager.sh control-code home
|
sudo ./ochenstarik-server-monitor-manager.sh control-code home
|
||||||
sudo ./ochenstarik-server-monitor-manager.sh control-device-code windows-pc
|
sudo ./ochenstarik-server-monitor-manager.sh control-device-code windows-pc
|
||||||
|
|
||||||
# соответствующий Node — вставить полученный SMMCTL1
|
# Node: paste the corresponding SMMCTL1 code when prompted
|
||||||
sudo ./ochenstarik-server-monitor-manager.sh install-control-agent
|
sudo ./ochenstarik-server-monitor-manager.sh install-control-agent
|
||||||
```
|
```
|
||||||
|
|
||||||
Архив выбирается автоматически для amd64 или arm64 и проверяется по SHA-256. Для Control Hub требуется входящий TCP-порт `7443`; Agent открытых входящих портов не создаёт.
|
The installer selects the `amd64` or `arm64` archive and verifies its SHA-256 checksum. The `SMMDEV1` code enrolls the Windows application: the app creates its operator key locally, confirms the Hub CA fingerprint, obtains a separate certificate, and protects it with Windows DPAPI.
|
||||||
|
|
||||||
Код `SMMDEV1` предназначен только для Windows-клиента: приложение локально создаёт operator key и получает отдельный mTLS-сертификат. Agent identities не могут читать весь inventory, изменять Links или подключаться к потоку операторских событий.
|
## Windows client
|
||||||
|
|
||||||
После регистрации кнопка `Control Hub` сохраняет operator certificate через DPAPI. Панель Mesh автоматически переключается с переходного SSH-протокола на SQLite Control API, а изменения Links и heartbeat поступают через защищённый поток событий без ручного опроса интерфейса.
|
Requirements for building from source:
|
||||||
|
|
||||||
Проверка control layer для разработчиков:
|
- Windows 10 version 1809 or later / Windows 11;
|
||||||
|
- .NET 10 SDK;
|
||||||
|
- Visual Studio 2022 with Windows App SDK tooling, or compatible CLI workloads;
|
||||||
|
- system OpenSSH client.
|
||||||
|
|
||||||
```bash
|
```powershell
|
||||||
dotnet build ServerMonitorManager.slnx --configuration Release
|
dotnet build ServerMonitorManager.slnx --configuration Release
|
||||||
dotnet test tests/ServerMonitorManager.Control.Tests/ServerMonitorManager.Control.Tests.csproj --configuration Release
|
dotnet test tests/ServerMonitorManager.Control.Tests/ServerMonitorManager.Control.Tests.csproj --configuration Release
|
||||||
```
|
```
|
||||||
|
|
||||||
## Быстрый тест на трёх серверах
|
In the application, generate or copy the monitoring SSH key, add the Hub profile, mark it as the Mesh Hub, and use **Control Hub** to paste the `SMMDEV1` code. The Mesh view then reads inventory and Links from the authenticated Control API and receives live Link/heartbeat events.
|
||||||
|
|
||||||
1. Запустите Windows-клиент и нажмите `SSH-ключ` → `Копировать`.
|
## Security model
|
||||||
2. На сервере с белым IP скачайте установщик и выберите режим Hub:
|
|
||||||
|
|
||||||
```bash
|
- no shared root password and no Node private WireGuard key on the Hub;
|
||||||
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/agent/server-monitor-installer/ochenstarik-server-monitor-manager.sh
|
- separate monitoring, terminal, Agent, Operator, and AI-automation identities;
|
||||||
chmod 700 ochenstarik-server-monitor-manager.sh
|
- SSH monitoring uses a root-owned forced command without shell, PTY, or forwarding;
|
||||||
sudo ./ochenstarik-server-monitor-manager.sh hub
|
- Agent certificates can only submit heartbeat data for their own Node;
|
||||||
```
|
- Operator certificates are required for inventory, Links, and event streaming;
|
||||||
|
- Link traffic is denied by default and allowed only by explicit nftables rules;
|
||||||
|
- disabling a Link persists the desired state before the firewall rule is removed;
|
||||||
|
- idempotency keys prevent a retry from repeating a policy side effect;
|
||||||
|
- secrets and production configuration must never be committed to Git.
|
||||||
|
|
||||||
3. Откройте выбранный UDP-порт WireGuard (по умолчанию `51820`) и создайте коды узлов:
|
## Current status
|
||||||
|
|
||||||
```bash
|
`v0.1.0-alpha.2` is an early testing release, not a production security appliance. Windows and Linux builds, six control-plane tests, Bash syntax checks, self-contained `linux-x64`/`linux-arm64` artifacts, and checksums are automated in GitHub Actions.
|
||||||
sudo ochenstarik-smm node-code ai-agent
|
|
||||||
sudo ochenstarik-smm node-code home
|
|
||||||
sudo ochenstarik-smm node-code server2
|
|
||||||
```
|
|
||||||
|
|
||||||
4. На каждом вторичном сервере запустите `sudo ./ochenstarik-server-monitor-manager.sh node`, вставьте SSH-ключ приложения и код именно этого узла. Node локально создаст WireGuard-ключ и покажет запрос `SMMREQ1`.
|
Implemented: Windows SSH monitoring, Hub/Node WireGuard installer, directional Links, one-time enrollment, mTLS Agent and Operator identities, SQLite control state, audit, authenticated event stream, and Windows Control API integration.
|
||||||
5. На Hub выполните `sudo ochenstarik-smm node-enroll`, вставьте запрос по скрытому приглашению и верните полученный `SMMACK1` в установщик Node. Белый IP вторичным серверам не нужен.
|
|
||||||
6. В приложении добавьте главный сервер с пользователем `ochenstarik-monitor` и отметьте `Это главный Mesh Hub`.
|
|
||||||
7. Нажмите обновление в панели связей, выберите источник и цель, затем `Разрешить` или `Отключить`.
|
|
||||||
|
|
||||||
Приватный ключ хранится в локальном каталоге packaged-приложения Windows. Первый SSH-host key принимается в режиме `accept-new`, затем проверяется по отдельному `known_hosts` приложения.
|
Still planned: certificate revoke/re-enroll, offline Agent buffering and downsampling, reconnect reconciliation, kill-switch failure tests, a 50–100 Node load test, signed Windows installer, and desktop/mobile clients for additional platforms.
|
||||||
|
|
||||||
Для предварительной проверки вместо запуска через pipe скачайте файл, выполните `bash -n` и просмотрите его содержимое.
|
## Project policy
|
||||||
|
|
||||||
Enrollment-код действует 10 минут и погашается после первой успешной регистрации. Приватный WireGuard-ключ создаётся и остаётся только на Node.
|
The project is under active alpha development. Review scripts and release checksums before testing, use disposable or backed-up servers, and do not expose the Control port without firewall restrictions. A source license will be selected before the first stable public release; until then, the repository does not grant an implied open-source license.
|
||||||
|
|
||||||
## Принципы безопасности
|
|
||||||
|
|
||||||
- никаких общих root-паролей и приватных SSH-ключей на Hub;
|
|
||||||
- отдельный ключ мониторинга и pinned `known_hosts`; код регистрации Node передаётся один раз вручную;
|
|
||||||
- отдельная идентичность для пользователя, устройства, агента и автоматизации;
|
|
||||||
- опасные действия требуют повторного подтверждения и попадают в неизменяемый аудит;
|
|
||||||
- доступ AI-агенту выдаётся отдельному Unix-пользователю и SSH-ключу с минимальными правами;
|
|
||||||
- отключение Link сразу удаляет разрешённую пару из nftables на Hub, не затрагивая другие связи узла.
|
|
||||||
|
|
||||||
## Лицензия и секреты
|
|
||||||
|
|
||||||
Лицензия будет выбрана до публикации первого исходного релиза. Токены регистрации, ключи WireGuard, SSH-ключи, сертификаты устройств и production-конфигурация не должны попадать в Git.
|
|
||||||
|
|
|
||||||
37
docs/i18n/README.ar.md
Normal file
37
docs/i18n/README.ar.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · **العربية** · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager هو تطبيق خفيف يبدأ بمنصة Windows لمراقبة خوادم Linux وفتح جلسات SSH مباشرة والتحكم الصريح في الاتصالات الآمنة بين الخوادم. صُمم للبنية الشخصية والمجموعات الصغيرة من دون لوحة ثقيلة أو Kubernetes أو API عام على كل عقدة.
|
||||||
|
|
||||||
|
## الميزات
|
||||||
|
|
||||||
|
- مراقبة CPU/load والذاكرة وswap والأقراص وinode والشبكة وuptime وزمن الاستجابة وSSH وWireGuard؛
|
||||||
|
- ملفات خوادم ومجموعات ووسوم ومفضلة وتنبيهات وسجل محلي قصير؛
|
||||||
|
- مفتاح SSH Ed25519 مستقل يبقى مفتاحه الخاص على جهاز Windows؛
|
||||||
|
- طرفية SSH مباشرة من دون إرسال المفتاح الخاص إلى Hub؛
|
||||||
|
- شبكة نجمية عبر Hub ذي IP عام، بينما تحتاج Nodes إلى اتصال صادر فقط؛
|
||||||
|
- روابط اتجاهية مثل `AI agent → Home server:22` يمكن فصلها بشكل مستقل؛
|
||||||
|
- سياسات `/32` وTCP/UDP والمنفذ والإصدار وTTL؛
|
||||||
|
- تسجيل لمرة واحدة وCSR وmTLS وفصل أدوار ومنع التكرار وتدقيق.
|
||||||
|
|
||||||
|
## البنية والتثبيت
|
||||||
|
|
||||||
|
يتصل عميل Windows عبر mTLS/HTTPS بـ Control Hub مبني على ASP.NET Core 10 وSQLite. ينشئ Linux Agent جلسات صادرة فقط. ينقل WireGuard البيانات وتمنع nftables العبور افتراضياً. الرابط أحادي الاتجاه، ولا يحتاج الخادم المنزلي خلف NAT إلى IP عام.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
افتح UDP `51820` وTCP `7443` على Hub، وأنشئ رموز Nodes وثبت بقية الخوادم بدور Node. ثم استخدم `install-control-hub` و`control-code` و`control-device-code` و`install-control-agent`. يختار المثبت `amd64` أو `arm64` ويتحقق من SHA-256.
|
||||||
|
|
||||||
|
## الأمان والحالة
|
||||||
|
|
||||||
|
لا توجد كلمة مرور root مشتركة ولا يغادر مفتاح WireGuard الخاص عقدته. هويات monitoring وterminal وAgent وOperator وأتمتة AI منفصلة. يستخدم SSH أمراً إجبارياً بلا shell أو PTY أو forwarding؛ يقيّد mTLS الصلاحيات؛ تسمح nftables بالروابط الصريحة فقط؛ ويحفظ SQLite الحالة المطلوبة والتدقيق قبل تعديل الجدار الناري.
|
||||||
|
|
||||||
|
الإصدار `v0.1.0-alpha.2` للاختبار. يتضمن عميل Windows ومثبت Hub/Node وLinks وmTLS وSQLite والتدقيق والأحداث. المتبقي: التخزين دون اتصال، إلغاء الشهادات، مصالحة إعادة الاتصال، اختبار 50–100 Node ومثبت Windows موقّع.
|
||||||
|
|
||||||
|
الوثائق: [البنية](../architecture.md)، [الأمان](../security-model.md)، [الخطة](../roadmap.md)، [عقد المثبت](../installer-contract.md).
|
||||||
37
docs/i18n/README.de.md
Normal file
37
docs/i18n/README.de.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · **Deutsch** · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager ist eine schlanke, zunächst für Windows entwickelte Anwendung zur Überwachung von Linux-Servern, für direkte SSH-Sitzungen und zur ausdrücklichen Steuerung sicherer Serververbindungen. Sie richtet sich an private Infrastruktur und kleine Flotten ohne schwergewichtiges Dashboard, Kubernetes oder öffentliche API auf jedem Node.
|
||||||
|
|
||||||
|
## Funktionen
|
||||||
|
|
||||||
|
- CPU/load, Speicher, Swap, Datenträger, Inodes, Netzwerk, Uptime, Latenz, SSH und WireGuard;
|
||||||
|
- Profile, Gruppen, Tags, Favoriten, Warnungen und kurze lokale Historie;
|
||||||
|
- eigener Ed25519-SSH-Schlüssel, dessen privater Teil auf Windows bleibt;
|
||||||
|
- direktes SSH-Terminal ohne privaten Schlüssel auf dem Hub;
|
||||||
|
- Sternnetz über einen Hub mit öffentlicher IP; Nodes benötigen nur ausgehenden Zugriff;
|
||||||
|
- gerichtete Links wie `KI-Agent → Home-Server:22`, einzeln abschaltbar;
|
||||||
|
- `/32`-, TCP/UDP-, Port-, Versions- und TTL-Regeln;
|
||||||
|
- Einmal-Enrollment, CSR, mTLS, Rollentrennung, Idempotenz und Audit.
|
||||||
|
|
||||||
|
## Architektur und Installation
|
||||||
|
|
||||||
|
Der Windows-Client kommuniziert per mTLS/HTTPS mit einem ASP.NET Core 10 Control Hub und SQLite. Der Linux Agent baut nur ausgehende Sitzungen auf. WireGuard transportiert Daten, nftables sperrt Transit standardmäßig. Ein Link öffnet keine Gegenrichtung; ein Server hinter NAT benötigt keine öffentliche IP.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Öffnen Sie UDP `51820` und TCP `7443` am Hub, erzeugen Sie Codes und installieren Sie weitere Server als Node. Danach folgen `install-control-hub`, `control-code`, `control-device-code` und `install-control-agent`. Der Installer wählt `amd64`/`arm64` und prüft SHA-256.
|
||||||
|
|
||||||
|
## Sicherheit und Status
|
||||||
|
|
||||||
|
Es gibt kein gemeinsames Root-Passwort; der private WireGuard-Schlüssel bleibt auf dem Node. Monitoring-, Terminal-, Agent-, Operator- und KI-Automationsidentitäten sind getrennt. SSH nutzt einen forced-command ohne Shell/PTY/Forwarding; mTLS begrenzt Rollen; nftables erlaubt nur explizite Links; SQLite speichert Sollzustand und Audit vor der Firewalländerung.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` ist eine Testversion. Windows-Client, Hub/Node-Installer, Links, mTLS, SQLite, Audit und Events sind vorhanden. Offen sind Offline-Puffer, Zertifikatswiderruf, Reconnect-Abgleich, Lasttest mit 50–100 Nodes und signierter Windows-Installer.
|
||||||
|
|
||||||
|
Dokumentation: [Architektur](../architecture.md), [Sicherheit](../security-model.md), [Roadmap](../roadmap.md), [Installer](../installer-contract.md).
|
||||||
39
docs/i18n/README.es.md
Normal file
39
docs/i18n/README.es.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · **Español** · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager es una aplicación ligera, inicialmente para Windows, que monitoriza servidores Linux, abre sesiones SSH directas y controla de forma explícita las conexiones seguras entre servidores. Está pensada para infraestructura personal y flotas pequeñas sin paneles pesados, Kubernetes ni una API pública en cada nodo.
|
||||||
|
|
||||||
|
## Funciones
|
||||||
|
|
||||||
|
- métricas de CPU/load, memoria, swap, discos, inodos, red, uptime, latencia, SSH y WireGuard;
|
||||||
|
- perfiles, grupos, etiquetas, favoritos, alertas e historial local corto;
|
||||||
|
- clave SSH Ed25519 dedicada que permanece en el equipo Windows;
|
||||||
|
- terminal SSH directo sin entregar la clave privada al Hub;
|
||||||
|
- red en estrella mediante un Hub con IP pública; los Nodes solo necesitan salida;
|
||||||
|
- Links direccionales como `agente IA → servidor doméstico:22`, desactivables por separado;
|
||||||
|
- políticas `/32`, TCP/UDP, puerto, versión y TTL;
|
||||||
|
- tokens de un solo uso, CSR, mTLS, roles separados, idempotencia y auditoría.
|
||||||
|
|
||||||
|
## Arquitectura
|
||||||
|
|
||||||
|
El cliente Windows usa mTLS/HTTPS con un Control Hub ASP.NET Core 10 y SQLite. El agente Linux solo inicia sesiones salientes. WireGuard transporta el tráfico y nftables lo bloquea por defecto. Un Link no concede acceso inverso ni acceso a otro servidor, y un servidor doméstico detrás de NAT no necesita IP pública.
|
||||||
|
|
||||||
|
## Instalación rápida
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Abra UDP `51820` y TCP `7443` en el Hub, cree códigos para los Nodes e instálelos con el rol Node. Después use `install-control-hub`, `control-code`, `control-device-code` e `install-control-agent`. El instalador selecciona `amd64`/`arm64` y verifica SHA-256.
|
||||||
|
|
||||||
|
## Seguridad y estado
|
||||||
|
|
||||||
|
No hay contraseña root compartida ni claves WireGuard privadas de Nodes en el Hub. Las identidades de monitorización, terminal, Agent, Operator y automatización IA están separadas. SSH usa un forced-command sin shell, PTY ni forwarding; mTLS limita cada rol; nftables permite únicamente Links explícitos; SQLite conserva estado y auditoría antes de aplicar cambios.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` es una versión de prueba. Ya incluye cliente Windows, instalador Hub/Node, Links, mTLS, SQLite, auditoría y eventos. Faltan el búfer offline, revocación de certificados, reconciliación tras reconexión, prueba de 50–100 Nodes e instalador Windows firmado.
|
||||||
|
|
||||||
|
Documentación: [arquitectura](../architecture.md), [seguridad](../security-model.md), [plan](../roadmap.md), [instalador](../installer-contract.md).
|
||||||
37
docs/i18n/README.fr.md
Normal file
37
docs/i18n/README.fr.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · **Français** · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager est une application légère, d'abord conçue pour Windows, qui surveille des serveurs Linux, ouvre des sessions SSH directes et contrôle explicitement les connexions sécurisées entre serveurs. Elle vise les infrastructures personnelles et petites flottes sans tableau de bord lourd, Kubernetes ni API publique sur chaque nœud.
|
||||||
|
|
||||||
|
## Fonctionnalités
|
||||||
|
|
||||||
|
- CPU/load, mémoire, swap, disques, inodes, réseau, uptime, latence, SSH et WireGuard ;
|
||||||
|
- profils, groupes, tags, favoris, alertes et historique local court ;
|
||||||
|
- clé SSH Ed25519 dédiée dont la partie privée reste sur Windows ;
|
||||||
|
- terminal SSH direct sans transmettre la clé privée au Hub ;
|
||||||
|
- réseau en étoile via un Hub à IP publique ; les Nodes n'ont besoin que d'un accès sortant ;
|
||||||
|
- Links directionnels comme `agent IA → serveur maison:22`, désactivables séparément ;
|
||||||
|
- politiques `/32`, TCP/UDP, port, version et TTL ;
|
||||||
|
- enrôlement unique, CSR, mTLS, rôles séparés, idempotence et audit.
|
||||||
|
|
||||||
|
## Architecture et installation
|
||||||
|
|
||||||
|
Le client Windows communique en mTLS/HTTPS avec un Control Hub ASP.NET Core 10 et SQLite. L'Agent Linux ne crée que des sessions sortantes. WireGuard transporte les données et nftables bloque le transit par défaut. Un Link n'ouvre pas le sens inverse ; un serveur derrière NAT n'a pas besoin d'IP publique.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Ouvrez UDP `51820` et TCP `7443` sur le Hub, créez les codes et installez les autres serveurs comme Nodes. Utilisez ensuite `install-control-hub`, `control-code`, `control-device-code` et `install-control-agent`. L'installateur choisit `amd64`/`arm64` et vérifie SHA-256.
|
||||||
|
|
||||||
|
## Sécurité et état
|
||||||
|
|
||||||
|
Aucun mot de passe root n'est partagé et la clé WireGuard privée reste sur le Node. Les identités monitoring, terminal, Agent, Operator et automatisation IA sont séparées. SSH emploie une forced-command sans shell/PTY/forwarding ; mTLS limite les rôles ; nftables n'autorise que les Links explicites ; SQLite enregistre état et audit avant le changement de pare-feu.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` est destiné aux tests. Client Windows, installateur Hub/Node, Links, mTLS, SQLite, audit et événements sont disponibles. Restent le tampon hors ligne, la révocation des certificats, la réconciliation, le test de 50–100 Nodes et l'installateur Windows signé.
|
||||||
|
|
||||||
|
Documentation : [architecture](../architecture.md), [sécurité](../security-model.md), [roadmap](../roadmap.md), [installateur](../installer-contract.md).
|
||||||
37
docs/i18n/README.hi.md
Normal file
37
docs/i18n/README.hi.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · **हिन्दी** · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager एक हल्का, Windows-first अनुप्रयोग है जो Linux सर्वरों की निगरानी, सीधे SSH सत्र और सर्वरों के बीच सुरक्षित कनेक्शन का स्पष्ट नियंत्रण देता है। यह निजी इंफ्रास्ट्रक्चर और छोटे server fleet के लिए है, जहाँ भारी dashboard, Kubernetes या हर Node पर public API की जरूरत नहीं होती।
|
||||||
|
|
||||||
|
## विशेषताएँ
|
||||||
|
|
||||||
|
- CPU/load, memory, swap, disk, inode, network, uptime, latency, SSH और WireGuard metrics;
|
||||||
|
- profiles, groups, tags, favorites, alerts और छोटी local history;
|
||||||
|
- अलग Ed25519 SSH key जिसकी private key Windows device पर रहती है;
|
||||||
|
- Hub को private terminal key दिए बिना direct SSH terminal;
|
||||||
|
- public IP वाले एक Hub से star network; Nodes को केवल outbound access चाहिए;
|
||||||
|
- `AI agent → Home server:22` जैसे directional Links, जिन्हें अलग-अलग बंद किया जा सकता है;
|
||||||
|
- `/32`, TCP/UDP port, policy version और TTL restrictions;
|
||||||
|
- one-time enrollment, CSR, mTLS, role separation, idempotency और audit।
|
||||||
|
|
||||||
|
## संरचना और स्थापना
|
||||||
|
|
||||||
|
Windows client mTLS/HTTPS से ASP.NET Core 10 और SQLite Control Hub से जुड़ता है। Linux Agent केवल outbound session बनाता है। WireGuard data ले जाता है और Hub का nftables default रूप से transit रोकता है। Link केवल एक दिशा खोलता है; NAT के पीछे Home server को public IP नहीं चाहिए।
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Hub पर UDP `51820` और TCP `7443` खोलें, Node codes बनाएँ और दूसरे सर्वरों पर Node role चुनें। फिर `install-control-hub`, `control-code`, `control-device-code` और `install-control-agent` चलाएँ। Installer `amd64`/`arm64` चुनता है और SHA-256 जाँचता है।
|
||||||
|
|
||||||
|
## सुरक्षा और स्थिति
|
||||||
|
|
||||||
|
Shared root password नहीं है और Node की WireGuard private key Node से बाहर नहीं जाती। Monitoring, terminal, Agent, Operator और AI automation identities अलग हैं। SSH forced-command shell/PTY/forwarding नहीं देता; mTLS roles सीमित करता है; nftables केवल explicit Links स्वीकारता है; SQLite पहले desired state और audit सहेजता है।
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` testing release है। Windows client, Hub/Node installer, Links, mTLS, SQLite, audit और event stream तैयार हैं। Offline buffer, certificate revocation, reconnect reconciliation, 50–100 Node load test और signed Windows installer अभी बाकी हैं।
|
||||||
|
|
||||||
|
दस्तावेज़: [architecture](../architecture.md), [security](../security-model.md), [roadmap](../roadmap.md), [installer](../installer-contract.md)।
|
||||||
37
docs/i18n/README.ja.md
Normal file
37
docs/i18n/README.ja.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · **日本語** · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager は、Linux サーバーの監視、直接 SSH セッション、サーバー間の安全な接続を明示的に制御する軽量な Windows-first アプリケーションです。重い管理パネル、Kubernetes、各 Node の公開 API を必要としない個人インフラや小規模環境向けです。
|
||||||
|
|
||||||
|
## 主な機能
|
||||||
|
|
||||||
|
- CPU/load、メモリ、swap、ディスク、inode、ネットワーク、uptime、遅延、SSH、WireGuard の監視;
|
||||||
|
- プロファイル、グループ、タグ、お気に入り、警告、短期ローカル履歴;
|
||||||
|
- Windows 端末内に秘密鍵を保持する専用 Ed25519 SSH 鍵;
|
||||||
|
- Hub に秘密鍵を渡さない直接 SSH ターミナル;
|
||||||
|
- 公開 IP を持つ 1 台の Hub によるスター型ネットワーク。Node は外向き通信のみ;
|
||||||
|
- `AI エージェント → Home server:22` のような方向付き Link を個別に無効化;
|
||||||
|
- `/32`、TCP/UDP、ポート、ポリシーバージョン、TTL;
|
||||||
|
- ワンタイム登録、CSR、mTLS、ロール分離、冪等性、監査。
|
||||||
|
|
||||||
|
## 構成とインストール
|
||||||
|
|
||||||
|
Windows クライアントは mTLS/HTTPS で ASP.NET Core 10 + SQLite Control Hub に接続します。Linux Agent は外向きセッションだけを作成します。WireGuard がデータを運び、Hub の nftables は転送を既定で拒否します。Link は一方向で、NAT 内の家庭サーバーに公開 IP は不要です。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Hub で UDP `51820` と TCP `7443` を開き、Node コードを作成して他のサーバーを Node として導入します。その後 `install-control-hub`、`control-code`、`control-device-code`、`install-control-agent` を使用します。インストーラーは `amd64`/`arm64` を選択し SHA-256 を検証します。
|
||||||
|
|
||||||
|
## セキュリティと状況
|
||||||
|
|
||||||
|
共有 root パスワードはなく、Node の WireGuard 秘密鍵は Node 外に出ません。monitoring、terminal、Agent、Operator、AI automation の ID は分離されています。SSH は shell/PTY/forwarding のない forced-command、mTLS はロール制限、nftables は明示 Link のみを許可し、SQLite は firewall 変更前に状態と監査を保存します。
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` はテスト版です。Windows client、Hub/Node installer、Links、mTLS、SQLite、監査、イベントは実装済みです。オフラインバッファ、証明書失効、再接続調整、50–100 Node 負荷試験、署名付き Windows installer は今後の課題です。
|
||||||
|
|
||||||
|
資料:[アーキテクチャ](../architecture.md)、[セキュリティ](../security-model.md)、[ロードマップ](../roadmap.md)、[インストーラー](../installer-contract.md)。
|
||||||
37
docs/i18n/README.ko.md
Normal file
37
docs/i18n/README.ko.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · **한국어** · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager는 Linux 서버 모니터링, 직접 SSH 세션, 서버 간 보안 연결의 명시적 제어를 제공하는 가벼운 Windows 우선 애플리케이션입니다. 무거운 대시보드, Kubernetes 또는 각 Node의 공개 API가 필요 없는 개인 인프라와 소규모 서버 환경을 위한 도구입니다.
|
||||||
|
|
||||||
|
## 주요 기능
|
||||||
|
|
||||||
|
- CPU/load, 메모리, swap, 디스크, inode, 네트워크, uptime, 지연, SSH, WireGuard 모니터링;
|
||||||
|
- 프로필, 그룹, 태그, 즐겨찾기, 경고와 짧은 로컬 기록;
|
||||||
|
- 개인 키가 Windows 장치에만 남는 전용 Ed25519 SSH 키;
|
||||||
|
- 개인 terminal 키를 Hub에 전달하지 않는 직접 SSH 터미널;
|
||||||
|
- 공개 IP가 있는 하나의 Hub를 통한 스타 네트워크, Node는 outbound 연결만 필요;
|
||||||
|
- `AI 에이전트 → 홈 서버:22` 같은 방향성 Link를 독립적으로 해제;
|
||||||
|
- `/32`, TCP/UDP, 포트, 정책 버전, TTL 제한;
|
||||||
|
- 일회용 등록, CSR, mTLS, 역할 분리, 멱등성 및 감사.
|
||||||
|
|
||||||
|
## 구조와 설치
|
||||||
|
|
||||||
|
Windows client는 mTLS/HTTPS로 ASP.NET Core 10 및 SQLite Control Hub에 연결합니다. Linux Agent는 outbound session만 만듭니다. WireGuard가 데이터를 전달하고 Hub의 nftables는 기본적으로 transit을 거부합니다. Link는 단방향이며 NAT 뒤의 홈 서버에는 공개 IP가 필요 없습니다.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Hub에서 UDP `51820`과 TCP `7443`을 열고 Node 코드를 생성한 뒤 다른 서버를 Node로 설치합니다. 이후 `install-control-hub`, `control-code`, `control-device-code`, `install-control-agent`를 사용합니다. 설치 프로그램은 `amd64`/`arm64`를 선택하고 SHA-256을 검증합니다.
|
||||||
|
|
||||||
|
## 보안과 상태
|
||||||
|
|
||||||
|
공유 root 암호가 없고 Node WireGuard 개인 키는 Node를 떠나지 않습니다. monitoring, terminal, Agent, Operator, AI automation identity는 분리됩니다. SSH는 shell/PTY/forwarding 없는 forced-command를 사용하고, mTLS는 역할을 제한하며, nftables는 명시된 Link만 허용합니다. SQLite는 방화벽 변경 전에 상태와 감사를 저장합니다.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2`는 테스트 릴리스입니다. Windows client, Hub/Node installer, Links, mTLS, SQLite, 감사와 event stream이 구현되었습니다. offline buffer, 인증서 폐기, 재연결 조정, 50–100 Node 부하 시험과 서명된 Windows installer가 남아 있습니다.
|
||||||
|
|
||||||
|
문서: [아키텍처](../architecture.md), [보안](../security-model.md), [로드맵](../roadmap.md), [설치 계약](../installer-contract.md).
|
||||||
37
docs/i18n/README.pt-BR.md
Normal file
37
docs/i18n/README.pt-BR.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · **Português** · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager é um aplicativo leve, inicialmente para Windows, que monitora servidores Linux, abre sessões SSH diretas e controla explicitamente conexões seguras entre servidores. Foi criado para infraestrutura pessoal e frotas pequenas sem painel pesado, Kubernetes ou API pública em cada Node.
|
||||||
|
|
||||||
|
## Recursos
|
||||||
|
|
||||||
|
- CPU/load, memória, swap, discos, inodes, rede, uptime, latência, SSH e WireGuard;
|
||||||
|
- perfis, grupos, tags, favoritos, alertas e histórico local curto;
|
||||||
|
- chave SSH Ed25519 dedicada, com a chave privada mantida no Windows;
|
||||||
|
- terminal SSH direto sem entregar a chave privada ao Hub;
|
||||||
|
- rede em estrela com um Hub de IP público; Nodes precisam apenas de acesso de saída;
|
||||||
|
- Links direcionais como `agente de IA → servidor doméstico:22`, desligados separadamente;
|
||||||
|
- políticas `/32`, TCP/UDP, porta, versão e TTL;
|
||||||
|
- token único, CSR, mTLS, separação de papéis, idempotência e auditoria.
|
||||||
|
|
||||||
|
## Arquitetura e instalação
|
||||||
|
|
||||||
|
O cliente Windows usa mTLS/HTTPS com um Control Hub ASP.NET Core 10 e SQLite. O Linux Agent inicia somente sessões de saída. WireGuard transporta dados e nftables bloqueia trânsito por padrão. Um Link não abre o sentido inverso; um servidor doméstico atrás de NAT não precisa de IP público.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Abra UDP `51820` e TCP `7443` no Hub, gere códigos e instale os demais servidores como Node. Depois use `install-control-hub`, `control-code`, `control-device-code` e `install-control-agent`. O instalador escolhe `amd64`/`arm64` e valida SHA-256.
|
||||||
|
|
||||||
|
## Segurança e status
|
||||||
|
|
||||||
|
Não há senha root compartilhada e a chave WireGuard privada nunca sai do Node. As identidades de monitoramento, terminal, Agent, Operator e automação de IA são separadas. SSH usa forced-command sem shell/PTY/forwarding; mTLS restringe funções; nftables permite apenas Links explícitos; SQLite registra estado e auditoria antes da mudança no firewall.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` é uma versão de teste. Cliente Windows, instalador Hub/Node, Links, mTLS, SQLite, auditoria e eventos estão prontos. Restam buffer offline, revogação de certificado, reconciliação, teste com 50–100 Nodes e instalador Windows assinado.
|
||||||
|
|
||||||
|
Documentação: [arquitetura](../architecture.md), [segurança](../security-model.md), [roadmap](../roadmap.md), [instalador](../installer-contract.md).
|
||||||
43
docs/i18n/README.ru.md
Normal file
43
docs/i18n/README.ru.md
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · **Русский** · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager — лёгкое Windows-приложение для мониторинга Linux-серверов, прямых SSH-сессий и явного управления защищёнными соединениями между серверами. Оно рассчитано на личную инфраструктуру и небольшие парки серверов без тяжёлой панели, Kubernetes или публичного API на каждом узле.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
- мониторинг CPU/load, RAM, swap, дисков, inode, сети, uptime, задержки, SSH и WireGuard;
|
||||||
|
- профили, группы, теги, избранное, предупреждения и короткая история метрик;
|
||||||
|
- отдельный Ed25519 SSH-ключ, который остаётся на Windows-компьютере;
|
||||||
|
- прямой SSH-терминал без передачи приватного terminal-ключа Hub-серверу;
|
||||||
|
- объединение серверов через один Hub с белым IP; вторичным серверам нужен только исходящий доступ;
|
||||||
|
- направленные Links, например `AI-агент → домашний сервер:22`, с независимым отключением;
|
||||||
|
- ограничения по `/32`, TCP/UDP-порту, версии политики и TTL;
|
||||||
|
- одноразовая регистрация, CSR, mTLS, разделение ролей, idempotency и аудит.
|
||||||
|
|
||||||
|
## Архитектура
|
||||||
|
|
||||||
|
Windows-клиент подключается по mTLS/HTTPS к Control Hub на ASP.NET Core 10 и SQLite. Linux Agent создаёт только исходящие mTLS-сессии. WireGuard образует звёздную сеть, а nftables на Hub по умолчанию запрещает транзит. Link направленный: доступ `AI-агент → Home` не открывает обратное направление или другие серверы. Домашнему серверу за NAT не нужен белый IP.
|
||||||
|
|
||||||
|
Control plane хранит inventory, метрики, политики, историю и аудит. Data plane состоит из WireGuard и постоянных nftables ACL. Operator-сертификат Windows защищён DPAPI; Agent доступен для `amd64` и `arm64` как самодостаточный Linux-бинарник.
|
||||||
|
|
||||||
|
## Быстрая установка
|
||||||
|
|
||||||
|
Установщик находится в [`ochenstarik-ui/lightweight-server`](https://github.com/ochenstarik-ui/lightweight-server):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
На Hub откройте UDP `51820` и TCP `7443`, создайте `node-code`, затем установите вторичные серверы в роли Node. Для постоянного слоя выполните `install-control-hub`, создайте `control-code`/`control-device-code`, а на Node — `install-control-agent`. Архитектура выбирается автоматически, SHA-256 проверяется.
|
||||||
|
|
||||||
|
## Безопасность и статус
|
||||||
|
|
||||||
|
Нет общих root-паролей; приватный WireGuard-ключ Node не покидает Node. Идентичности monitoring, terminal, Agent, Operator и AI-автоматизации разделены. Monitoring SSH использует forced-command без shell/PTY/forwarding. Agent может отправлять heartbeat только своего узла, Operator управляет inventory и Links. Отключение Link сначала сохраняется в SQLite, затем удаляет разрешение nftables; повтор запроса не повторяет побочный эффект.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` предназначен для тестирования. Уже готовы Windows SSH-monitoring, Hub/Node installer, Links, mTLS, SQLite, аудит и поток событий. Остались offline-буфер Agent, отзыв сертификатов, reconnect reconciliation, нагрузочный тест 50–100 Node и подписанный Windows installer. До стабильного релиза используйте тестовые или резервируемые серверы.
|
||||||
|
|
||||||
|
Документы: [архитектура](../architecture.md), [безопасность](../security-model.md), [roadmap](../roadmap.md), [контракт установщика](../installer-contract.md).
|
||||||
37
docs/i18n/README.tr.md
Normal file
37
docs/i18n/README.tr.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · [简体中文](README.zh-CN.md) · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · **Türkçe**
|
||||||
|
|
||||||
|
Server Monitor Manager, Linux sunucularını izleyen, doğrudan SSH oturumları açan ve sunucular arasındaki güvenli bağlantıları açıkça yöneten hafif, Windows öncelikli bir uygulamadır. Ağır panel, Kubernetes veya her Node üzerinde herkese açık API gerektirmeyen kişisel altyapılar ve küçük filolar için tasarlanmıştır.
|
||||||
|
|
||||||
|
## Özellikler
|
||||||
|
|
||||||
|
- CPU/load, bellek, swap, disk, inode, ağ, uptime, gecikme, SSH ve WireGuard izleme;
|
||||||
|
- profiller, gruplar, etiketler, favoriler, uyarılar ve kısa yerel geçmiş;
|
||||||
|
- özel anahtarı Windows cihazında kalan ayrı Ed25519 SSH anahtarı;
|
||||||
|
- özel terminal anahtarını Hub'a vermeden doğrudan SSH terminali;
|
||||||
|
- genel IP'li tek Hub üzerinden yıldız ağ; Nodes yalnızca dış bağlantıya ihtiyaç duyar;
|
||||||
|
- `AI ajanı → ev sunucusu:22` gibi bağımsız kapatılabilen yönlü Links;
|
||||||
|
- `/32`, TCP/UDP, port, politika sürümü ve TTL sınırları;
|
||||||
|
- tek kullanımlık kayıt, CSR, mTLS, rol ayrımı, idempotency ve audit.
|
||||||
|
|
||||||
|
## Mimari ve kurulum
|
||||||
|
|
||||||
|
Windows istemcisi mTLS/HTTPS ile ASP.NET Core 10 ve SQLite Control Hub'a bağlanır. Linux Agent yalnızca dış oturum açar. WireGuard veriyi taşır, Hub üzerindeki nftables varsayılan olarak geçişi engeller. Link tek yönlüdür; NAT arkasındaki ev sunucusunun genel IP'ye ihtiyacı yoktur.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
Hub üzerinde UDP `51820` ve TCP `7443` açın, Node kodlarını üretin ve diğer sunucuları Node olarak kurun. Ardından `install-control-hub`, `control-code`, `control-device-code` ve `install-control-agent` kullanın. Kurucu `amd64`/`arm64` seçer ve SHA-256 doğrular.
|
||||||
|
|
||||||
|
## Güvenlik ve durum
|
||||||
|
|
||||||
|
Ortak root parolası yoktur ve Node'un WireGuard özel anahtarı Node'dan çıkmaz. Monitoring, terminal, Agent, Operator ve AI automation kimlikleri ayrıdır. SSH shell/PTY/forwarding vermeyen forced-command kullanır; mTLS rolleri sınırlar; nftables yalnızca açık Links'e izin verir; SQLite güvenlik duvarı değişmeden önce durum ve audit kaydeder.
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` test sürümüdür. Windows client, Hub/Node installer, Links, mTLS, SQLite, audit ve event stream hazırdır. Offline buffer, sertifika iptali, yeniden bağlantı uzlaştırması, 50–100 Node yük testi ve imzalı Windows installer sıradadır.
|
||||||
|
|
||||||
|
Belgeler: [mimari](../architecture.md), [güvenlik](../security-model.md), [yol haritası](../roadmap.md), [kurucu sözleşmesi](../installer-contract.md).
|
||||||
39
docs/i18n/README.zh-CN.md
Normal file
39
docs/i18n/README.zh-CN.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Server Monitor Manager
|
||||||
|
|
||||||
|
[English](../../README.md) · [Русский](README.ru.md) · [Español](README.es.md) · **简体中文** · [हिन्दी](README.hi.md) · [العربية](README.ar.md) · [Português](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Türkçe](README.tr.md)
|
||||||
|
|
||||||
|
Server Monitor Manager 是一款轻量级、Windows 优先的 Linux 服务器监控与管理应用。它支持直接 SSH 会话,并能明确控制服务器之间的安全连接,适合个人基础设施和小型服务器集群,无需笨重面板、Kubernetes,也无需在每个节点暴露公共 API。
|
||||||
|
|
||||||
|
## 主要功能
|
||||||
|
|
||||||
|
- 监控 CPU/load、内存、swap、磁盘、inode、网络、uptime、延迟、SSH 和 WireGuard;
|
||||||
|
- 管理配置、分组、标签、收藏、告警和短期本地历史;
|
||||||
|
- 生成专用 Ed25519 SSH 密钥,私钥仅保存在 Windows 设备;
|
||||||
|
- 直接 SSH 终端,不向 Hub 传输终端私钥;
|
||||||
|
- 通过一个具有公网 IP 的 Hub 连接服务器,其他 Node 只需出站访问;
|
||||||
|
- 创建 `AI 代理 → 家庭服务器:22` 等单向 Link,并可单独关闭;
|
||||||
|
- 支持 `/32`、TCP/UDP、端口、策略版本和 TTL;
|
||||||
|
- 一次性令牌、CSR、mTLS、角色隔离、幂等和审计。
|
||||||
|
|
||||||
|
## 架构
|
||||||
|
|
||||||
|
Windows 客户端通过 mTLS/HTTPS 连接 ASP.NET Core 10 + SQLite Control Hub。Linux Agent 只建立出站会话。WireGuard 负责数据传输,Hub 上的 nftables 默认拒绝节点间转发。Link 是单向的,不自动开放反向或其他服务器访问;NAT 后的家庭服务器无需公网 IP。
|
||||||
|
|
||||||
|
## 快速安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fLO https://raw.githubusercontent.com/ochenstarik-ui/lightweight-server/main/ochenstarik-server-monitor-manager.sh
|
||||||
|
chmod 700 ochenstarik-server-monitor-manager.sh
|
||||||
|
bash -n ochenstarik-server-monitor-manager.sh
|
||||||
|
sudo ./ochenstarik-server-monitor-manager.sh hub
|
||||||
|
```
|
||||||
|
|
||||||
|
在 Hub 开放 UDP `51820` 和 TCP `7443`,创建 Node 注册码并在其他服务器选择 Node 角色。随后运行 `install-control-hub`、`control-code`、`control-device-code` 和 `install-control-agent`。安装器会自动选择 `amd64`/`arm64` 并校验 SHA-256。
|
||||||
|
|
||||||
|
## 安全与状态
|
||||||
|
|
||||||
|
系统不共享 root 密码,Node 的 WireGuard 私钥不会离开本机。监控、终端、Agent、Operator 和 AI 自动化身份相互隔离。SSH 使用无 shell、PTY、转发权限的 forced-command;mTLS 限制角色;nftables 仅允许明确 Link;SQLite 在执行防火墙变更前保存目标状态和审计。
|
||||||
|
|
||||||
|
`v0.1.0-alpha.2` 是测试版,已包含 Windows 客户端、Hub/Node 安装器、Links、mTLS、SQLite、审计和事件流。待完成:离线缓冲、证书撤销、重连协调、50–100 Node 压测和签名 Windows 安装器。
|
||||||
|
|
||||||
|
文档:[架构](../architecture.md)、[安全模型](../security-model.md)、[路线图](../roadmap.md)、[安装器协议](../installer-contract.md)。
|
||||||
Loading…
Reference in a new issue