6.0 KiB
nx9-wg Production Installation & Deployment Guide
This guide provides the complete, authoritative reference for installing, configuring, securing, maintaining, upgrading, and uninstallation of the nx9-wg WireGuard Appliance Management Engine on Linux.
Prerequisites & Runtime Environment
| Requirement | Specification | Details |
|---|---|---|
| Operating System | Linux (Kernel 5.6+) | Native in-tree WireGuard module support (wireguard.ko). |
| Architecture | x86_64 or aarch64 |
Native 64-bit Linux executable. |
| Packet Filtering | nftables / libnftables.so.1 |
Native Netfilter execution plane for firewall and NAT masquerade. |
| Linux Capabilities | CAP_NET_ADMIN, CAP_NET_BIND_SERVICE |
Required for RTNETLINK, Generic Netlink, and low-port UDP binding. |
| Database | SQLite 3 (Embedded) | Statically bundled in binary; zero external database server required. |
| Process Model | Single Native Executable | Zero external subprocess invocations (no wg, ip, nft, bash, Python, or Node.js). |
1. Quick Installation via Release Archive
Download and extract the official release archive:
# 1. Download release archive (replace with current version/arch)
tar -xzf nx9-wg-v1.1.0-linux-x86_64.tar.gz
cd nx9-wg-v1.1.0-linux-x86_64
# 2. Run the automated installer as root
sudo bash install.sh
The installer automatically:
- Installs
/usr/local/bin/nx9-wg(mode0755) - Creates
/etc/nx9-wg(mode0750) and installs/etc/nx9-wg/config.toml(mode0640) if absent - Creates
/var/lib/nx9-wg(mode0700) and/var/lib/nx9-wg/backups(mode0700) - Bootstraps the initial administrator with a secure random password (
/var/lib/nx9-wg/admin-initial-password) - Installs
/etc/systemd/system/nx9-wg.service(mode0644) - Enables and starts the
nx9-wgservice
2. Manual Step-by-Step Installation
If you prefer to perform each step manually:
Step 2.1 — Install Binary
sudo install -m 0755 target/release/nx9-wg /usr/local/bin/nx9-wg
Step 2.2 — Create Filesystem Layout & Set Strict Permissions
sudo install -d -m 0750 /etc/nx9-wg
sudo install -d -m 0700 /var/lib/nx9-wg
sudo install -d -m 0700 /var/lib/nx9-wg/backups
sudo install -d -m 0750 /var/log/nx9-wg
Step 2.3 — Install Configuration File
if [ ! -f /etc/nx9-wg/config.toml ]; then
sudo install -m 0640 config.example.toml /etc/nx9-wg/config.toml
fi
Step 2.4 — Bootstrap Initial Administrator Account
Generate a cryptographically secure 24-character random password written to a restricted file:
sudo /usr/local/bin/nx9-wg \
--config /etc/nx9-wg/config.toml \
--data-dir /var/lib/nx9-wg \
init --generate-password --write-password-file /var/lib/nx9-wg/admin-password
sudo chmod 0600 /var/lib/nx9-wg/admin-password
Step 2.5 — Deploy & Start systemd Service
sudo cp nx9-wg.service /etc/systemd/system/nx9-wg.service
sudo systemctl daemon-reload
sudo systemctl enable --now nx9-wg
3. Verification & First Operational Workflow
Step 3.1 — Check Service Status
sudo systemctl status nx9-wg
Step 3.2 — Check Operational Health via CLI
sudo /usr/local/bin/nx9-wg system health
sudo /usr/local/bin/nx9-wg diagnostics all
Step 3.3 — Log in via Web User Interface
Open your browser at http://<server-ip>:8080/ and log in with:
- Username:
admin - Password: Found in
/var/lib/nx9-wg/admin-password
Step 3.4 — Create First WireGuard Interface (wg0)
sudo /usr/local/bin/nx9-wg interface create \
--address-v4 10.100.0.1/24 \
--port 51820 \
--mtu 1420 \
wg0
Step 3.5 — Enroll Client Peer
sudo /usr/local/bin/nx9-wg peer create \
--interface wg0 \
--name alice-mobile \
--profile full_tunnel \
--mtu 1280
Step 3.6 — Apply Reconciliation
sudo /usr/local/bin/nx9-wg reconcile apply
4. Production Backup & Recovery
Mandatory Pre-Upgrade Backup
Always create an authoritative database backup before applying system updates or binary upgrades:
sudo /usr/local/bin/nx9-wg backup create --description "Pre-upgrade snapshot"
sudo /usr/local/bin/nx9-wg backup list
Restoring from Backup
# 1. Stop active service
sudo systemctl stop nx9-wg
# 2. Restore database from backup snapshot
sudo /usr/local/bin/nx9-wg backup restore <BACKUP_ID>
# 3. Restart service & reconcile state
sudo systemctl start nx9-wg
sudo /usr/local/bin/nx9-wg reconcile apply
5. Upgrading nx9-wg
The nx9-wg persistence model utilizes SQLite with automatic schema migrations executed upon startup.
# 1. Stop service
sudo systemctl stop nx9-wg
# 2. Create backup
sudo /usr/local/bin/nx9-wg backup create --description "Pre-upgrade backup"
# 3. Install new binary
sudo install -m 0755 nx9-wg-new /usr/local/bin/nx9-wg
# 4. Restart service (automatic migration)
sudo systemctl start nx9-wg
# 5. Verify convergence
sudo /usr/local/bin/nx9-wg reconcile plan
sudo /usr/local/bin/nx9-wg system health
6. Rollback Procedure
If a new binary fails or encounters incompatibility:
- Stop the active service:
sudo systemctl stop nx9-wg - Re-install the previous working binary:
sudo install -m 0755 nx9-wg-previous /usr/local/bin/nx9-wg - Restore the pre-upgrade database backup if schema changes occurred:
sudo /usr/local/bin/nx9-wg backup restore <PRE_UPGRADE_BACKUP_ID> - Start service and verify:
sudo systemctl start nx9-wg sudo /usr/local/bin/nx9-wg system health
7. Safe Uninstallation
Standard Uninstallation (Preserves Database & Configuration)
sudo bash uninstall.sh
Stops and disables the service, removes /usr/local/bin/nx9-wg and the systemd unit file, while preserving /etc/nx9-wg and /var/lib/nx9-wg.
Total Purge (Destructive)
sudo bash uninstall.sh --purge
Requires explicit interactive confirmation before permanently deleting all database files, backups, logs, and configuration.