Add wireguard-ui-multi core: multi-server DB, WireGuard manager, REST API, UI, installers
Implements the from-scratch multi-server WireGuard management fork per CLAUDE.md spec: sqlite schema (servers/peers/audit_log/users), Curve25519 key generation, per-interface config rendering + wg-quick/systemd control, nftables hook scaffolding, session+CSRF-protected REST API with QR code and config download endpoints, a minimal vanilla-JS web UI, legacy wg0.conf migration, and both a native installer and a Proxmox LXC provisioning script (with auto-detected latest Debian template). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3d6608ef80
commit
3b3ffd8ebf
@@ -0,0 +1,60 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>wireguard-ui-multi — Server</title>
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<p><a href="/">← Zurück zum Dashboard</a></p>
|
||||
|
||||
<h1 id="server-name">Server</h1>
|
||||
<p id="server-error" class="error"></p>
|
||||
|
||||
<table class="details">
|
||||
<tbody>
|
||||
<tr><th>Interface</th><td id="d-interface"></td></tr>
|
||||
<tr><th>Port</th><td id="d-port"></td></tr>
|
||||
<tr><th>Address Range</th><td id="d-address"></td></tr>
|
||||
<tr><th>DNS</th><td id="d-dns"></td></tr>
|
||||
<tr><th>MTU</th><td id="d-mtu"></td></tr>
|
||||
<tr><th>Status</th><td id="d-status"></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="actions">
|
||||
<button id="btn-start">Start</button>
|
||||
<button id="btn-stop">Stop</button>
|
||||
<button id="btn-reload">Neu laden</button>
|
||||
<button id="btn-download">Config herunterladen</button>
|
||||
</div>
|
||||
|
||||
<h2>Peers</h2>
|
||||
<table id="peers">
|
||||
<thead>
|
||||
<tr><th>Name</th><th>Email</th><th>Allowed IPs</th><th>Aktiv</th><th>Aktionen</th></tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
|
||||
<h2>Neuen Peer hinzufügen</h2>
|
||||
<form id="peer-form">
|
||||
<input type="text" name="name" placeholder="Name" required>
|
||||
<input type="email" name="email" placeholder="Email">
|
||||
<input type="text" name="allowed_ips" placeholder="Allowed IPs, z.B. 10.20.22.5/32" required>
|
||||
<input type="number" name="persistent_keepalive" placeholder="Persistent Keepalive (s)" value="25">
|
||||
<label><input type="checkbox" name="use_preshared_key"> Preshared Key verwenden</label>
|
||||
<button type="submit">Peer hinzufügen</button>
|
||||
<p id="peer-error" class="error"></p>
|
||||
</form>
|
||||
|
||||
<div id="qrcode-modal" class="modal hidden">
|
||||
<div class="modal-content">
|
||||
<button id="qrcode-close">Schließen</button>
|
||||
<img id="qrcode-img" alt="QR Code">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/server.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user