# Installation ## Deployment contract - Build выполняется на отдельной Debian 13 amd64 build-machine. - Production-хост получает готовый Debian-пакет. - На production-хосте не требуются Rust/cargo/source tree. - Amnezia должна быть уже установлена и работать через Docker. - Production-конфиг создаётся вручную; [`config.example.toml`](../config.example.toml) не копируется автоматически как боевой конфиг. ## A. Build machine ### A1. Подготовка build environment ```bash ./tools/build.sh --prepare-build-env --bootstrap-rust --yes ``` ### A2. Build и тесты ```bash ./tools/build.sh --build ``` ### A3. Сборка пакета ```bash ./tools/build.sh --package sha256sum -c dist/SHA256SUMS ``` ## B. Transfer artifacts ```bash scp dist/awg2-harness_*_amd64.deb root@vpn-host:/root/ scp config.toml root@vpn-host:/root/awg2-harness.config.toml ``` ## C. Production host ### C1. Install package ```bash apt install ./awg2-harness_*_amd64.deb ``` ### C2. Install config ```bash install -d -m 0755 /etc/awg2-harness install -m 0644 /root/awg2-harness.config.toml /etc/awg2-harness/config.toml ``` ### C3. Validate and apply ```bash awg2-harness --config /etc/awg2-harness/config.toml validate-config awg2-harness --config /etc/awg2-harness/config.toml validate-runtime awg2-harness --config /etc/awg2-harness/config.toml ensure-swap awg2-harness --config /etc/awg2-harness/config.toml apply-limits awg2-harness --config /etc/awg2-harness/config.toml apply-firewall awg2-harness --config /etc/awg2-harness/config.toml status ``` When `swap.enabled=true`, AWG2 Harness will disable all other active swap entries and rewrite `/etc/fstab` swap entries to a single managed swapfile. ### C4. Enable services ```bash systemctl enable --now awg2-harness.service systemctl enable --now awg2-reboot-scheduler.service ``` ## D. Manual source-tree install (staging/debug only) Режим [`./tools/build.sh --install`](../tools/build.sh) предназначен для staging/debug с checkout-репозиторием. Это **не** основной production deployment path.