From 7e7b884cc6654b5fd0cad08f8a194cf4f6a0f0d1 Mon Sep 17 00:00:00 2001 From: Alexander Miroshnichenko Date: Sat, 8 Aug 2026 21:13:31 +0300 Subject: [PATCH] feat: add awg-tool package Rust CLI for AmneziaWG self-hosting from Vadim-Khristenko/awg-containers-and-tools: generates 1.0/1.5/2.0/3.0 obfuscation parameters, exports .conf and vpn:// configs, installs servers over SSH. --- README.md | 2 ++ packages/awg-tool/default.nix | 5 ++++ packages/awg-tool/package.nix | 51 +++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 packages/awg-tool/default.nix create mode 100644 packages/awg-tool/package.nix diff --git a/README.md b/README.md index 3b0c7c7..07ae3de 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ A custom Nix overlay and flake providing additional packages not found in upstre | Package | Description | Category | |---------|-------------|----------| +| `awg-tool` | CLI for AmneziaWG self-hosting — generates 1.0/1.5/2.0/3.0 obfuscation parameters, exports .conf and vpn:// configs, installs servers over SSH | Networking | | `aionui` | Free, open-source, Cowork app with AI Agents | AI Coding Agents | | `container-use` | Containerized environments for coding agents | AI Coding Agents | | `desloppify` | Multi-language codebase health scanner and technical debt tracker for AI agents | AI Coding Agents | @@ -141,6 +142,7 @@ nix-overlay/ │ ├── default.nix # Binary-cache-friendly overlay │ └── shared-nixpkgs.nix # Dependency-sharing overlay ├── packages/ # Package definitions +│ ├── awg-tool/ # AmneziaWG parameter generation and SSH deployment CLI │ ├── aionui/ # AionUi - AI Cowork desktop app │ ├── container-use/ # Containerized environments for coding agents │ ├── default/ # Meta-package listing all packages diff --git a/packages/awg-tool/default.nix b/packages/awg-tool/default.nix new file mode 100644 index 0000000..291b4f4 --- /dev/null +++ b/packages/awg-tool/default.nix @@ -0,0 +1,5 @@ +{ + pkgs, + ... +}: +pkgs.callPackage ./package.nix { } diff --git a/packages/awg-tool/package.nix b/packages/awg-tool/package.nix new file mode 100644 index 0000000..d2c41cc --- /dev/null +++ b/packages/awg-tool/package.nix @@ -0,0 +1,51 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + cmake, + perl, +}: + +rustPlatform.buildRustPackage rec { + pname = "awg-tool"; + version = "0.2.2"; + + src = fetchFromGitHub { + owner = "Vadim-Khristenko"; + repo = "awg-containers-and-tools"; + rev = "v${version}"; + hash = "sha256-z4LG+z60uqsfkRyt7Dc8Fc5GMfpiF7G0N9PXnzTUJms="; + }; + + # awg-core builds ssh2 with vendored-openssl, which compiles libssh2 + # (via cmake) and OpenSSL (via perl Configure) from source. + nativeBuildInputs = [ + cmake + perl + ]; + + cargoHash = "sha256-Nb5tmwvhzKAldHai7yxtYapjbZmai0ujBX9c6nRGZk0="; + + # Upstream tests exercise Docker/SSH targets; unit tests are already + # covered by the upstream CI before a release is cut. + doCheck = false; + + passthru = { + category = "Networking"; + updateScript = [ + "nix-update" + "--flake" + ".#awg-tool" + ]; + }; + + meta = with lib; { + description = "CLI for AmneziaWG self-hosting — generates 1.0/1.5/2.0/3.0 obfuscation parameters, exports .conf and vpn:// configs, installs servers over SSH"; + homepage = "https://github.com/Vadim-Khristenko/awg-containers-and-tools"; + changelog = "https://github.com/Vadim-Khristenko/awg-containers-and-tools/releases/tag/v${version}"; + license = licenses.mit; + sourceProvenance = with sourceTypes; [ fromSource ]; + mainProgram = "awg-tool"; + platforms = platforms.linux; + }; +}