#vpn #wireguard #wg

app nazuna

A minimalist, purely data-driven management tool for WireGuard 🩸

3 releases

Uses new Rust 2024

0.1.2 Mar 15, 2026
0.1.1 Mar 11, 2026
0.1.0 Mar 11, 2026

#1119 in Network programming

MIT license

18KB
383 lines

Nazuna 🩸

Nazuna is a WireGuard VPN management tool for Linux server administrators. Its job is simple: you run one command, and a new VPN user is created and ready to connect — no manual config editing required.

Who is this for?

Server admins who run a WireGuard VPN and want to manage users without touching config files manually. If you've ever copy-pasted keys and IP addresses by hand, Nazuna does all of that for you.

How it works

Nazuna keeps your entire user list in a single JSON file. When you add a user, it automatically assigns them an IP, generates their keys, and produces a ready-to-send client config — all in seconds.

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.

Dependencies

~1.4–2.5MB
~47K SLoC