# 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 --version 0.1.6 (cd dist && sha256sum -c SHA256SUMS) dpkg-deb -I dist/awg2-harness_0.1.6_amd64.deb dpkg-deb -c dist/awg2-harness_0.1.6_amd64.deb | sort ``` ## Что делает 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.