xray-manager 1.8.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +102 -42
  2. package/dist/cli.mjs +8587 -0
  3. package/dist/cli.mjs.map +7 -0
  4. package/package.json +13 -5
  5. package/dist/cli.d.ts +0 -11
  6. package/dist/cli.d.ts.map +0 -1
  7. package/dist/cli.js +0 -134
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/clash.d.ts +0 -20
  10. package/dist/commands/clash.d.ts.map +0 -1
  11. package/dist/commands/clash.js +0 -156
  12. package/dist/commands/clash.js.map +0 -1
  13. package/dist/commands/config.d.ts +0 -56
  14. package/dist/commands/config.d.ts.map +0 -1
  15. package/dist/commands/config.js +0 -461
  16. package/dist/commands/config.js.map +0 -1
  17. package/dist/commands/interactive.d.ts +0 -55
  18. package/dist/commands/interactive.d.ts.map +0 -1
  19. package/dist/commands/interactive.js +0 -418
  20. package/dist/commands/interactive.js.map +0 -1
  21. package/dist/commands/logs.d.ts +0 -62
  22. package/dist/commands/logs.d.ts.map +0 -1
  23. package/dist/commands/logs.js +0 -389
  24. package/dist/commands/logs.js.map +0 -1
  25. package/dist/commands/quota.d.ts +0 -54
  26. package/dist/commands/quota.d.ts.map +0 -1
  27. package/dist/commands/quota.js +0 -661
  28. package/dist/commands/quota.js.map +0 -1
  29. package/dist/commands/review.d.ts +0 -8
  30. package/dist/commands/review.d.ts.map +0 -1
  31. package/dist/commands/review.js +0 -79
  32. package/dist/commands/review.js.map +0 -1
  33. package/dist/commands/service.d.ts +0 -43
  34. package/dist/commands/service.d.ts.map +0 -1
  35. package/dist/commands/service.js +0 -202
  36. package/dist/commands/service.js.map +0 -1
  37. package/dist/commands/user.d.ts +0 -49
  38. package/dist/commands/user.d.ts.map +0 -1
  39. package/dist/commands/user.js +0 -371
  40. package/dist/commands/user.js.map +0 -1
  41. package/dist/components/dashboard-widget.d.ts +0 -21
  42. package/dist/components/dashboard-widget.d.ts.map +0 -1
  43. package/dist/components/dashboard-widget.js +0 -234
  44. package/dist/components/dashboard-widget.js.map +0 -1
  45. package/dist/components/progress-bar.d.ts +0 -67
  46. package/dist/components/progress-bar.d.ts.map +0 -1
  47. package/dist/components/progress-bar.js +0 -138
  48. package/dist/components/progress-bar.js.map +0 -1
  49. package/dist/components/user-table.d.ts +0 -8
  50. package/dist/components/user-table.d.ts.map +0 -1
  51. package/dist/components/user-table.js +0 -91
  52. package/dist/components/user-table.js.map +0 -1
  53. package/dist/config/i18n.d.ts +0 -136
  54. package/dist/config/i18n.d.ts.map +0 -1
  55. package/dist/config/i18n.js +0 -323
  56. package/dist/config/i18n.js.map +0 -1
  57. package/dist/constants/error-codes.d.ts +0 -344
  58. package/dist/constants/error-codes.d.ts.map +0 -1
  59. package/dist/constants/error-codes.js +0 -462
  60. package/dist/constants/error-codes.js.map +0 -1
  61. package/dist/constants/exit-codes.d.ts +0 -49
  62. package/dist/constants/exit-codes.d.ts.map +0 -1
  63. package/dist/constants/exit-codes.js +0 -100
  64. package/dist/constants/exit-codes.js.map +0 -1
  65. package/dist/constants/paths.d.ts +0 -63
  66. package/dist/constants/paths.d.ts.map +0 -1
  67. package/dist/constants/paths.js +0 -78
  68. package/dist/constants/paths.js.map +0 -1
  69. package/dist/constants/quota.d.ts +0 -126
  70. package/dist/constants/quota.d.ts.map +0 -1
  71. package/dist/constants/quota.js +0 -135
  72. package/dist/constants/quota.js.map +0 -1
  73. package/dist/constants/review.d.ts +0 -14
  74. package/dist/constants/review.d.ts.map +0 -1
  75. package/dist/constants/review.js +0 -33
  76. package/dist/constants/review.js.map +0 -1
  77. package/dist/constants/supported-distros.d.ts +0 -17
  78. package/dist/constants/supported-distros.d.ts.map +0 -1
  79. package/dist/constants/supported-distros.js +0 -68
  80. package/dist/constants/supported-distros.js.map +0 -1
  81. package/dist/constants/theme.d.ts +0 -34
  82. package/dist/constants/theme.d.ts.map +0 -1
  83. package/dist/constants/theme.js +0 -52
  84. package/dist/constants/theme.js.map +0 -1
  85. package/dist/constants/timeouts.d.ts +0 -84
  86. package/dist/constants/timeouts.d.ts.map +0 -1
  87. package/dist/constants/timeouts.js +0 -111
  88. package/dist/constants/timeouts.js.map +0 -1
  89. package/dist/constants/ui-symbols.d.ts +0 -47
  90. package/dist/constants/ui-symbols.d.ts.map +0 -1
  91. package/dist/constants/ui-symbols.js +0 -48
  92. package/dist/constants/ui-symbols.js.map +0 -1
  93. package/dist/services/clash-config.d.ts +0 -16
  94. package/dist/services/clash-config.d.ts.map +0 -1
  95. package/dist/services/clash-config.js +0 -107
  96. package/dist/services/clash-config.js.map +0 -1
  97. package/dist/services/config-manager.d.ts +0 -90
  98. package/dist/services/config-manager.d.ts.map +0 -1
  99. package/dist/services/config-manager.js +0 -307
  100. package/dist/services/config-manager.js.map +0 -1
  101. package/dist/services/layout-manager.d.ts +0 -94
  102. package/dist/services/layout-manager.d.ts.map +0 -1
  103. package/dist/services/layout-manager.js +0 -192
  104. package/dist/services/layout-manager.js.map +0 -1
  105. package/dist/services/log-manager.d.ts +0 -157
  106. package/dist/services/log-manager.d.ts.map +0 -1
  107. package/dist/services/log-manager.js +0 -397
  108. package/dist/services/log-manager.js.map +0 -1
  109. package/dist/services/navigation-manager.d.ts +0 -23
  110. package/dist/services/navigation-manager.d.ts.map +0 -1
  111. package/dist/services/navigation-manager.js +0 -39
  112. package/dist/services/navigation-manager.js.map +0 -1
  113. package/dist/services/platform-detector.d.ts +0 -10
  114. package/dist/services/platform-detector.d.ts.map +0 -1
  115. package/dist/services/platform-detector.js +0 -106
  116. package/dist/services/platform-detector.js.map +0 -1
  117. package/dist/services/public-ip-manager.d.ts +0 -78
  118. package/dist/services/public-ip-manager.d.ts.map +0 -1
  119. package/dist/services/public-ip-manager.js +0 -296
  120. package/dist/services/public-ip-manager.js.map +0 -1
  121. package/dist/services/quota-enforcer.d.ts +0 -86
  122. package/dist/services/quota-enforcer.d.ts.map +0 -1
  123. package/dist/services/quota-enforcer.js +0 -151
  124. package/dist/services/quota-enforcer.js.map +0 -1
  125. package/dist/services/quota-manager.d.ts +0 -101
  126. package/dist/services/quota-manager.d.ts.map +0 -1
  127. package/dist/services/quota-manager.js +0 -257
  128. package/dist/services/quota-manager.js.map +0 -1
  129. package/dist/services/review/areas/community.d.ts +0 -9
  130. package/dist/services/review/areas/community.d.ts.map +0 -1
  131. package/dist/services/review/areas/community.js +0 -59
  132. package/dist/services/review/areas/community.js.map +0 -1
  133. package/dist/services/review/areas/contribution.d.ts +0 -9
  134. package/dist/services/review/areas/contribution.d.ts.map +0 -1
  135. package/dist/services/review/areas/contribution.js +0 -107
  136. package/dist/services/review/areas/contribution.js.map +0 -1
  137. package/dist/services/review/areas/documentation.d.ts +0 -9
  138. package/dist/services/review/areas/documentation.d.ts.map +0 -1
  139. package/dist/services/review/areas/documentation.js +0 -110
  140. package/dist/services/review/areas/documentation.js.map +0 -1
  141. package/dist/services/review/areas/license.d.ts +0 -9
  142. package/dist/services/review/areas/license.d.ts.map +0 -1
  143. package/dist/services/review/areas/license.js +0 -86
  144. package/dist/services/review/areas/license.js.map +0 -1
  145. package/dist/services/review/areas/quality.d.ts +0 -9
  146. package/dist/services/review/areas/quality.d.ts.map +0 -1
  147. package/dist/services/review/areas/quality.js +0 -84
  148. package/dist/services/review/areas/quality.js.map +0 -1
  149. package/dist/services/review/areas/security.d.ts +0 -9
  150. package/dist/services/review/areas/security.d.ts.map +0 -1
  151. package/dist/services/review/areas/security.js +0 -64
  152. package/dist/services/review/areas/security.js.map +0 -1
  153. package/dist/services/review/evidence.d.ts +0 -10
  154. package/dist/services/review/evidence.d.ts.map +0 -1
  155. package/dist/services/review/evidence.js +0 -40
  156. package/dist/services/review/evidence.js.map +0 -1
  157. package/dist/services/review/recommendations-filter.d.ts +0 -12
  158. package/dist/services/review/recommendations-filter.d.ts.map +0 -1
  159. package/dist/services/review/recommendations-filter.js +0 -20
  160. package/dist/services/review/recommendations-filter.js.map +0 -1
  161. package/dist/services/review/repo-scanner.d.ts +0 -8
  162. package/dist/services/review/repo-scanner.d.ts.map +0 -1
  163. package/dist/services/review/repo-scanner.js +0 -15
  164. package/dist/services/review/repo-scanner.js.map +0 -1
  165. package/dist/services/review/report-renderer.d.ts +0 -15
  166. package/dist/services/review/report-renderer.d.ts.map +0 -1
  167. package/dist/services/review/report-renderer.js +0 -120
  168. package/dist/services/review/report-renderer.js.map +0 -1
  169. package/dist/services/review/review-engine.d.ts +0 -15
  170. package/dist/services/review/review-engine.d.ts.map +0 -1
  171. package/dist/services/review/review-engine.js +0 -61
  172. package/dist/services/review/review-engine.js.map +0 -1
  173. package/dist/services/review/summary-builder.d.ts +0 -8
  174. package/dist/services/review/summary-builder.d.ts.map +0 -1
  175. package/dist/services/review/summary-builder.js +0 -26
  176. package/dist/services/review/summary-builder.js.map +0 -1
  177. package/dist/services/screen-manager.d.ts +0 -13
  178. package/dist/services/screen-manager.d.ts.map +0 -1
  179. package/dist/services/screen-manager.js +0 -42
  180. package/dist/services/screen-manager.js.map +0 -1
  181. package/dist/services/stats-config-manager.d.ts +0 -110
  182. package/dist/services/stats-config-manager.d.ts.map +0 -1
  183. package/dist/services/stats-config-manager.js +0 -443
  184. package/dist/services/stats-config-manager.js.map +0 -1
  185. package/dist/services/systemd-manager.d.ts +0 -197
  186. package/dist/services/systemd-manager.d.ts.map +0 -1
  187. package/dist/services/systemd-manager.js +0 -458
  188. package/dist/services/systemd-manager.js.map +0 -1
  189. package/dist/services/traffic-manager.d.ts +0 -106
  190. package/dist/services/traffic-manager.d.ts.map +0 -1
  191. package/dist/services/traffic-manager.js +0 -368
  192. package/dist/services/traffic-manager.js.map +0 -1
  193. package/dist/services/user-manager.d.ts +0 -90
  194. package/dist/services/user-manager.d.ts.map +0 -1
  195. package/dist/services/user-manager.js +0 -347
  196. package/dist/services/user-manager.js.map +0 -1
  197. package/dist/services/user-metadata-manager.d.ts +0 -85
  198. package/dist/services/user-metadata-manager.d.ts.map +0 -1
  199. package/dist/services/user-metadata-manager.js +0 -181
  200. package/dist/services/user-metadata-manager.js.map +0 -1
  201. package/dist/types/config.d.ts +0 -340
  202. package/dist/types/config.d.ts.map +0 -1
  203. package/dist/types/config.js +0 -7
  204. package/dist/types/config.js.map +0 -1
  205. package/dist/types/layout.d.ts +0 -119
  206. package/dist/types/layout.d.ts.map +0 -1
  207. package/dist/types/layout.js +0 -142
  208. package/dist/types/layout.js.map +0 -1
  209. package/dist/types/platform.d.ts +0 -72
  210. package/dist/types/platform.d.ts.map +0 -1
  211. package/dist/types/platform.js +0 -38
  212. package/dist/types/platform.js.map +0 -1
  213. package/dist/types/quota.d.ts +0 -158
  214. package/dist/types/quota.d.ts.map +0 -1
  215. package/dist/types/quota.js +0 -26
  216. package/dist/types/quota.js.map +0 -1
  217. package/dist/types/review.d.ts +0 -62
  218. package/dist/types/review.d.ts.map +0 -1
  219. package/dist/types/review.js +0 -8
  220. package/dist/types/review.js.map +0 -1
  221. package/dist/types/server-config.d.ts +0 -53
  222. package/dist/types/server-config.d.ts.map +0 -1
  223. package/dist/types/server-config.js +0 -19
  224. package/dist/types/server-config.js.map +0 -1
  225. package/dist/types/service.d.ts +0 -96
  226. package/dist/types/service.d.ts.map +0 -1
  227. package/dist/types/service.js +0 -7
  228. package/dist/types/service.js.map +0 -1
  229. package/dist/types/terminal.d.ts +0 -35
  230. package/dist/types/terminal.d.ts.map +0 -1
  231. package/dist/types/terminal.js +0 -20
  232. package/dist/types/terminal.js.map +0 -1
  233. package/dist/types/ui-components.d.ts +0 -53
  234. package/dist/types/ui-components.d.ts.map +0 -1
  235. package/dist/types/ui-components.js +0 -3
  236. package/dist/types/ui-components.js.map +0 -1
  237. package/dist/types/user-metadata.d.ts +0 -43
  238. package/dist/types/user-metadata.d.ts.map +0 -1
  239. package/dist/types/user-metadata.js +0 -17
  240. package/dist/types/user-metadata.js.map +0 -1
  241. package/dist/types/user.d.ts +0 -134
  242. package/dist/types/user.d.ts.map +0 -1
  243. package/dist/types/user.js +0 -7
  244. package/dist/types/user.js.map +0 -1
  245. package/dist/utils/clipboard.d.ts +0 -21
  246. package/dist/utils/clipboard.d.ts.map +0 -1
  247. package/dist/utils/clipboard.js +0 -45
  248. package/dist/utils/clipboard.js.map +0 -1
  249. package/dist/utils/error-formatter.d.ts +0 -60
  250. package/dist/utils/error-formatter.d.ts.map +0 -1
  251. package/dist/utils/error-formatter.js +0 -244
  252. package/dist/utils/error-formatter.js.map +0 -1
  253. package/dist/utils/errors.d.ts +0 -92
  254. package/dist/utils/errors.d.ts.map +0 -1
  255. package/dist/utils/errors.js +0 -143
  256. package/dist/utils/errors.js.map +0 -1
  257. package/dist/utils/firewall.d.ts +0 -14
  258. package/dist/utils/firewall.d.ts.map +0 -1
  259. package/dist/utils/firewall.js +0 -78
  260. package/dist/utils/firewall.js.map +0 -1
  261. package/dist/utils/format.d.ts +0 -93
  262. package/dist/utils/format.d.ts.map +0 -1
  263. package/dist/utils/format.js +0 -240
  264. package/dist/utils/format.js.map +0 -1
  265. package/dist/utils/icons.d.ts +0 -53
  266. package/dist/utils/icons.d.ts.map +0 -1
  267. package/dist/utils/icons.js +0 -143
  268. package/dist/utils/icons.js.map +0 -1
  269. package/dist/utils/layout.d.ts +0 -142
  270. package/dist/utils/layout.d.ts.map +0 -1
  271. package/dist/utils/layout.js +0 -381
  272. package/dist/utils/layout.js.map +0 -1
  273. package/dist/utils/logger.d.ts +0 -160
  274. package/dist/utils/logger.d.ts.map +0 -1
  275. package/dist/utils/logger.js +0 -351
  276. package/dist/utils/logger.js.map +0 -1
  277. package/dist/utils/network.d.ts +0 -39
  278. package/dist/utils/network.d.ts.map +0 -1
  279. package/dist/utils/network.js +0 -227
  280. package/dist/utils/network.js.map +0 -1
  281. package/dist/utils/os-detection.d.ts +0 -10
  282. package/dist/utils/os-detection.d.ts.map +0 -1
  283. package/dist/utils/os-detection.js +0 -86
  284. package/dist/utils/os-detection.js.map +0 -1
  285. package/dist/utils/preflight.d.ts +0 -57
  286. package/dist/utils/preflight.d.ts.map +0 -1
  287. package/dist/utils/preflight.js +0 -215
  288. package/dist/utils/preflight.js.map +0 -1
  289. package/dist/utils/repo-scan.d.ts +0 -54
  290. package/dist/utils/repo-scan.d.ts.map +0 -1
  291. package/dist/utils/repo-scan.js +0 -165
  292. package/dist/utils/repo-scan.js.map +0 -1
  293. package/dist/utils/report-output.d.ts +0 -13
  294. package/dist/utils/report-output.d.ts.map +0 -1
  295. package/dist/utils/report-output.js +0 -33
  296. package/dist/utils/report-output.js.map +0 -1
  297. package/dist/utils/review-id.d.ts +0 -8
  298. package/dist/utils/review-id.d.ts.map +0 -1
  299. package/dist/utils/review-id.js +0 -17
  300. package/dist/utils/review-id.js.map +0 -1
  301. package/dist/utils/splash.d.ts +0 -21
  302. package/dist/utils/splash.d.ts.map +0 -1
  303. package/dist/utils/splash.js +0 -179
  304. package/dist/utils/splash.js.map +0 -1
  305. package/dist/utils/terminal.d.ts +0 -32
  306. package/dist/utils/terminal.d.ts.map +0 -1
  307. package/dist/utils/terminal.js +0 -93
  308. package/dist/utils/terminal.js.map +0 -1
  309. package/dist/utils/traffic-formatter.d.ts +0 -45
  310. package/dist/utils/traffic-formatter.d.ts.map +0 -1
  311. package/dist/utils/traffic-formatter.js +0 -131
  312. package/dist/utils/traffic-formatter.js.map +0 -1
  313. package/dist/utils/validator.d.ts +0 -102
  314. package/dist/utils/validator.d.ts.map +0 -1
  315. package/dist/utils/validator.js +0 -238
  316. package/dist/utils/validator.js.map +0 -1
  317. package/dist/utils/vless-link.d.ts +0 -27
  318. package/dist/utils/vless-link.d.ts.map +0 -1
  319. package/dist/utils/vless-link.js +0 -69
  320. package/dist/utils/vless-link.js.map +0 -1
  321. package/dist/utils/which.d.ts +0 -13
  322. package/dist/utils/which.d.ts.map +0 -1
  323. package/dist/utils/which.js +0 -28
  324. package/dist/utils/which.js.map +0 -1
package/README.md CHANGED
@@ -14,6 +14,24 @@
14
14
  <em>自建梯子 · 科学上网 · 翻墙工具 · VPN替代方案 · 访问ChatGPT/Claude</em>
15
15
  </p>
16
16
 
17
+ ---
18
+
19
+ ### ⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!
20
+
21
+ <p align="center">
22
+ <strong>你的 Star 是我持续更新的最大动力 🙏</strong><br>
23
+ <em>开源不易,维护更难。一个 Star,一份鼓励!</em>
24
+ </p>
25
+
26
+ <p align="center">
27
+ <a href="https://github.com/DanOps-1/Xray-VPN-OneClick">
28
+ <img src="https://img.shields.io/github/stars/DanOps-1/Xray-VPN-OneClick?style=social" alt="GitHub stars">
29
+ </a>
30
+ <a href="https://github.com/DanOps-1/Xray-VPN-OneClick/fork">
31
+ <img src="https://img.shields.io/github/forks/DanOps-1/Xray-VPN-OneClick?style=social" alt="GitHub forks">
32
+ </a>
33
+ </p>
34
+
17
35
  <!-- 核心徽章 -->
18
36
  [![npm version](https://img.shields.io/npm/v/xray-manager?style=for-the-badge&logo=npm&color=red)](https://www.npmjs.com/package/xray-manager)
19
37
  [![npm downloads](https://img.shields.io/npm/dm/xray-manager?style=for-the-badge&logo=npm&color=orange)](https://www.npmjs.com/package/xray-manager)
@@ -42,6 +60,15 @@
42
60
 
43
61
  ---
44
62
 
63
+ ## 📸 界面预览
64
+
65
+ <div align="center">
66
+ <img src="interface.png" alt="Xray Manager 交互式界面" width="100%">
67
+ <p><em>现代化的交互式管理界面,支持服务管理、用户管理、流量配额等功能</em></p>
68
+ </div>
69
+
70
+ ---
71
+
45
72
  ## 📑 目录
46
73
 
47
74
  - [✨ 项目简介](#-项目简介)
@@ -173,21 +200,22 @@
173
200
  <td width="50%">
174
201
 
175
202
  ### 🛠️ 管理特性
176
- - ✅ **用户管理** - 添加/删除用户
177
- - ✅ **配置备份** - 自动备份恢复
178
- - ✅ **一键更新** - 升级到最新版本
179
- - ✅ **查看配置** - 显示连接信息
180
- - ✅ **安全卸载** - 完整清理系统
203
+ - ✅ **用户管理** - 添加/删除用户,到期时间管理
204
+ - ✅ **在线监控** - 实时查看活跃用户和连接
205
+ - ✅ **订阅链接** - 内置订阅服务,客户端自动更新
206
+ - ✅ **Telegram 通知** - 流量超限/到期/异常自动推送
207
+ - ✅ **定时任务** - 到期检查、配额执行、月度重置
208
+ - ✅ **REST API** - 内置 HTTP API 供外部系统集成
181
209
 
182
210
  </td>
183
211
  <td width="50%">
184
212
 
185
213
  ### 📱 客户端特性
186
214
  - ✅ **分享链接** - 自动生成 VLESS URL
215
+ - ✅ **订阅服务** - 标准订阅格式,支持 V2RayN/Clash
187
216
  - ✅ **二维码** - 扫码快速导入
188
217
  - ✅ **全平台** - 主流系统全覆盖
189
218
  - ✅ **多协议** - 兼容 v2ray 生态
190
- - ✅ **详细教程** - 分平台配置指南
191
219
 
192
220
  </td>
193
221
  </tr>
@@ -441,52 +469,84 @@ xm
441
469
 
442
470
  | 功能模块 | 说明 |
443
471
  |---------|------|
444
- | 📊 **服务管理** | 查看状态、启动/停止/重启服务 |
445
- | 👥 **用户管理** | 添加/删除用户、生成分享链接 |
446
- | 📊 **流量配额** | 设置配额、流量预警、超额自动禁用 |
447
- | ⚙️ **配置管理** | 备份/恢复配置、修改配置项 |
448
- | 📝 **日志查看** | 实时日志、按级别/时间过滤 |
449
- | 📈 **仪表盘** | 服务概览、用户统计、流量统计 |
472
+ | 📊 **实时仪表盘** | 服务状态、流量统计、CPU/内存/磁盘监控、在线用户数 |
473
+ | 👥 **用户管理** | 添加/删除用户、到期时间、分享链接、到期自动禁用 |
474
+ | 📡 **在线监控** | 实时检测活跃用户(基于 Xray Stats API 流量差值) |
475
+ | 📊 **流量配额** | 设置配额、流量预警、超额自动禁用、定时重置 |
476
+ | 🔗 **订阅服务** | 内置 HTTP 订阅服务器,每用户独立订阅 URL |
477
+ | 📢 **Telegram 通知** | 流量超限/用户到期/服务异常自动推送 |
478
+ | ⏰ **定时任务** | 到期检查、配额执行、月度流量重置 |
479
+ | ⚙️ **配置管理** | 备份/恢复配置 |
480
+ | 📝 **日志查看** | 访问/错误日志,Follow 模式 |
481
+ | 🔌 **REST API** | 内置 HTTP API,Bearer Token 认证,支持外部集成 |
450
482
 
451
483
  <details>
452
484
  <summary><b>查看详细功能列表</b></summary>
453
485
 
454
- **服务管理**
455
- - 查看服务状态(运行时长、内存使用)
456
- - 启动/停止/重启服务
457
- - 自动检测权限和 systemd
486
+ **React+Ink 终端 UI** ⭐ NEW
487
+ - 基于 React+Ink 的现代终端界面
488
+ - 键盘驱动导航(j/k/Enter/Esc/q)
489
+ - 模糊搜索命令面板(/ 键触发)
490
+ - 中英文双语切换
491
+ - 深色/浅色主题
492
+
493
+ **实时仪表盘**
494
+ - 服务状态、运行时长
495
+ - 流量统计(上行/下行)
496
+ - CPU / 内存 / 磁盘使用率(迷你进度条)
497
+ - 在线用户数
458
498
 
459
499
  **用户管理**
460
- - 列出所有用户(含流量使用信息)
461
- - 添加新用户(自动生成 UUID)
462
- - 删除用户
463
- - 显示分享链接(自动复制到剪贴板)
464
-
465
- **流量配额管理** ⭐ NEW
466
- - 为用户设置流量配额(预设/自定义)
467
- - 查看流量使用情况和剩余配额
468
- - 流量预警(80%黄色/100%红色)
469
- - 超额自动禁用用户
470
- - 重置流量和重新启用用户
500
+ - 添加用户(自动 UUID + 可选到期天数)
501
+ - 删除用户(确认对话框)
502
+ - 用户到期时间管理(自动禁用过期用户)
503
+ - 分享链接生成
504
+
505
+ **在线用户监控** ⭐ NEW
506
+ - 基于 Xray Stats API 流量差值检测活跃用户
507
+ - TCP 连接统计(ss 解析)
508
+ - 5 秒自动刷新
509
+ - 显示每用户上行/下行累计流量
510
+
511
+ **订阅链接服务** ⭐ NEW
512
+ - 内置轻量 HTTP 订阅服务器(零依赖)
513
+ - 每用户独立订阅 URL(Token 认证)
514
+ - 支持 V2RayN / Clash 客户端自动更新
515
+ - 可启停、可刷新 Token
516
+
517
+ **Telegram 通知** ⭐ NEW
518
+ - 流量达 80%/100% 自动告警
519
+ - 用户到期提醒(3天前、当天、已过期)
520
+ - 服务异常/恢复通知
521
+ - 用户创建/删除通知
522
+ - 每日流量摘要(可选)
523
+
524
+ **定时任务** ⭐ NEW
525
+ - 到期检查(每小时)
526
+ - 配额执行(每 10 分钟)
527
+ - 月度流量重置(每月 1 号)
528
+ - 可配置启用/禁用各任务
529
+
530
+ **REST API** ⭐ NEW
531
+ - 原生 HTTP API(零外部依赖)
532
+ - Bearer Token 认证
533
+ - 用户 CRUD、配额管理、服务控制、系统监控
534
+ - 订阅链接服务集成
535
+
536
+ **流量配额管理**
537
+ - 预设配额(1/5/10/50/100 GB)或自定义
538
+ - 流量进度条(绿/黄/红三色阈值)
539
+ - 超额自动禁用
540
+ - 重置流量、重新启用用户
471
541
 
472
542
  **配置管理**
473
- - 查看当前配置
474
- - 创建配置备份(时间戳命名)
475
- - 列出所有备份
476
- - 恢复配置
477
- - 修改配置项
543
+ - 查看当前 Xray 配置摘要
544
+ - 创建备份 / 从备份恢复
478
545
 
479
546
  **日志查看**
480
- - 查看最近日志
481
- - 实时跟踪日志(Ctrl+C 停止)
482
- - 按级别过滤(error/warning/info/debug)
483
- - 按时间范围过滤
484
-
485
- **仪表盘**
486
- - 服务状态概览
487
- - 用户统计(活跃/警告/超额)
488
- - 总流量使用统计
489
- - 实时数据刷新
547
+ - 访问日志 / 错误日志 Tab 切换
548
+ - Follow 模式(实时跟踪)
549
+ - 滚动浏览、自动刷新
490
550
 
491
551
  </details>
492
552