Commit graph

2350 commits

Author SHA1 Message Date
root
b84390904e feat: add BackupController API endpoints 2026-04-26 19:33:50 +08:00
root
7f3855eb9a fix: add filename validation, error handling, and safety backup visibility 2026-04-26 19:31:49 +08:00
root
5b2946a46d feat: add BackupService with dump, archive, restore logic 2026-04-26 19:22:06 +08:00
root
4da2346c62 style: fix backup getter method format to match project convention 2026-04-26 19:17:33 +08:00
root
b0bdb3f785 docs: add backup config fields task record 2026-04-26 19:10:42 +08:00
root
92b297251a feat: add backup config fields to entity and setting service 2026-04-26 19:10:25 +08:00
root
3891bb9212 docs: add database backup and snapshot implementation plan 2026-04-26 19:06:26 +08:00
root
492b832354 docs: add node role constraint to backup design spec 2026-04-26 18:55:04 +08:00
root
a04804beb2 docs: add database backup and snapshot design spec 2026-04-26 18:48:48 +08:00
root
1a6f7c6e53 fix: dark theme nested td visibility in selected rows, adjust batch bar margin 2026-04-26 18:11:33 +08:00
root
47b734ef2d fix: dark mode selected row background and batch toolbar layout
- Override Ant Design default selected row background in dark mode with theme color
- Restructure batch action toolbar with nested flex containers for better spacing and wrapping
- Bump version to v1.7.3.2
2026-04-26 17:40:08 +08:00
root
8566ccf752 chore: remove codex and copilot-instructions from tracking 2026-04-26 17:25:00 +08:00
root
9badadc97b chore: remove tracked files matching gitignore (vscode, docs) 2026-04-26 17:23:54 +08:00
root
19a36435bd chore: exclude AGENTS.md from version control 2026-04-26 17:21:17 +08:00
root
bd154b7bee chore: update gitignore to exclude claude, build, backup and docs 2026-04-26 17:19:29 +08:00
root
9ee5fd432d chore: bump version to v1.7.3.1 2026-04-26 17:16:33 +08:00
root
18bdc2baa5 feat: add batch select and batch edit for inbound clients 2026-04-26 17:11:58 +08:00
root
fb7beb4dd2 chore: bump version to v1.7.2.11 2026-04-26 01:09:42 +08:00
root
7ff73313a9 fix: auto-fill flow for registration-created eligible clients 2026-04-26 01:08:22 +08:00
root
b47bac3dc6 fix: default flow to vision in client add modals 2026-04-26 01:05:09 +08:00
root
64ceb8343f chore: bump version to v1.7.2.9 2026-04-26 00:54:56 +08:00
root
e3d84b38ca fix: auto-fill vision flow for eligible new clients 2026-04-26 00:53:11 +08:00
root
3048950743 fix: allow subscription links for disabled clients 2026-04-26 00:47:44 +08:00
root
d6de00cd00 fix: repair clash subscription toggle and separate clash path settings 2026-04-26 00:43:09 +08:00
root
67bf6c1a9a chore: bump version to v1.7.2.8 2026-04-26 00:27:37 +08:00
root
18bba12ef1 fix: replace user quick import dropdown with direct action buttons 2026-04-26 00:26:20 +08:00
root
7b24a8d704 chore: bump version to v1.7.2.7 2026-04-26 00:11:14 +08:00
root
22d518b5c9 fix: show user quick import dropdown 2026-04-26 00:09:37 +08:00
root
3ba7e43bc3 feat: add URL Schemes for Quick Import buttons (Android/iOS/Desktop)
- Android: clash://install-config (Clash Meta for Android)
- iOS: shadowrocket://add/sub/ (Shadowrocket)
- Desktop: clash-verge://install-config (Clash Verge)
- Extended API to return subEnable/subUrl for standard subscription
2026-04-25 22:46:35 +08:00
root
aa775a111f feat: add Clash link and Quick Import button to user panel
- New API endpoint /panel/api/inbounds/userSubscriptions for non-admin users
- Redesigned /panel/user with Clash link card (copy button) and Quick Import dropdown (Android/iOS/Desktop with icons)
- Added i18n keys for en_US and zh_CN
- Bumped version to v1.7.2.5
2026-04-25 21:31:02 +08:00
root
1d57d5d1c4 chore: bump version to v1.7.2.4 2026-04-25 21:00:16 +08:00
root
7af6b2e801 docs: update tasktracking with servername/encryption fix 2026-04-25 20:59:22 +08:00
root
699e5959c3 fix: use servername field and add encryption to Clash proxy entries
- sni → servername (mihomo/Clash Meta field name)
- Add encryption field parsed from inbound settings
2026-04-25 20:59:08 +08:00
root
919761e9c6 chore: bump version to v1.7.2.3 2026-04-25 20:46:28 +08:00
root
6156661a20 docs: update tasktracking with YAML indentation fix 2026-04-25 20:46:00 +08:00
root
d1e571adb7 fix: Clash proxy YAML indentation for Clash Verge compatibility
Proxy entry fields were at same indent level as list item marker,
causing "invalid yaml" in Clash Verge. Fixed to 4-space indent for
fields and 6-space for nested *-opts sub-fields.
2026-04-25 20:45:49 +08:00
root
e059425d92 chore: bump version to v1.7.2.2 2026-04-25 20:36:10 +08:00
root
ef9e123fcc style: gofmt web/service/setting.go 2026-04-25 20:35:10 +08:00
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
67c4f6a1ad fix: update rate limit tests to use CF-Connecting-IP header
The middleware was changed to trust CF-Connecting-IP instead of
X-Real-IP/X-Forwarded-For, but the tests still used the old headers.
TestRateLimitMiddleware_DifferentIPsIndependent was failing because
all requests fell back to the same httptest RemoteAddr.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 15:14:02 +08:00
root
b53703f1a1 fix: add -settingStatus CLI flag to reduce DB inits during install/update
Worker nodes with remote MariaDB experienced slow configuration because
config_after_update() and config_after_install() made 5-8 separate
x-ui setting CLI calls, each spawning a new Go process and re-initing
the DB connection. Add a single -settingStatus flag that returns all
needed info in one call, reducing DB inits from 5-6 down to 2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 15:05:11 +08:00
root
88584a1f70 chore: bump version to v1.7.0.1 2026-04-25 11:46:40 +08:00
root
e29584258b docs: update tasktracking with CF-Connecting-IP trust 2026-04-25 11:45:22 +08:00
root
e035fb07a9 fix: trust Cloudflare CF-Connecting-IP for IP extraction
When behind Cloudflare CDN, RemoteAddr shows CF's IP, breaking rate
limiting and logging. Trust CF-Connecting-IP (set by CF, cannot be
spoofed by clients) and fall back to RemoteAddr for direct connections.
2026-04-25 11:45:07 +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
badbbf71f5 fix: add retry for release upload to handle API propagation delay
gh release upload can fail with "release not found" when called
immediately after gh release create due to GitHub API propagation
delay. Add a 5s sleep after create and retry the upload up to 3 times.
2026-04-25 10:54:34 +08:00
root
350a5733c3 chore: bump version to v1.6.6.2 2026-04-25 10:46:53 +08:00
root
a25a42fb9b docs: add tasktracking for self-closing tag fix 2026-04-25 10:46:00 +08:00