platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
50
docs/phase-b/B4_RUNTIME_DEPENDENCIES_AND_PREFLIGHT.md
Normal file
50
docs/phase-b/B4_RUNTIME_DEPENDENCIES_AND_PREFLIGHT.md
Normal 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.*`) быстро проверяем среду и снижаем ложные регрессии.
|
||||
Reference in New Issue
Block a user