- Interface model with per-interface subnet/port/keys; import/adopt existing wg-quick configs (key-less imported peers, optional key rotation), cascade delete - Split wireguard.py into a package (keys via cryptography X25519, status, addressing, conf parse/render, sync, host tuning) - ECharts horizontal topology view (interface -> peers -> site subnets) - Advanced options: MTU, MSS clamping, FwMark/Table, custom PostUp/PostDown, per-peer keepalive override - Runtime settings (sample interval/retention, online threshold, UI refresh) with traffic sample pruning; host tuning (UDP buffers, backlog, GRO forwarding) - Precompiled Tailwind CSS replacing Play CDN runtime (fixes FOUC); stable table layout and diffed polling renders - Host network mode in compose; NAT/isolation iptables moved into app sync Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
33 lines
1.3 KiB
HTML
33 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{% block title %}WireGuard Admin{% endblock %}</title>
|
|
<link rel="stylesheet" href="/static/tailwind.css">
|
|
</head>
|
|
<body class="min-h-screen bg-slate-100 text-slate-800">
|
|
<nav class="bg-slate-900 text-slate-300">
|
|
<div class="mx-auto flex max-w-5xl items-center gap-6 px-6 py-3">
|
|
<span class="text-base font-bold tracking-wide text-white">WireGuard Admin</span>
|
|
<a href="/" class="text-sm hover:text-white">Dashboard</a>
|
|
<a href="/interfaces" class="text-sm hover:text-white">Interfaces</a>
|
|
<a href="/peers" class="text-sm hover:text-white">Peers</a>
|
|
<a href="/topology" class="text-sm hover:text-white">Topology</a>
|
|
<a href="/settings" class="text-sm hover:text-white">Settings</a>
|
|
<form method="post" action="/logout" class="ml-auto">
|
|
<button type="submit" class="text-sm text-slate-400 hover:text-white">Logout</button>
|
|
</form>
|
|
</div>
|
|
</nav>
|
|
<main class="mx-auto max-w-5xl px-6 py-6">
|
|
<div class="mb-4 flex items-center gap-1.5 text-sm text-slate-500">
|
|
<a href="/" class="text-blue-600 hover:underline">Home</a>
|
|
{% block breadcrumbs %}{% endblock %}
|
|
</div>
|
|
{% block content %}{% endblock %}
|
|
</main>
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|