Remove the MA7 integration
release / release (push) Successful in 2m47s

The integration was half-committed: server.ts imported ./ma7 and the profile
tab was documented, but neither file ever reached the repository, so awg-ui
could not start at all — `Error: Cannot find module './ma7'`.

Everything that referenced it is gone: the import and the /ui/ma7/profile
route, the three MA7_* variables the CLI passed to awg-ui, the installer
prompts and their cli.env block, and the README section. The panel login
prompt goes back to defaulting to admin instead of the MA7 subscriber login.

awg-ui type-checks, builds and starts again.
This commit is contained in:
2026-08-29 03:23:40 +03:00
parent 21c7409017
commit 068cab4d24
4 changed files with 3 additions and 99 deletions
+1 -34
View File
@@ -9,7 +9,7 @@
| Компонент | Роль |
|---|---|
| **awg-ctrl** | Привилегированный REST-бэкенд. Управляет пирами через `awg`/`awg-quick`, ведёт SQLite-базу, генерирует `vpn://` ключи. Слушает только loopback. |
| **awg-ui** | Express + React. Веб-панель, аутентификация (JWT), интеграция с API MA7, прокси к awg-ctrl. Единственный сервис, доступный по сети. |
| **awg-ui** | Express + React. Веб-панель, аутентификация (JWT), прокси к awg-ctrl. Единственный сервис, доступный по сети. |
| **cli** | Менеджер процессов: `start`/`stop`/`restart`/`status`, смена логина/пароля панели, интерактивное TUI-меню. |
Внутренняя связь awg-ui → awg-ctrl подписывается асимметрично (Ed25519): приватный ключ только у awg-ui, awg-ctrl проверяет подпись публичным.
@@ -94,38 +94,5 @@ awg-ctrl
systemctl start|stop|restart awg-control
```
## Интеграция с MA7
Этот сервер персональный — принадлежит одному абоненту MA7 (сервиса
VPN-подписки). Панель ничем не управляет в MA7 и не отдаёт наружу свой API:
вкладка «Профиль» только читает баланс своего владельца. Секрет MA7 живёт
только в `awg-ui` (`cli.env`) и в браузер не попадает — фронт ходит на свой
бэкенд, тот читает MA7.
Нужные переменные (задаются при установке или руками в `cli.env`):
| Переменная | Назначение |
|---|---|
| `MA7_API_BASE_URL` | адрес API MA7, например `https://amnesia.ma7neko.ru` |
| `MA7_JWT_SECRET` | секрет, которым панель сама подписывает `X-Bot-Token` (эндпоинта, выдающего токен, в MA7 нет) |
| `MA7_LOGIN` | логин владельца этого сервера в MA7 (`ma7_xxxxxx`) |
Вкладка «Профиль» просто показывает текущий баланс `MA7_LOGIN`. При установке
`MA7_LOGIN` заодно предлагается как логин панели (`UI_USER`) — сервер
персональный, и заказчик входит тем же именем, что знает по MA7; при желании
логин панели можно задать свой. Это разные переменные: `UI_USER` решает, кого
пускать в панель, `MA7_LOGIN` — чей баланс показывать.
`MA7_LOGIN` задаётся один раз при установке и **не редактируется из панели**: у панели
один общий пароль (`UI_USER`/`UI_PASS`) без отдельного клиентского входа, а
`MA7_JWT_SECRET` умеет искать в MA7 любого абонента — редактируемый в браузере
логин превратил бы личный баланс в инструмент подглядывания за чужими.
> [!WARNING]
> `MA7_JWT_SECRET` — мастер-ключ ко всему MA7: с ним можно читать данные любых
> пользователей MA7, не только этого сервера. Токены MA7 без срока действия,
> отзыва нет — «отобрать доступ» значит одновременно сменить `MA7_JWT_SECRET`
> во всех сервисах MA7 и здесь, в `cli.env`.
## Лицензия
[MIT](LICENSE) © 2026 Ivan Vasilev