60 lines
1.9 KiB
Markdown
60 lines
1.9 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
|
|
|
|
## 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 явно;
|
|
- `--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 --install
|
|
./tools/build.sh --enable
|
|
```
|
|
|
|
## What the script intentionally does not do
|
|
|
|
- не устанавливает Docker автоматически;
|
|
- не генерирует production config из example;
|
|
- не включает сервис без явного `--enable`;
|
|
- не управляет установкой AmneziaWG.
|