Skip to content
Stefano Bertelli edited this page Apr 3, 2026 · 1 revision

WireGUI

WireGUI is a web-based management interface for WireGuard VPN. It provides a complete platform for managing VPN users, devices, firewall rules, and identity provider integrations through an intuitive web UI and REST API.

Key Features

  • Device Management - Create, configure, and monitor WireGuard VPN devices with automatic IP allocation, QR code provisioning, and real-time traffic statistics
  • User Management - Role-based access control (admin/unprivileged) with local authentication, OIDC, SAML, magic links, and multi-factor authentication (TOTP, WebAuthn)
  • Firewall Rules - Per-user and global nftables firewall rules with network policies for peer-to-peer and LAN communication
  • Identity Provider Integration - Single Sign-On via OpenID Connect and SAML, with automatic IdP provisioning from YAML configuration
  • Real-Time Monitoring - Live traffic statistics, connection status indicators, WAN connectivity checks, and system diagnostics
  • REST API - Full-featured API for programmatic management of users, devices, rules, and configuration
  • Dark Mode - Built-in theme toggle with light, dark, and auto modes

Architecture

Component Technology
UI Framework NiceGUI (reactive server-side UI over WebSocket)
ORM SQLModel (SQLAlchemy + Pydantic)
Database PostgreSQL (via asyncpg)
Cache/Sessions Valkey (Redis-compatible)
Migrations Alembic
REST API FastAPI (built into NiceGUI)
VPN WireGuard (via wg and ip commands)
Firewall nftables (via nft commands)
Python 3.13

Wiki Contents

Clone this wiki locally