Save the traffic ring buffer to db/server/traffic_cache.json every
two minutes and on SIGINT/SIGTERM before shutdown; restore buckets on
startup. Add setup-linux-production.sh, expand FCM and passkey README
sections, and refresh the clients list after creating a peer on the
clients page.
- Include passkeys_enabled in GET /api/profile/passkeys for native clients.
- Extend wg-peer-stats with connected/handshake-aligned status; wire clients list.
- Update helper.js, clients template, locales, and README accordingly.
Add README table of contents and HTTP API reference material.
Session cookies respect a higher idle floor for requests with
X-WGUI-Client: android; passkey login uses the same effective idle.
- Digital Asset Links endpoint and passkey origin handling for the mobile app
- FCM device token registration and push notification plumbing
- Session cookie configuration for native WebView flows
- Routes, locales, README, and small traffic/status handler updates
- Respect tunnel running state when saving config; avoid implicit restart when down
- Optional pending wg.conf when tunnel stopped (WGUI_WGCONF_PENDING_WHEN_TUNNEL_STOPPED)
- wg-quick: best-effort down before up with retry on transient failures
- Dashboard: explicit green/red badges for server active/inactive (light theme)
- Client cards: metadata chips row uses full card width below header row
- Locales and README updates for behavior and troubleshooting
use config file download mime type "txt/conf" to prevent downloaded configs being saved as <filename>.txt, instead of wanted <filename>.conf.
Tested on Android Firefox and Chrome
This covers the normal use-case where clients generate keys
locally on their device and notify the server of their new/updated keys.
The server verifies Preshared and Public keys independently of each
other. Should a client generate a new tunnel which lacks a PSK and send
only a Public key to the server (admin) where the earlier server created
profile has a Preshared key, the server admin/user must determine the
course of action:
keep or remove the PSK.
Helpful for those who already have users deployed.
Enter `-` in the Preshared Key field at user creation time to skip its
creation.
The template conf takes care of the rest.
Fixes issue #235