Commit Graph

99 Commits

Author SHA1 Message Date
xboard
1e7fa93f99 feat: node traffic limit & batch operations
- Traffic monitoring with transfer_enable limit
- Batch delete nodes
- Reset traffic (single/batch)
2026-03-30 02:50:56 +08:00
xboard
7cd1fb185b Revert "fix: escape Telegram Markdown special characters (fix #450)"
This reverts commit e10ec47140.
2026-03-29 17:48:49 +08:00
xboard
e10ec47140 fix: escape Telegram Markdown special characters (fix #450) 2026-03-28 09:10:54 +08:00
xboard
7af0764031 feat: implement email case-insensitive queries (fix #318) 2026-03-28 07:09:21 +08:00
xboard
c8ef04d55f fix: use ServerService::getServer() for node lookup in WebSocket 2026-03-26 03:51:58 +08:00
xboard
b9276470eb fix: resolve device sync issues and refactor WebSocket server 2026-03-26 03:33:01 +08:00
xboard
b487d6c561 refactor: restructure device limit system 2026-03-25 17:50:16 +08:00
xboard
d179f49bbb feat: ws notify nodes when user traffic is exhausted 2026-03-25 01:44:55 +08:00
xboard
8b776b1ea1 feat: Trojan Reality support and protocol distribution optimizations 2026-03-23 14:56:41 +08:00
xboard
8137a11008 feat: Add admin bulk-mail placeholder variables and template rendering 2026-03-19 05:02:16 +08:00
xboard
63f5080006 fix(runtime): force app_url/force_https per-request via middlewar 2026-03-19 04:22:17 +08:00
xboard
2e4bfe08df feat: Refactor uTLS & Multiplex Support, Node Status Push Optimization
- Server/ServerSave/Server.php: Unified utls and multiplex schema, validation, and defaults for vmess/vless/trojan/mieru protocols, enabling more flexible protocol configuration.
- Protocols (SingBox/ClashMeta/Shadowrocket/Stash/General): All protocol generators now support utls (client-fingerprint/fp) and multiplex options. Removed getRandFingerprint, replaced with getTlsFingerprint supporting random/custom fingerprints.
- Helper.php: Refactored TLS fingerprint utility to support object/string/random input.
- ServerService: Abstracted updateMetrics method to unify HTTP/WS node status caching logic.
- NodeWebSocketServer: Improved node connection, status push, and full sync logic; adjusted log levels; clarified push logic.
- ServerController: Reused ServerService for node metrics handling, reducing code duplication.
- Docs: Improved aapanel installation docs, added fix for empty admin dashboard.
2026-03-16 23:09:56 +08:00
xboard
d92c32fab5 feat: introduce WebSocket sync for XBoard nodes
- Implement Workerman-based `xboard:ws-server` for real-time node synchronization.
- Support custom routes, outbounds, and certificate configurations via JSON.
- Optimize scheduled tasks with `lazyById` to minimize memory footprint.
- Enhance reactivity using Observers for `Plan`, `Server`, and `ServerRoute`.
- Expand protocol support for `httpupgrade`, `h2`, and `mieru`.
2026-03-15 09:49:11 +08:00
xboard
e355f2b61a fix(register): handle invalid invite code as API error (#792) 2026-03-11 02:09:25 +08:00
xboard
48fd340b0b fix: apply device_limit from plan when assigning via gift card (#630) 2026-03-09 06:51:10 +08:00
xboard
6f860c784a fix: return dynamic rate instead of base rate in user server list (#709) 2026-03-09 06:47:30 +08:00
Xboard
8d5ead43ac Merge pull request #734 from kelly5454/master
fix: Type error when redeeming gift card
2026-03-09 04:56:14 +08:00
xboard
7801a0fb19 feat: add v2node support 2025-11-22 20:33:38 +08:00
xboard
af431d178e fix: preserve theme config when upgrading theme 2025-11-07 19:25:40 +08:00
kelly5454
e26677813c fix: exchange gift card type error 2025-10-30 21:08:39 +08:00
xboard
fc685ae9b5 feat(plugin): auto-decode JSON config values by type in PluginManager 2025-10-20 18:56:44 +08:00
xboard
245ddc56e7 fix: avoid getCurrentCommit on cache hit 2025-09-26 19:04:17 +08:00
xboard
8176afb073 fix(plugin): remove stale plugin records when files missing; adjust logging 2025-09-23 14:59:22 +08:00
xboard
471ec94ae3 fix 2025-09-16 18:44:44 +08:00
xboard
371fd791ac fix: improve date calculation for month-end reset schedules 2025-08-31 20:30:02 +08:00
Miku
69637949ce fix(order): correct renewal handling for onetime plan
fixes onetime plan renewal logic
2025-08-29 23:24:48 +08:00
xboard
4f7f3d7168 feat: optimize server.user.get hook definition 2025-08-29 19:21:49 +08:00
xboard
72ead1cf8f fix: support resources/views directory for plugin views 2025-08-23 15:26:09 +08:00
xboard
95c5a6e94c fix(auth): handle null redirect in quick login url 2025-08-21 18:57:19 +08:00
xboard
adc8b61359 fix: fix user expiration date display and update issues
- Fix 1970 year display for unlimited validity users
- Resolve SQL error in user update endpoint
- Closes #625
2025-08-08 03:04:44 +08:00
xboard
fe4f8d5875 fix: change user default_at to 0 2025-07-27 08:11:42 +08:00
xboard
06cffa32b4 feat: add plugin migrations and fix plan management bugs
- Plugin database migration support
- Fix empty prices error in plan management
- Plugin update functionality
- Custom shadowsocks encryption algorithms
2025-07-27 00:19:14 +08:00
xboard
5b8cf681f9 feat: enhance plugin management
- Add command support for plugin management
- Optimize plugin management page layout
- Add email copy functionality for users
- Convert payment methods and Telegram Bot to plugin system
2025-07-26 18:49:58 +08:00
xboard
abd549c3e2 fix: correct return_url generation for payment in frontend-backend separated deployment 2025-07-21 23:54:00 +08:00
xboard
dcd1d64bbd feat: add multiple hooks, pligun schedule support ,add hook:list artisan command 2025-07-21 13:29:17 +08:00
xboard
05e8feedfb fix: resolve theme refresh issue after updates 2025-07-21 08:27:41 +08:00
xboard
b1f15995b6 refactor: rename hook form traffic.before_process to traffic.process.before 2025-07-18 23:39:19 +08:00
xboard
7fc913e853 refactor: refactor subscription delivery logic, change payment return_url to origin_url concatenation
- Unify protocol filter configuration to client.type.field (dot-path, three-segment) format, support strict whitelist mode
- Refactor AbstractProtocol and all protocol classes for more flexible and maintainable subscription delivery
- Change payment callback logic: use origin_url concatenation instead of return_url for more accurate redirects
2025-07-18 15:42:58 +08:00
xboard
f2fbcc86d8 feat(hook): add order.create.after, order.open.before, order.open.after, and protocol.servers.filtered hooks 2025-07-17 12:34:31 +08:00
xboard
480e6162cb feat: consider remaining traffic in surplus calculation when resetting traffic on plan change 2025-07-17 12:13:03 +08:00
xboard
ac77a73098 refactor: optimize surplus value calculation for plan deduction 2025-07-17 11:32:34 +08:00
xboard
36f0704360 fix: theme switch service 2025-07-15 20:50:04 +08:00
xboard
170923bad5 chore: code style and type declaration improvements 2025-07-15 02:55:58 +08:00
xboard
5a86c46ab9 feat: improve traffic reset precision and admin features
- Increase traffic reset granularity to seconds
- Add next reset time display in admin pane
2025-07-15 02:18:33 +08:00
xboard
6ac0cc7ce5 feat: support theme update and various improvements
- Add support for updating themes if a newer version is uploaded
- Hide config button for plugins without configuration items
- Auto refresh theme cache after panel update
- Fix issue where user used traffic cannot be set as a decimal
- Fix subscription issue for shadowrocket in v2board theme
2025-07-15 01:26:14 +08:00
xboard
c80dd82558 feat: multiple improvements and bug fixes
- Add gift card redemption feature
- Resolve custom range selection issue in overview
- Allow log page size to be modified
- Add subscription path change notification
- Improve dynamic node rate feature
- Support markdown documentation display for plugins
- Reduce power reset service logging
- Fix backend version number not updating after update
2025-07-14 00:33:04 +08:00
xboard
939d1c2b65 fix(register): handle invalid invite code gracefully
Fix an issue where entering a non-existent invite code during registration would result in an unclear HTTP code 0 error. Now, the system properly validates the invite code and returns a clear error response if the code does not exist.
2025-07-13 21:19:33 +08:00
xboard
c95448b4b0 feat: add plugin update support + fix bugs 2025-07-13 08:53:00 +08:00
xboard
a7192493bb fix(plugin): auto-remove plugin record if class file is missing 2025-07-12 21:54:12 +08:00
xboard
613c769e42 feat: Add client.subscribe.servers hook for plugin-based server extension
- Add HookManager::filter('client.subscribe.servers') hook in ClientController::subscribe()
- Allow plugins to inject custom servers into subscription responses
- Update protocol classes to support extended server configurations
- Enable dynamic server list modification before protocol processing
2025-07-11 21:19:23 +08:00