/wired

WireGuard configuration generator written in Rust

Primary LanguageRustBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Wired

Wired is a WireGuard™ configuration generator. It parses TOML file network specifications and generates configurations of different formats.

Currently supported:

  • wg-quick .conf
  • nix .nix
  • QR .png

For nix there is optional auto-encryption of keys via pass and colmena. See Behaviour

Getting started

  • Create minimal configuration
  • run wired, pass configuration with -c
  • Config files will now be in a directory named after the network name
  • Backup the generated statefile to recreated the exact same configs in the future.

Documentation

Development

A flake.nix with all dependencies as well as a .envrc for direnv is provided. The program is tested with cram tests. Execute them with just test.

The code can be improved in places, so feel free to suggest refactorings in order to make extensibility easier going forward. Just open an issue first if you would like to add new functionality and get it merged.