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
f289e48cc5
fix: intval u/d to avoid bigint overflow ( #821 )
2026-03-22 19:13:07 +08:00
Xboard
75d3b254be
Merge pull request #789 from socksprox/feat/or-filter-logic
...
feat: Add OR logic support to user fetch API filters
2026-03-21 07:49:03 +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
287302729f
fix: fix brutal-opts configure for clashMeta
2026-03-17 12:26:10 +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
d6986a4493
fix: correct node_sync queue assignment in horizon
2026-03-16 02:28:28 +08:00
xboard
2bc4c98be6
feat(ClashMeta): enhance Shadowsocks plugin support
2026-03-15 11:36:43 +08:00
xboard
3e8284cf70
refactor: rename ws-server command and update configuration
2026-03-15 10:57:21 +08:00
xboard
dbcf90927b
fix(ws): enabel unix socket support for redis connection
2026-03-15 10:47:31 +08:00
xboard
ff30088f8a
fix: missing ws-server core and update routine
2026-03-15 10:20:42 +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
90a5065162
refactor: rewrite restoreProtectedPlugins to use file copy instead of git
...
- Dockerfile: backup plugins/ to /opt/default-plugins/ at build time
- Replace exec/git-based restore with pure PHP File::copyDirectory()
- Only restore plugins defined in Plugin::PROTECTED_PLUGINS
- Delete target directory before copy to prevent stale files
- Remove function_exists('exec') guard (no longer needed)
2026-03-11 08:30:12 +08:00
xboard
662e1343d2
feat: add configurable ticket_must_wait_reply setting
2026-03-11 07:31:09 +08:00
xboard
627281f9e6
perf: fix getTrafficRank slow query with index and batch loading
2026-03-11 07:01:19 +08:00
xboard
76edd15186
refactor: replace database logging with file logging and admin audit log
2026-03-11 06:50:07 +08:00
xboard
2b2a51e73b
refactor: move subscribe templates to dedicated database table
2026-03-11 05:47:29 +08:00
xboard
ac8283a7bf
feat(config): support custom telegram webhook url
2026-03-11 02:50:33 +08:00
xboard
e355f2b61a
fix(register): handle invalid invite code as API error ( #792 )
2026-03-11 02:09:25 +08:00
xboard
b20d12d510
feat(surge): add SS2022, SOCKS5, HTTP support
2026-03-09 07:32:51 +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
cadfefbbdd
fix: always set uTLS fingerprint for TLS connections in General protocol ( #673 )
2026-03-09 06:45:28 +08:00
xboard
7ecd549042
fix: validate random_int parameters in Helper::randomPort to prevent min > max error
2026-03-09 06:32:10 +08:00
xboard
6db54d904b
fix(stash): correct TCP/HTTP network type handling in node generation
2026-03-09 05:39:51 +08:00
Xboard
928e051415
Merge pull request #681 from superabbite1/master
...
Update General.php v2rayN新增tuic协议订阅,vless+ws+tls协议新增fingerprint指纹参数
2026-03-09 05:04:50 +08:00
Xboard
215502070b
Merge pull request #703 from kuizw9/master
...
Fix General.php for support AnyTLS and Shadowrocket.php for support Socks Node Name Display
2026-03-09 05:02:07 +08:00
Xboard
4c1019959b
Merge pull request #655 from JxQg/jxq_dev
...
Feat: Support VLESS node output for Loon protocol, improve buildVless method template
2026-03-09 04:59:20 +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
8d25dd643a
feat: add AnyTLS protocol support for Surge
2026-03-09 02:37:32 +08:00
socksprox
fbc85f298b
Make querying users better with "or" statements
2026-01-28 01:27:21 +01:00
lithromantic
8a93d3f1a4
Add sha256salt hashing option in password verification
2026-01-18 00:04:00 +01:00
xboard
4b7e3e7300
fix: read plugin enabled from DB for consistency
2026-01-02 18:30:21 +08:00
socksprox
acee3a2241
do not return strings, but int
2025-11-29 17:05:07 +01:00
socksprox
c592543394
again: update api combining times
2025-11-29 17:05:07 +01:00
socksprox
5ce07d7091
Revert "Combine data with node_id in api output, so its all still "one day", and fits vanilla xboard behaviour"
...
This reverts commit de39230cbe111bbf793f11bcf5046ef717c67f87.
The api change caused issues
2025-11-29 17:05:07 +01:00
socksprox
47f235dffa
Combine data with node_id in api output, so its all still "one day", and fits vanilla xboard behaviour
2025-11-29 14:07:10 +01:00
socksprox
d046028bac
User traffic can now be viewed by node
2025-11-29 13:47:15 +01:00
kuizw9
26bc181608
Merge branch 'cedar2025:master' into master
2025-11-23 14:55: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
KuizW9
23c3ebcf4b
Update General.php
...
Add AnyTLS to General Client
2025-10-05 22:34:36 +08:00
KuizW9
2c38d30a94
Merge branch 'cedar2025:master' into master
2025-09-27 08:52:25 +08:00
xboard
245ddc56e7
fix: avoid getCurrentCommit on cache hit
2025-09-26 19:04:17 +08:00
xboard
9ef40d4918
allow free plans
2025-09-24 22:19:04 +08:00
KuizW9
160db350da
Update Shadowrocket.php
2025-09-24 19:14:34 +08:00
xboard
17b671c87e
fix(jobs): resolve PostgreSQL issue in StatServerJob and StatUserJob
2025-09-23 18:57:44 +08:00
xboard
8176afb073
fix(plugin): remove stale plugin records when files missing; adjust logging
2025-09-23 14:59:22 +08:00
xboard
c9fbd24c58
fix: remove smogate
2025-09-22 22:52:11 +08:00
xboard
221784367e
feat(knowledge): add KnowledgeResource with plugin hooks
...
- Add KnowledgeResource with user.knowledge.resource hook
- Unify processKnowledgeContent for both single and list items
- Remove isListItem parameter for cleaner architecture
2025-09-20 13:36:10 +08:00
xboard
34a9ed0fce
feat(plugin): add user.subscribe.response hook
2025-09-17 00:02:59 +08:00
xboard
471ec94ae3
fix
2025-09-16 18:44:44 +08:00
socksprox
3e0deed576
Make that user batch generation works again
2025-09-15 15:43:43 +02:00
xboard
895f940849
refactor(online-status): consolidate updates and add cleanup command
2025-09-15 20:32:22 +08:00
xboard
ebea3e8b8c
feat(middleware): Add transaction state guard for Octane
2025-09-15 16:15:39 +08:00
xboard
cf99d4372e
refactor(Jobs): Optimize traffic statistics jobs with upsert
2025-09-15 09:56:36 +08:00
xboard
28f11e30af
fix(server): Correct node_info retrieval method
2025-09-15 09:21:20 +08:00
xboard
190f81c12c
fix: resolve vmess http-opts headers null issue in subscription generation
2025-09-12 10:45:31 +08:00
superabbite1
5521746509
Update Shadowrocket.php
...
新增Vless+ws+tls协议 Fingerprint指纹参数
2025-09-09 16:43:42 +08:00
superabbite1
4fa311dc87
Update ClashMeta.php
...
新增vless+ws+tls协议Fingerprint指纹参数
2025-09-09 16:42:11 +08:00
superabbite1
857c6c5a83
Update General.php
...
vless+ws+tls协议新增fingerprint指纹参数;v2rayN新增tuic协议订阅
2025-09-09 11:35:44 +08:00
xboard
058a5c789b
feat(shadowrocket): support VLESS transports httpupgrade/xhttp/kcp
...
- Add parsing for httpupgrade, xhttp, and kcp in Shadowrocket VLESS builder
- Ensure correct obfs/path/host/mode mapping for Shadowrocket compatibility
2025-09-05 15:22:46 +08:00
xboard
50defe9d73
fix: remove dependency on job_batches table for batch email sending
2025-09-02 23:54:21 +08:00
xboard
ff120ac53f
fix: prevent null pointer exception in knowledge fetch
2025-09-01 21:15:40 +08:00
xboard
989b471bec
feat: add force traffic reset to update script
2025-08-31 20:50:34 +08:00
xboard
5eb2429332
feat: add force option to reset traffic command
2025-08-31 20:38:09 +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
46fef609dd
fix: correct getAvailableUsers call to use (Server)
2025-08-29 20:50:55 +08:00
xboard
4f7f3d7168
feat: optimize server.user.get hook definition
2025-08-29 19:21:49 +08:00
JxQggg
03c61bfe38
feat(protocols): support VLESS node output, improve buildVless method template
...
- Added Server::TYPE_VLESS to Loon::$allowedProtocols
- handle() method now supports VLESS node output
- buildVless() method supports all mainstream VLESS parameter templates, including reality/xtls-rprx-vision
2025-08-26 12:27:38 +08:00
xboard
19caedb730
fix(subscribe): fix vmess+tcp+http subscription in general and singbox
2025-08-24 18:39:00 +08:00
xboard
e07694a694
fix(subscribe): fix vmess+tcp+http subscription in Clash and Clash Meta
2025-08-24 18:07:36 +08:00
xboard
c13daf4bfd
fix: handle disable exec funtion in install script
2025-08-23 19:32:32 +08:00
xboard
72ead1cf8f
fix: support resources/views directory for plugin views
2025-08-23 15:26:09 +08:00
xboard
802c151c40
refactor(singbox): use data_get for array access
2025-08-23 11:19:37 +08:00
xboard
2412b266b7
fix: optimize batch email performance and fix gift card issues
...
- Add chunking and batching for admin email sending
- Fix gift card pagination and add per_page limits
- Update frontend prompts and complete language packs
2025-08-23 00:11:45 +08:00
xboard
10e36bd11f
fix(tickets): prevent ApiException logging in ticket creation API
2025-08-21 19:13:14 +08:00
xboard
95c5a6e94c
fix(auth): handle null redirect in quick login url
2025-08-21 18:57:19 +08:00
Xboard
cf22f6379d
Merge pull request #595 from swcoffee/master
...
fix: missing field 'version' when distributing tuic protocol in stash
2025-08-21 18:10:04 +08:00
Xboard
0b3263756d
Merge pull request #638 from zytakeshi/fix/singbox-sni-domain-issue
...
fix: correct SNI domain configuration paths in SingBox protocol
2025-08-21 18:07:53 +08:00
xboard
c8f8667f82
fix: fix return type in transferToGB method
2025-08-20 04:13:52 +08:00
Takeshi Matsumoto
c7483a67d2
fix: correct VMess TCP transport configuration in SingBox protocol
...
- Only add HTTP transport when network_settings.header.type is not 'none'
- Use pure TCP (null transport) when header type is 'none' or unset
- Align with General protocol implementation and VMess specification
This prevents unnecessary HTTP transport layer when using pure TCP.
2025-08-16 03:08:56 +09:00
Takeshi Matsumoto
ca8f904121
fix: correct SNI domain configuration paths in SingBox protocol
...
- Fix Trojan protocol to use 'server_name' instead of 'tls_settings.server_name'
- Fix Hysteria protocol to use 'tls.server_name' instead of 'tls_settings.server_name'
- Align with Server model configuration and General protocol implementation
- Resolves missing SNI domains in sing-box configuration generation
This fixes the inconsistency where SNI domains were missing for certain
protocols while working correctly in General protocol handler.
2025-08-16 02:44:17 +09: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
43d5bb11cc
fix: resolve Telegram ticket notification issue
2025-08-08 02:53:44 +08:00
Miku
859ad0b529
fix(stash): fix Flow network and SNI issues
2025-08-02 02:07:29 +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
swcoffee
bd47a06863
fix: missing field 'version' when distributing tuic protocol in stash
...
stash下发tuic协议时缺少version字段,会导致订阅无法使用
2025-07-26 13:46:54 +08:00
xboard
44486adb46
fix: announcement sorting issue
2025-07-22 04:28:39 +08:00
xboard
d9b290b0f4
fix: make subscribe url cofig changes take effect immediately under octane
2025-07-22 03:25:13 +08:00
xboard
89ed4a54d9
fix: sub link types not working
2025-07-22 01:33:59 +08:00
xboard
abd549c3e2
fix: correct return_url generation for payment in frontend-backend separated deployment
2025-07-21 23:54:00 +08:00