Commit Graph

746 Commits

Author SHA1 Message Date
5a762ad918 fix(core): allow underscores in usernames 2025-08-20 23:45:01 +03:30
c1a60cbf32 feat(core): add bulk user creation script 2025-08-20 23:20:41 +03:30
8f684de732 Feat: Add online user filter to users page 2025-08-20 00:53:19 +03:30
738619b1e4 feat(ui): Redesign dashboard to display detailed server stats 2025-08-19 23:40:07 +03:30
b3595c691b feat(api): Integrate uptime and reboot traffic stats into server API 2025-08-19 23:39:01 +03:30
6fa872b6c3 feat: optimize system monitor with async I/O and traffic since reboot
- Replace synchronous file operations with async aiofiles
- Implement concurrent data gathering using asyncio.gather()
- Move API calls to thread pool executor
- Add LRU cache for config file reads
- Optimize parsing functions for single-pass processing
- Reduce measurement intervals for faster response times
- Add system uptime and boot time display
- Track total network traffic since last reboot from /proc/net/dev
- Separate system traffic (since reboot) from user traffic (all-time)
- Add human-readable uptime formatting
- Enhance output with clear traffic categorization
2025-08-19 23:36:44 +03:30
cdab63a72a fix: count actual device connections instead of unique users 2025-08-18 16:06:45 +03:30
40ce17deea Hotfix(sub): Display correct user data on blocked page 2025-08-18 15:56:26 +03:30
b9f979d1ae Feat: Add blocked user check to subscription endpoint 2025-08-17 16:16:30 +03:30
8b2f22849b feat(subscription): add external configs to normal subscription links 2025-08-17 15:42:16 +03:30
7587d5a4a8 feat: add extra configs management UI to settings page 2025-08-17 15:40:23 +03:30
68dde4f863 feat: add webpanel API for extra subscription configs 2025-08-17 15:39:20 +03:30
d1385ac8c4 feat: add script to manage extra subscription links
Introduces a new script `extra_config.py` to manage additional proxy configurations (vmess, vless, ss, trojan) for subscription links.
2025-08-17 15:33:28 +03:30
5968903d0d Changes the add_user function's unlimited_user parameter to default to False. 2025-08-13 23:35:02 +03:30
be5fe69f0b feat(web): Conditionally display IP limit UI based on service status 2025-08-13 23:06:43 +03:30
6c6576ae87 feat(web): Add unlimited IP controls to users page 2025-08-12 23:41:15 +03:30
644c43b504 refactor(api): Align user schemas with CLI output and new features 2025-08-12 23:37:11 +03:30
75033231f2 feat: Integrate unlimited IP functionality into web panel 2025-08-12 23:36:22 +03:30
32f0f8c8d4 feat(scripts): Add unlimited IP option to user edit script 2025-08-11 23:29:56 +03:30
85d2e8b81f feat(cli): Integrate unlimited IP option for user creation 2025-08-11 23:28:51 +03:30
eac13764e2 feat: Add per-user IP limit exemption
Introduces a new 'unlimited_user' flag for users. When set to true, the user is exempt from the concurrent IP limit enforcement by `limit.sh`.

- `core/scripts/hysteria2/add_user.py`:
  - Adds an optional `unlimited_user` argument (defaults to false).
  - Stores the `unlimited_user` boolean in the `users.json` file when adding a user.

- `core/scripts/hysteria2/limit.sh`:
  - Modifies `check_ip_limit` function to first check the `unlimited_user` flag for the connecting user in `users.json`.
  - If the flag is true, the script bypasses the IP limit check for that user.
  - Uses `jq` for reliable parsing and includes a `grep` fallback for systems without `jq`.
  - Existing users without the flag are treated as limited (default behavior).
2025-08-11 23:21:36 +03:30
68bd4f2b0a feat(frontend): make external nodes table responsive 2025-08-10 00:14:25 +03:30
ecf617c52b fix(normalsub): robustly parse URIs with spaces in node names
fix(singbox): correct password generation for various URI auth formats
2025-08-08 21:31:50 +03:30
32f304d200 fix(script): allow unlimited values in edit_user script 2025-08-08 01:55:42 +03:30
6fa89e19f0 fix(ui): correctly populate edit modal for unlimited users 2025-08-08 01:34:03 +03:30
073c8ed787 fix(auth): correctly handle unlimited users in auth script 2025-08-08 01:32:39 +03:30
5bcbf0abb3 fix(viewmodel): prevent crash for users with no expiration date 2025-08-08 01:31:49 +03:30
de4c3de84e feat(normalsub): Add external node URIs to subscriptions 2025-08-06 15:37:52 +03:30
133684f4fe fix: Resolve IP/domain validation 2025-08-06 15:16:27 +03:30
05993d013d feat(api): Add external node management endpoints 2025-08-06 14:45:35 +03:30
f9dc7a61d0 Merge pull request #233 from SeyedHashtag/original
improved config for singbox 1.12
2025-08-04 23:53:23 +03:30
a16467faa1 Refactor DNS configuration in singbox.json for improved routing and logging. 2025-08-04 22:14:51 +03:30
4fe3d211d5 feat(core): Update wrapper_uri to parse external node links 2025-08-04 13:54:27 +02:00
57f8229fac feat(core): Generate URIs for external nodes 2025-08-04 13:52:44 +02:00
c5f1b6d447 feat(core): Implement external node management
Introduces a dedicated system for managing a list of external nodes, each with a unique name and IP address. This feature is designed for multi-node deployments.
2025-08-04 13:49:45 +02:00
1bb5408f06 Merge pull request #218 from SeyedHashtag/original
 UI: Sticky Headers & Sides!
2025-07-09 19:20:01 +03:30
c72036b942 sidebar position is now fixed when scrolling long lists 2025-07-08 19:24:11 +03:30
237aff39c4 feat: Add sticky card-header with bokeh effect for improved UI 2025-07-08 18:07:59 +03:30
66bbf6db56 feat: add Enter key functionality to submit login form 2025-07-08 12:48:00 +03:30
6a8b5ec087 fix: prevent decoy site activation when no decoy path provided 2025-06-08 20:12:59 +03:30
e9aa6bcb23 Rollback to version 1.11 2025-06-03 23:47:46 +03:30
dbe347c865 Merge pull request #186 from SeyedHashtag/original
hotfix: Correct address resolver and rule set names in singbox config
2025-06-03 23:09:23 +03:30
33eccb6601 Refactor: Clarify service UI update logic in settings 2025-06-03 20:06:49 +03:30
9f596f465c fix: Correct address resolver and rule set names in singbox configuration 2025-06-03 01:15:55 +03:30
bf191d19fc feat: Enhance UI/UX for settings page 2025-06-02 13:53:21 +03:30
3a13108181 feat: Add WARP management tab to settings page
Integrates WARP (install, uninstall, configure, status) functionality
into the web panel's settings page. Users can now manage WARP
directly from the UI.
2025-06-02 13:29:48 +03:30
5e61afe15c feat: Add OBFS management tab to settings page
- Added a new "OBFS" tab in `settings.html`.
- The tab displays the current OBFS status (active/inactive).
2025-06-02 00:38:53 +03:30
97ade9e4eb feat: Add OBFS status API endpoint 2025-06-02 00:19:25 +03:30
3ddb981077 feat: Add OBFS status check functionality
Adds a new `--check` or `-c` option to `manage_obfs.py` to determine if OBFS is currently configured in `config.json`.
2025-06-02 00:14:55 +03:30
026500f20f Merge pull request #178 from SeyedHashtag/original
Improved Singbox Template Configuration
2025-05-31 19:09:26 +03:30