platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,50 @@
# B4 Runtime Dependencies And Preflight
## Важно
- `go.mod` хранит только Go-модули (библиотеки, которые импортируются в коде).
- Внешние сервисы/бинарники (`systemd`, `nft`, `ip`, `sing-box`, `dnstt-client`, `phoenix-client`) не являются Go-модулями и не должны фиксироваться в `go.mod`.
## Текущие Go-зависимости (по `go.mod`)
- `github.com/cenkalti/backoff/v4`
- `github.com/creack/pty`
## Runtime-зависимости ядра (вне go.mod)
### Required (core path)
- `systemctl`
- `nft`
- `ip`
- `curl`
- `/usr/local/bin/adguardvpn-cli-root`
### Required service units (current production path)
- `singbox@.service`
### Recommended / optional
- `nsenter` (предпочтительный exec-mode для netns)
- `wget` (fallback для части egress probe)
- `ps`
- `ipset`
### Optional by enabled transport kind
- `sing-box` (`/usr/local/bin/sing-box` или `/usr/bin/sing-box`)
- `dnstt-client` (`/usr/local/bin/dnstt-client` или `/usr/bin/dnstt-client`)
- `phoenix-client` (`/usr/local/bin/phoenix-client` или `/usr/bin/phoenix-client`)
### Optional service units (зависят от deployment-профиля)
- `adguardvpn-autoconnect.service`
- `smartdns-local.service`
- `selective-vpn2@.service`
- `sing-box.service` (legacy/compat)
- `dnstt-client.service`
- `phoenix-client.service`
## Preflight-check
- Скрипт: `scripts/check_runtime_dependencies.sh`
- Режимы:
- `scripts/check_runtime_dependencies.sh` — проверка required + warning по optional.
- `scripts/check_runtime_dependencies.sh --strict` — fail если есть missing/warning.
## Зачем это перед рефакторингом
- Убираем смешение понятий: Go-зависимости отдельно, runtime/system-зависимости отдельно.
- Перед декомпозицией (`F1.*`) быстро проверяем среду и снижаем ложные регрессии.