fix28: обновлена production-документация и упаковка docs в deb
This commit is contained in:
+40
-50
@@ -1,72 +1,62 @@
|
||||
# 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).
|
||||
`tools/build.sh` — единый build/package helper для AWG2 Harness. Он предназначен в первую очередь для build-machine. Production-хост обычно получает только готовый `.deb` и `/etc/awg2-harness/config.toml`.
|
||||
|
||||
## Supported host
|
||||
Скрипт собирает workspace из двух бинарей:
|
||||
|
||||
- Debian/Ubuntu (apt-based)
|
||||
- amd64/x86_64
|
||||
```text
|
||||
traffic_core -> awg2-harness
|
||||
reboot_module -> awg2-reboot-scheduler
|
||||
```
|
||||
|
||||
## Purpose
|
||||
И при `--package` создаёт Debian-пакет `dist/awg2-harness_<version>_amd64.deb` с checksum-файлом `dist/SHA256SUMS`.
|
||||
|
||||
Скрипт используется на build-machine для проверки, сборки и упаковки AWG2 Harness.
|
||||
## Поддерживаемая build-среда
|
||||
|
||||
## Default mode
|
||||
- Debian/Ubuntu с `apt`.
|
||||
- amd64/x86_64.
|
||||
- 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
|
||||
sha256sum -c dist/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`.
|
||||
|
||||
- проверяет 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
|
||||
sha256sum -c dist/SHA256SUMS
|
||||
dpkg-deb -I dist/awg2-harness_<version>_amd64.deb
|
||||
dpkg-deb -c dist/awg2-harness_<version>_amd64.deb | sort
|
||||
```
|
||||
|
||||
## Production host flow
|
||||
|
||||
В нормальном production deployment **не нужно** клонировать репозиторий на целевой хост.
|
||||
Ставится сгенерированный пакет:
|
||||
## Production transfer
|
||||
|
||||
```bash
|
||||
apt install ./awg2-harness_*_amd64.deb
|
||||
scp -P 2323 dist/awg2-harness_<version>_amd64.deb root@<server-ip>:/root/
|
||||
scp -P 2323 dist/SHA256SUMS root@<server-ip>:/root/
|
||||
```
|
||||
|
||||
## 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.
|
||||
- не устанавливает AmneziaVPN;
|
||||
- не генерирует client keys/configs;
|
||||
- не копирует `config.example.toml` в `/etc/awg2-harness/config.toml`;
|
||||
- не включает services без `--enable`;
|
||||
- не управляет SSH hardening.
|
||||
|
||||
+6
-3
@@ -329,6 +329,7 @@ package_deb() {
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo/docs"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo/tools"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo/reboot_module"
|
||||
|
||||
install -m 0755 "$TARGET_BIN" "$staging/usr/sbin/awg2-harness"
|
||||
install -m 0755 "$REBOOT_BIN" "$staging/usr/sbin/awg2-reboot-scheduler"
|
||||
@@ -336,10 +337,12 @@ package_deb() {
|
||||
install -m 0644 "$ROOT_DIR/awg2-reboot-scheduler.service" "$staging/lib/systemd/system/awg2-reboot-scheduler.service"
|
||||
install -m 0644 "$ROOT_DIR/config.example.toml" "$staging/usr/share/doc/awg2-harness/repo/config.example.toml"
|
||||
install -m 0644 "$ROOT_DIR/README.md" "$staging/usr/share/doc/awg2-harness/repo/README.md"
|
||||
install -m 0644 "$ROOT_DIR/docs/INSTALLATION.md" "$staging/usr/share/doc/awg2-harness/repo/docs/INSTALLATION.md"
|
||||
install -m 0644 "$ROOT_DIR/docs/CONFIGURATION.md" "$staging/usr/share/doc/awg2-harness/repo/docs/CONFIGURATION.md"
|
||||
install -m 0644 "$ROOT_DIR/docs/ACCEPTANCE_CHECKLIST.md" "$staging/usr/share/doc/awg2-harness/repo/docs/ACCEPTANCE_CHECKLIST.md"
|
||||
local doc
|
||||
for doc in "$ROOT_DIR"/docs/*.md; do
|
||||
install -m 0644 "$doc" "$staging/usr/share/doc/awg2-harness/repo/docs/$(basename "$doc")"
|
||||
done
|
||||
install -m 0644 "$ROOT_DIR/tools/README.md" "$staging/usr/share/doc/awg2-harness/repo/tools/README.md"
|
||||
install -m 0644 "$ROOT_DIR/reboot_module/README.md" "$staging/usr/share/doc/awg2-harness/repo/reboot_module/README.md"
|
||||
|
||||
cat >"$staging/DEBIAN/control" <<EOF
|
||||
Package: awg2-harness
|
||||
|
||||
Reference in New Issue
Block a user