Files
rmm-openwrt/README_RU.md
T

141 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img src="web/web-app-192.png" width="112" alt="Логотип OpenWrt RMM">
</p>
# OpenWrt RMM
[English](README.md) · [Релизы](https://github.com/Benya9669/openwrt-rmm/releases) · [Changelog](CHANGELOG.md) · [Безопасность](docs/security.md)
OpenWrt RMM — самостоятельная платформа удалённого мониторинга и управления роутерами
OpenWrt. В неё входят облачный сервер на Go, компактный исходящий агент, адаптивный
веб-интерфейс, временный доступ по SSH и LuCI, уведомления и подписанные репозитории
пакетов OpenWrt.
На роутере не требуется открывать входящий порт. Агент подключается к серверу по HTTPS,
а ограниченный обратный туннель создаётся только по запросу авторизованного оператора.
## Возможности
- Отдельные аккаунты пользователей и привязка роутеров к владельцу.
- Одноразовые коды подключения роутеров.
- Инвентаризация, метрики, проверки соединения и определение присутствия LAN-клиентов.
- Безопасный ограниченный набор диагностических, пакетных и UCI-команд.
- Временный доступ к SSH и LuCI через изолированный облачный туннель.
- Центр уведомлений, e-mail, Telegram и подписанные webhook-запросы.
- Тихие часы, режим обслуживания и настройки алертов для каждого роутера.
- Адаптивный веб-интерфейс и LuCI-приложение для настройки агента.
- Подписанные IPK/APK-репозитории для поддерживаемых версий OpenWrt.
## Компоненты
```text
Браузер ──HTTPS──> RMM-сервер ──SQLite
├── обработчики уведомлений
└── изолированный SSH tunnel-сервис
OpenWrt-роутер ──исходящие HTTPS/SSH─────┘
├── rmm-agent-go-production
├── luci-app-rmm-agent
└── luci-i18n-rmm-agent-ru (необязательно)
```
| Компонент | Назначение | Лицензия |
| --- | --- | --- |
| `server/`, `web/` | API, база данных, интерфейс и уведомления | AGPL-3.0-only |
| `deploy/tunnel/` | Ограниченный обратный SSH-туннель | AGPL-3.0-only |
| `agent/` | Go-агент, LuCI и пакеты OpenWrt | MIT |
## Развёртывание
Потребуются:
- Docker Engine и Compose v2;
- HTTPS reverse proxy, например NPMplus;
- wildcard DNS-запись и сертификат для облачного доступа к LuCI;
- отдельный SSH-ключ для туннелей роутеров.
Скопируйте пример конфигурации и следуйте инструкции по развёртыванию:
```sh
cp .env.example .env
docker compose -f compose.yaml -f compose.release.yaml pull
docker compose -f compose.yaml -f compose.release.yaml up -d
docker compose -f compose.yaml -f compose.release.yaml ps
```
Не запускайте прод с примерными секретами. Сначала создайте ключ туннеля и заполните
обязательные переменные окружения.
- [Развёртывание через Docker Compose](docs/docker-compose.md)
- [Настройка NPMplus](docs/npmplus.md)
- [Wildcard-доступ к роутерам в стиле KeenDNS](docs/keendns.md)
- [Архитектура](docs/architecture.md)
## Установка агента OpenWrt
Рекомендуемый способ — подписанный пакетный репозиторий:
- OpenWrt 24.10 и старше: IPK/opkg;
- OpenWrt 25.12 и новее: APK;
- OpenWrt 21.02, 22.03 и 23.05: уровень legacy-поддержки.
Установите агент и LuCI-приложение:
```sh
opkg install rmm-agent-go-production luci-app-rmm-agent
# или
apk add rmm-agent-go-production luci-app-rmm-agent
```
По умолчанию интерфейс LuCI остаётся английским. Русский язык устанавливается отдельным
стандартным пакетом:
```sh
opkg install luci-i18n-rmm-agent-ru
# или
apk add luci-i18n-rmm-agent-ru
```
Адреса репозиториев, ключи проверки и инструкции для архитектур находятся в документе
[Подписанный репозиторий OpenWrt](docs/package-repository.md).
## Разработка и проверки
```sh
go test ./...
go vet ./...
node --check web/app.js
docker compose config
```
Запуск сервера в явно включённом локальном режиме разработки:
```sh
RMM_INSECURE_DEV_MODE=true \
RMM_OPERATOR_PASSWORD='replace-with-a-long-development-password' \
go run ./server/cmd/rmm-server
```
Небезопасный режим разработки нельзя использовать на публичном сервере.
## Релизы
Сервер и агент версионируются независимо:
- `server-v*` публикует контейнеры сервера и tunnel-сервиса;
- `agent-v*` публикует устанавливаемые IPK/APK-пакеты;
- подробные описания релизов ведутся на английском в [CHANGELOG.md](CHANGELOG.md).
В GitHub Release загружаются только устанавливаемые пакеты. Подписанные индексы и
публичные ключи публикуются через GitHub Pages, а provenance хранится в GitHub
attestations. Подробнее: [политика релизов](RELEASES.md).
## Безопасность и лицензирование
Перед публикацией сервиса изучите [модель безопасности](docs/security.md). Перед каждым
обновлением серверной части создавайте резервную копию SQLite volume.
Облачная часть распространяется по `AGPL-3.0-only`, агент и LuCI-пакеты — по MIT.
Подробнее: [LICENSE.md](LICENSE.md) и [NOTICE.md](NOTICE.md).