# AWG2 Harness builder Основной скрипт: [`build.sh`](build.sh). Целевой crate: [`traffic_core`](../traffic_core/Cargo.toml). Unit: [`awg2-harness.service`](../awg2-harness.service). Пример конфига: [`config.example.toml`](../config.example.toml). ## Supported host - Debian/Ubuntu (apt-based) - amd64/x86_64 ## Default mode ```bash ./tools/build.sh ``` Дефолтный запуск **не изменяет систему**. Он: - проверяет prereqs; - запускает `fmt/clippy/test/build` в locked-режиме; - печатает `file`, `ldd`, `sha256` для собранного бинаря. ## Flags - `--prepare-build-env` — установить недостающие build-пакеты; - `--prepare-runtime-env` — установить недостающие runtime-пакеты; - `--bootstrap-rust` — установить rustup и pinned toolchain; - `--install` — установить бинарь + systemd unit (без enable/start); - `--enable` — `systemctl enable --now awg2-harness.service`; - `--yes` — подтверждение системных изменений (apt/rustup); - `--skip-fmt` — пропустить `cargo fmt --check`; - `--help` — справка. ## Typical build machine flow ```bash ./tools/build.sh --prepare-build-env --bootstrap-rust --yes ./tools/build.sh ``` ## Typical production host flow ```bash ./tools/build.sh --prepare-runtime-env --yes install -d -m 0755 /etc/awg2-harness install -m 0644 config.toml /etc/awg2-harness/config.toml ./tools/build.sh ./tools/build.sh --install ./tools/build.sh --enable ``` ## What the script intentionally does not do - не устанавливает Docker автоматически; - не генерирует production config из example; - не включает сервис без явного `--enable`; - не управляет установкой AmneziaWG.