Commit Graph

68 Commits

Author SHA1 Message Date
Skyline bbe37e08b4 feat: persist traffic history in jsondb across restarts
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.
2026-05-16 03:23:59 -06:00
Skyline 246eb1bb10 feat(api,web): passkeys_enabled on profile API, peer VPN connected in UI
- 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.
2026-05-05 14:02:31 -06:00
Skyline 644f027756 Document HTTP API; align Android session idle with companion app
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.
2026-05-03 21:35:41 -06:00
Skyline cdb4a1a764 Add Android client integration on the server
- 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
2026-05-03 17:45:28 -06:00
Skyline ee0399b26c Improve WireGuard apply flow and shell UI
- 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
2026-05-01 17:04:03 -06:00
Skyline 1b07fe442d WireGuard UI v2: shell UI, i18n, passkeys, traffic, dashboard, logs
Summary
- Replace single-page flow with fixed shell layout (sidebar, top bar, Apply config
  orchestration) and wgshell.css styling.
- Add English/Spanish UI via embedded locale JSON and template tr() + client WG_T/wgT().

New packages / modules
- locale/: embedded es.json/en.json, T(), MsgMap(), JSONForHTML for shell pages.
- handler/render_helpers.go: renderShell, injectUILang, nav apply-config badge.
- handler/passkeys.go: WebAuthn register/login begin+finish, rename/remove, clear on
  global Passkeys disable; session passkey credential tracking.
- handler/wg_traffic_cache.go: in-memory WireGuard counter sampling, traffic series API.
- handler/wg_status_devices.go: wgctrl device/peer views, dashboard KPI payloads,
  live peer stats for client cards.
- handler/logs_tail.go: optional file tail + systemd/journal sections for Logs page.
- util/wg_quick.go, util/wg_synconf.go: gated wg-quick and wg syncconf after apply.
- util/sysctl_linux.go + sysctl_stub.go: optional IPv4 ip_forward sysctl.
- util/host_uptime.go, util/server_ui.go: host uptime and server UI helpers.

Templates & UX
- New pages: dashboard.html, traffic.html, logs.html; extended global_settings,
  login (passkey), profile, users_settings, base shell, clients card grid with
  peer traffic polling.

Model / routes
- Global settings: session timeout, UI theme/language, realtime stats, Passkeys toggle;
  multi-user CRUD, suspend, revoke sessions, admin role APIs (main.go + routes).

Docs
- README: WireGuard UI v2 section, expanded Features, operator notes, v2 screenshot
  (GitHub user-attachments CDN URL).

Chore
- .gitignore: .DS_Store, wireguard-ui-v2 build artifact; English comments across
  handlers, templates, CSS, helper.js.
2026-04-30 20:51:42 -06:00
0xCA 7856ce9555
Status page: display peers IPs only to admins (#521) 2024-01-10 20:27:01 +01:00
0xCA ecea82d172
Support for notes about clients (#527) 2024-01-09 21:03:27 +01:00
0xCA fa33d3f66e
Session improvements (#510) 2024-01-06 09:11:20 +01:00
Khanh Ngo b3c22aa81f
Add golangci-lint CI (#516) 2023-12-31 21:46:30 +01:00
Khanh Ngo 45849a2aee
chore: code adjustment (#512) 2023-12-29 10:56:37 +01:00
0xCA 41bf0bc92c
Telegram support (#488) 2023-12-29 09:22:12 +01:00
0xCA a9be53899c
Subnet range selector, interface fixes (#481) 2023-12-27 09:08:55 +01:00
Michael Walter af7742bfb3
Update routes.go (#475)
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
2023-12-25 20:22:42 +01:00
Gabriel Soares e2e1159ef4
add endpoint field to client (#470) 2023-12-25 20:21:37 +01:00
Marcus Wichelmann 13a4c05ff5
fix: add basic server-side input validation (#435)
This mitigates possible path traversal attacks by using
e.g. "../user" as a user name.
2023-12-25 20:07:47 +01:00
Paul Dee 364a43e3dc
Implement updating a client Pub+PSK when editing a client (#401)
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.
2023-08-11 10:34:11 +02:00
Paul Dee cfbdae7abb
Follow-up fix for fwmark 101b5564c2 (#372)
Remove all FwMark settings from client configs (illegal) and QRcode
(also illegal).
2023-05-24 12:02:07 +02:00
ByteDream 4fc52b62d2
Replace go.rice with native go embedding (#331) 2023-03-16 08:40:04 +01:00
Arminas c8240fe157
fixed about page not showing menu items (#343) 2023-03-15 21:45:46 +01:00
Arminas 9f20fe6c09
Show apply config button only when needed (#292) 2023-03-15 21:15:41 +01:00
Arminas 6dd5590940
User management panel (#289) 2023-03-15 21:13:53 +01:00
Arminas aadf099f50
About page (#296) 2023-02-16 17:31:24 +01:00
Arminas cc285c5c20
Status show IP's (#291) 2023-02-16 17:10:11 +01:00
ByteDream a866977cb0
Add favicon (#288) 2023-02-16 17:09:24 +01:00
Paul Dee e76c573b1d
Some comment fixes (#278) 2022-12-26 10:02:07 +01:00
Khanh Ngo 86e8ad41cb
feat: update user profile (#280) 2022-12-21 21:52:00 +01:00
Khanh Ngo ea55b36a6f
Update readme and code comments (#272) 2022-12-13 22:44:11 +01:00
Paul Dee 4b0a0d9061
Skip PresharedKey generation (#271)
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
2022-12-13 21:35:13 +01:00
itsvit-vlasov-y a80741e748
Added checkbox FwMark in QRCode generation (#260) 2022-12-02 23:40:29 +01:00
Marcus Wichelmann 2c2db61158
Add support for password hashes as an optional alternative to plaintext passwords (#216) 2022-09-30 10:24:54 +02:00
Marcus Wichelmann 031d2cb7e8
Mitigate CSRF attacks (#206) 2022-07-14 08:36:47 +02:00
Marcus Wichelmann 97652be545
Use ConstantTimeCompare to make the login more secure and not leak information about the used password (#205) 2022-07-14 08:35:58 +02:00
Quentin Machu 87b08a8f7c
*: allows for BASE_PATH configuration (#183) 2022-04-25 09:17:13 +02:00
ned3y2k 0224e1f137
Implements Wake On Lan and management features (#164) 2022-03-20 10:03:27 +01:00
Maxim Kochurov 037a6c56d3
Implement Optional Private Keys (#161) 2022-03-13 17:33:37 +01:00
brittondodd 341f9b6a42
Allow passing extra allowed subnets (#114) 2022-01-29 08:45:00 +01:00
Khanh Ngo bf2b74fe84
Update healthcheck (#124) 2021-11-21 10:31:27 +01:00
Hoang Nguyen 93e3e847f2
Update helper.js (#66) 2021-11-09 11:06:19 +01:00
Lukáš Kasič c1d541b78f
Fix generating IPv6 address (#105) 2021-11-06 13:15:14 +01:00
Georgios Komninos b7c0990dcb
Abstracts database storage & Status page UI (#88) 2021-08-28 15:10:30 +02:00
Georgios Komninos 1711530dda
Fixes security issue & Adds support to sent configuration via email (#83) 2021-08-08 19:55:59 +02:00
Gerwim 2aa042b919
Added UseServerDNS option for clients who do not have to use the DNS specified in the server configuration. (#79) 2021-08-05 19:58:01 +02:00
Khanh Ngo 5ec77ecd72
Fix username when authentication is disabled 2020-10-10 16:00:18 +02:00
Khanh Ngo 9dca2b7361
Login disable (#35)
Add ability to disable authentication
2020-10-09 23:33:29 +02:00
Khanh Ngo cd7f6e500a
Edit wireguard client (#19)
* Add the ability to modify an existing client
* Update client page using Ajax
2020-06-02 11:20:50 +07:00
Khanh Ngo 9617425033
Add preshared key in wireguard config (#15) 2020-05-28 09:25:21 +07:00
Khanh Ngo 9a27cc366f
Single binary build (#10)
Single binary build
Use go rice for embedding the static files and templates to the binary file
2020-05-21 15:51:24 +07:00
Khanh Ngo 91f06914d4
Add download button 2020-04-25 16:58:14 +07:00
Khanh Ngo a5fbb7b58a
Add authentication 2020-04-24 18:14:54 +07:00