Commit graph

30 commits

Author SHA1 Message Date
root
0366a21d6d fix: Clash proxy entries missing reality-opts, client-fingerprint, network
- Fix REALITY settings extraction: publicKey/shortIds/fingerprint are
  nested under realitySettings.settings, not directly under realitySettings
- Add network field to all proxy entries (default "tcp")
- Move non-REALITY fingerprint into else branch to avoid duplication
2026-04-25 20:32:30 +08:00
root
25cf22d161 feat: support full mihomo template and multi-server for Clash Link
- Add splitTemplate() to split at proxies:/proxy-groups: markers (like mihomo-gen)
- Store clash_template.yaml and servers.yaml as files alongside x-ui.json
- Add Clash/Servers editors in Xray advanced config page
- Support multi-server proxy generation (each server × each client)
- Remove inline template editor from Clash settings panel
- Bump version to v1.7.2.1
2026-04-25 18:23:42 +08:00
root
e29584258b docs: update tasktracking with CF-Connecting-IP trust 2026-04-25 11:45:22 +08:00
root
77d276da04 fix: add login rate limiting and prevent IP spoofing via headers
- Add RateLimitMiddleware(10/min) to POST /login (previously unprotected)
- Use RemoteAddr instead of X-Real-IP/X-Forwarded-For in getRemoteIp() and rate limiter
- Prevents brute-force login and rate-limit bypass via spoofed headers
2026-04-25 11:43:03 +08:00
root
61f7956af4 fix: unify master/worker connected nodes to single a-table
Replace worker's plain HTML table with the same a-table used by master,
fixing inconsistencies: missing role column, no error ellipsis, dead-code
empty state ternary, and duplicate a-empty elements.
2026-04-25 11:14:57 +08:00
root
a25a42fb9b docs: add tasktracking for self-closing tag fix 2026-04-25 10:46:00 +08:00
root
66de42f21b fix: node config save, dbType mismatch, and dark theme support
- ShouldBindJSON → ShouldBind with form tags (axios sends url-encoded)
- dbType dropdown value "mysql" → "mariadb" to match backend
- Replace inline styles with theme-aware CSS classes for dark mode
2026-04-25 10:19:41 +08:00
root
4e49f8c072 fix: replace a-descriptions with HTML table and fix ensureDefaultNodeSettings
- Replace a-descriptions/a-descriptions-item with plain HTML table in
  nodes.html — the components were missing from the antd.min.js bundle
  due to tree-shaking, causing the worker node view to render empty
- Fix ensureDefaultNodeSettings to write defaults to both "node" and
  "other" groups for backward compatibility (tests were failing)
2026-04-25 09:36:21 +08:00
root
e4855447cc docs: update tasktracking with v1.6.5 2026-04-24 22:08:21 +08:00
root
c74b1cfb0f docs: update node management tasktracking with v1.6.4 fix 2026-04-24 21:30:42 +08:00
root
8f540db399 docs: update node management sidebar tasktracking with v1.6.3 fixes 2026-04-24 20:59:01 +08:00
root
2721dd0f13 chore: bump version to v1.6.0-beta 2026-04-24 17:25:02 +08:00
root
8fadc148a2 docs: mark node management sidebar tasks 6-7 as done 2026-04-24 17:14:04 +08:00
root
fe46db245e docs: update tasktracking for node management tasks 3-5 2026-04-24 17:11:13 +08:00
root
f5862abc2e feat: add CodeMirror YAML editor for Clash template and fix settings save button bug
- Replace plain textarea with CodeMirror editor (YAML syntax highlighting, line numbers, auto-indent) for Clash subscription template
- Fix confAlerts crash when subClashURI/subURI/subJsonURI is null/undefined (prevented save button from enabling)
- Add yaml.js CodeMirror mode asset
- Include docs and .gitignore cleanup
2026-04-24 16:15:22 +08:00
root
582037ae70 fix: settings save button and multiple UI bugs
- Fix duplicate :min attributes on a-input-number (webPort, subPort, tgCpu)
- Fix mismatched closing tags (a-input/a-switch instead of a-input-number)
- Fix twoFactorEnable toggle receiving MouseEvent instead of boolean
- Fix noise input handlers referencing undefined global `event`
- Add error handling to settings change detection polling loop
- Bump version to v1.5.4-beta
2026-04-24 15:44:48 +08:00
root
288635adfc fix: Clash YAML injection, path validation, and default template
- Quote all YAML string values with %q to prevent injection
- Remove unused host parameter from GetClash
- Add backend path normalization for SubClashPath
- Log StreamSettings JSON unmarshal errors
- Expand template panel by default and provide default template
2026-04-24 14:35:28 +08:00
root
11cdb07e89 feat: add Clash YAML subscription endpoint with template injection
Add /clash/:subid endpoint that returns complete Clash YAML config.
User provides full template (DNS, routing, proxy-groups, rules) in
settings, panel generates proxies from inbound/client data and injects
via proxies: [] placeholder replacement.

- New SubClashService reads template, generates vmess/vless/trojan/ss
  proxy entries with transport (ws/grpc/h2/tcp/httpupgrade), TLS, and
  Reality support
- Settings: subClashEnable, subClashPath, subClashURI, subClashTemplate
- UI: Clash settings tab, QR code on subpage, Desktop dropdown with
  clash-verge:// deep link preferring Clash URL
- Version bump to v1.5.2-beta
2026-04-24 11:25:10 +08:00
root
eca9b219cf docs: add missing task tracking records for multi-node and traffic fixes
Add task tracking records for commits that were missing documentation:
- 2026-04-10: multi-node backend foundation (7 commits)
- 2026-04-15: improve mariadb flow and traffic flush
- 2026-04-23: install cron before acme.sh
- 2026-04-24: resolve client traffic InboundId from DB
- 2026-04-24: fix traffic flush blocked by stale inboundId=0 delta
2026-04-24 03:04:15 +08:00
Sora39831
df20cc7e0b feat: add local mariadb port and remote ip access controls 2026-04-22 11:20:55 +08:00
Sora39831
cc66b073a4 fix: add remote mariadb config menu, pending verification 2026-04-22 10:33:24 +08:00
Sora39831
326abb3a44 fix: avoid admin credential prompt on fresh mariadb install 2026-04-22 10:10:04 +08:00
Sora39831
fa73367e7e fix: avoid migrate blocking and allow uninstall of partial installs 2026-04-22 09:52:10 +08:00
Sora39831
afa0d5a5bd fix: accept direct panel port input in install flow 2026-04-22 09:45:56 +08:00
Sora39831
85cd0b60f2 docs: add multi-node shared control guidance 2026-04-10 15:33:04 +08:00
Sora39831
46bf1b1404 docs: add multi-node shared control design spec 2026-04-10 10:33:53 +08:00
Sora39831
019603d55f docs: add cloudflare asset optimization design 2026-04-07 11:32:30 +08:00
Sora39831
6eba2ac375 Remove docs from repository 2026-04-06 17:09:15 +08:00
Sora39831
82a1b85d45 docs: add MariaDB support design spec
Design for adding MariaDB as alternative database backend with
data migration, x-ui.sh switching UI, and driver-agnostic InitDB.
2026-04-03 09:14:20 +08:00
Sora39831
b4047cee54 feat: allow same email across multiple inbounds and auto-add clients on registration
Remove global unique constraint on client_traffics.email, change email
duplication check to per-inbound scope, and automatically register new
users as disabled clients in all existing inbounds within a transaction.
2026-04-03 01:38:31 +08:00