# AWG2 Harness builder `tools/build.sh` — единый build/package helper для AWG2 Harness. Он предназначен в первую очередь для build-machine. Production-хост обычно получает только готовый `.deb` и `/etc/awg2-harness/config.toml`. Скрипт собирает workspace из двух бинарей: ```text traffic_core -> awg2-harness reboot_module -> awg2-reboot-scheduler ``` И при `--package` создаёт Debian-пакет `dist/awg2-harness__amd64.deb` с checksum-файлом `dist/SHA256SUMS`. ## Поддерживаемая build-среда - Debian 13 с `apt`. - Debian package architecture: amd64. - Rust toolchain из `rust-toolchain.toml` (`1.95.0` в текущем дереве). - `Cargo.lock` обязателен: build gate работает в `--locked` режиме. ## Быстрый production build ```bash cd awg2_harness chmod +x tools/build.sh ./tools/build.sh --prepare-build-env --bootstrap-rust --yes ./tools/build.sh --package (cd dist && sha256sum -c SHA256SUMS) dpkg-deb -I dist/awg2-harness_0.3.1_amd64.deb dpkg-deb -c dist/awg2-harness_0.3.1_amd64.deb | sort ``` Release package берёт версию из `traffic_core/Cargo.toml`. `--version` нужен только для осознанного Debian packaging override, валидируется как Debian version и не меняет версию Rust crate. ## Что делает default запуск ```bash ./tools/build.sh ``` Если не указан ни один action flag, включается `--build`. ## Проверка пакета перед переносом ```bash (cd dist && sha256sum -c SHA256SUMS) dpkg-deb -I dist/awg2-harness__amd64.deb dpkg-deb -c dist/awg2-harness__amd64.deb | sort ``` ## Production transfer ```bash scp -P 2323 dist/awg2-harness__amd64.deb root@:/root/ scp -P 2323 dist/SHA256SUMS root@:/root/ ``` ## Runtime config bootstrap на production `--package` кладёт `config.example.toml` только в: ```text /usr/share/doc/awg2-harness/repo/config.example.toml ``` Боевой `/etc/awg2-harness/config.toml` создаётся вручную после установки пакета: ```bash apt install ./awg2-harness__amd64.deb install -d -m 0755 /etc/awg2-harness cp /usr/share/doc/awg2-harness/repo/config.example.toml /etc/awg2-harness/config.toml nano /etc/awg2-harness/config.toml ``` Перед первым `apply-firewall` обязательно сверяйте `ssh_port`, `amnezia_port` и `peer_ipv4_cidr` с реальным состоянием хоста и Amnezia. ## Что скрипт намеренно не делает - не устанавливает AmneziaVPN; - не генерирует client keys/configs; - не копирует `config.example.toml` в `/etc/awg2-harness/config.toml`; - не включает services без `--enable`; - не управляет SSH hardening.