founder 9d2d2bc0c2 Сборка: добавить production packaging flow через .deb
Добавлен package-режим в tools/build.sh: --package, --dist-dir, --version. Реализована сборка Debian-пакета, metadata/control, postinst/postrm и SHA256SUMS. Установочные пути унифицированы под /usr/sbin и /lib/systemd/system для production-модели.
2026-05-10 17:26:11 +05:00

AWG2 Harness

AWG2 Harness — host-side multi-orchestrator на Rust для production-сервера с AmneziaWG/AWG 2.0.

Это не просто перенос bash-скриптов на Rust. Целевая система должна воспроизвести и затем постоянно удерживать всё состояние, которое сейчас создаёт Amnezia limits (old bash): discovery контейнера и интерфейса, список peers, per-peer traffic shaping в обе стороны, tc topology, ifb0, auto-healing после рестартов, диагностику, плановый reboot и swap setup, а также опциональный nftables anti-torrent guard через per-peer connection-count limit.

Сервер выделенный: Debian 13 amd64, SSH заранее настроен, рядом нет соседних сервисов, после установки Amnezia доставляется наш бинарь. Поэтому бинарь имеет право и обязан полностью управлять нужными правилами хоста и network namespace Amnezia, а не быть пассивной обёрткой, которая боится менять состояние системы. При этом он не форкает Amnezia и не меняет её продуктовую логику; он управляет инфраструктурным состоянием вокруг неё.

Текущий репозиторий:

AWG2_harness/
├── Amnezia limits (old bash)/   # historical reference only (не часть production path)
├── reboot_module/               # archived legacy module (не часть production path)
├── traffic_core/                # целевая зона для Rust traffic/orchestrator логики
└── docs/                        # документация по миграции, архитектуре и эксплуатации

Production reboot path — только встроенный scheduler в traffic_core/src/reboot.rs.

Важно: ничего из legacy-деревьев не устанавливается, не вызывается и не требуется для runtime пути awg2-harness.

Production deployment model

AWG2 Harness собирается на отдельной Debian 13 amd64 build-machine.

Production Amnezia-хост не должен требовать Rust, cargo, clippy, source tree и legacy bash-скрипты. На production-хост переносится готовый Debian-пакет и вручную подготовленный /etc/awg2-harness/config.toml.

Build machine:

./tools/build.sh --prepare-build-env --bootstrap-rust --yes
./tools/build.sh --package
sha256sum -c dist/SHA256SUMS

Копирование на production host:

scp dist/awg2-harness_*_amd64.deb root@vpn-host:/root/
scp config.toml root@vpn-host:/root/awg2-harness.config.toml

Production host:

apt install ./awg2-harness_*_amd64.deb
install -d -m 0755 /etc/awg2-harness
install -m 0644 /root/awg2-harness.config.toml /etc/awg2-harness/config.toml
awg2-harness validate-config --config /etc/awg2-harness/config.toml
awg2-harness apply-limits --config /etc/awg2-harness/config.toml
awg2-harness apply-firewall --config /etc/awg2-harness/config.toml
awg2-harness status --config /etc/awg2-harness/config.toml
systemctl enable --now awg2-harness.service

Ничего из Amnezia limits (old bash)/ и reboot_module/ не запускается в production-пути.

Основная документация:

S
Description
No description provided
Readme 535 KiB
2026-08-28 18:21:26 +00:00
Languages
Rust 96.5%
Shell 3.5%