Files
AWG2_harness/tools/README.md
T
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

73 lines
2.6 KiB
Markdown

# 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
## Purpose
Скрипт используется на build-machine для проверки, сборки и упаковки AWG2 Harness.
## 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;
- `--build` — запустить build gate явно;
- `--package` — собрать Debian-пакет в `dist/`;
- `--dist-dir <path>` — директория для release artifacts;
- `--version <version>` — переопределить версию пакета;
- `--install` — установить бинарь + systemd unit (без enable/start);
- `--enable` — `systemctl enable --now awg2-harness.service`;
- `--yes` — подтверждение системных изменений (apt/rustup);
- `--skip-fmt` — пропустить `cargo fmt --check`;
- `--help` — справка.
## Build machine flow
```bash
./tools/build.sh --prepare-build-env --bootstrap-rust --yes
./tools/build.sh --build
./tools/build.sh --package
```
## Production host flow
В нормальном production deployment **не нужно** клонировать репозиторий на целевой хост.
Ставится сгенерированный пакет:
```bash
apt install ./awg2-harness_*_amd64.deb
```
## Manual source-tree install
`--install` и `--enable` оставлены для staging/debug из checked-out source tree.
Это **не рекомендуемый** production path.
## What the script intentionally does not do
- не устанавливает Docker автоматически;
- не генерирует production config из example;
- не включает сервис без явного `--enable`;
- не управляет установкой AmneziaWG.