No description
Find a file
strizhkindenis 7eeb7e6977
All checks were successful
Rust CI / Check, Clippy, and Fmt (push) Successful in 1m43s
Update .github/workflows/ci.yml
2026-03-16 04:39:19 +00:00
.github/workflows Update .github/workflows/ci.yml 2026-03-16 04:39:19 +00:00
openrc feat: Add OpenRC and Systemd service files with corresponding documentation for background management. 2026-03-15 22:34:27 +03:00
src chore: cargo fmt 2026-03-16 03:49:29 +03:00
systemd feat: Add OpenRC and Systemd service files with corresponding documentation for background management. 2026-03-15 22:34:27 +03:00
.gitignore feat: introduce Nazuna WireGuard management tool with basic CLI commands and initial project documentation 2026-02-25 08:22:11 +03:00
.ignore feat: introduce Nazuna WireGuard management tool with basic CLI commands and initial project documentation 2026-02-25 08:22:11 +03:00
Cargo.lock chore: update Cargo.lock 2026-03-15 22:58:40 +03:00
Cargo.toml feat: improve description 2026-03-16 03:46:52 +03:00
GEMINI.md feat: introduce Nazuna WireGuard management tool with basic CLI commands and initial project documentation 2026-02-25 08:22:11 +03:00
LICENSE Create LICENSE 2026-02-25 08:23:12 +03:00
README.md feat: improve description 2026-03-16 03:46:52 +03:00

Nazuna 🩸

The no-nonsense WireGuard VPN manager.

Stop wrestling with config files, manual IP allocation, and key rotation. Nazuna automates the tedious parts of running a WireGuard server so you can focus on what matters.

Why Nazuna?

  • Zero Config Headaches: Add users with a single command. Keys and IPs are auto-generated.
  • JSON-Backed: Your entire state lives in one readable JSON file. No heavy databases to manage.
  • Portable: Single binary. Easy to backup, easy to move.
  • Instant Client Configs: Generate QR-ready configs instantly.

Installation

From crates.io (recommended):

cargo install nazuna

Or from the GitHub repository:

cargo install --git https://github.com/denisstrizhkin/nazuna.git

Requires Rust (stable), and wg / wg-quick in your $PATH.

Quick Start

1. Initialize the server (once, on first setup):

sudo nazuna init --server-net 10.50.0.1/24 --endpoint-ip 1.2.3.4 --endpoint-port 51820

2. Add a user:

nazuna add alice
# ✅ User 'alice' added with IP 10.50.0.2

3. Apply changes to the live interface:

sudo nazuna update

4. Get the client config to send to your user:

nazuna cat alice
# Outputs a complete WireGuard config they can import directly

Other Commands

nazuna list          # Show all users and their IPs
nazuna remove alice  # Delete a user
sudo nazuna start    # Bring up the WireGuard interface
sudo nazuna stop     # Bring it down

OpenRC Service (Gentoo/Alpine)

Nazuna includes an OpenRC init script to manage your VPN as a background service.

  1. Copy the init script:
sudo cp openrc/nazuna /etc/init.d/nazuna
  1. Start the service:
sudo rc-service nazuna start
  1. Enable on boot:
sudo rc-update add nazuna default

Systemd Service (Debian/Ubuntu/Arch)

Nazuna includes a systemd service file to manage your VPN as a background service.

  1. Ensure nazuna is accessible in your system path (e.g. symlink to /usr/local/bin):
sudo ln -s ~/.cargo/bin/nazuna /usr/local/bin/nazuna
  1. Copy the service file:
sudo cp systemd/nazuna.service /etc/systemd/system/
  1. Reload systemd and start the service:
sudo systemctl daemon-reload
sudo systemctl start nazuna
  1. Enable on boot:
sudo systemctl enable nazuna

License

MIT. See LICENSE for details.