Commit Graph

207 Commits

Author SHA1 Message Date
09fc8540b6 feat(core): implement full database cleanup in uninstaller 2025-09-08 00:05:48 +03:30
7ce683285d refactor(user): adapt show_user_uri script to use mongodb 2025-09-07 00:33:01 +03:30
9da68fa79c fix(core): correct mongorestore path in restore script 2025-09-07 00:03:19 +03:30
80c21ccd07 feat: migrate user management from json to mongodb 2025-09-06 22:38:32 +03:30
d5d4935f69 feat(users): Integrate real-time online status and enhance UI 2025-09-05 13:16:41 +02:00
2b923a25b0 fix(core): handle on-hold users and null dates in edit_user 2025-08-31 21:07:25 +03:30
8e9ff9c4d2 remove deprecated user.sh script for old auth method 2025-08-27 22:55:11 +03:30
18d3a1029b perf(api): optimize bulk user URI fetching in webpanel
Refactored the web panel's user link generation to resolve a major performance bottleneck. Previously, fetching links for N users would trigger N separate script executions, causing significant delays from process startup overhead.

- Introduced a new bulk API endpoint (`/api/v1/users/uri/bulk`) that accepts a list of usernames and calls the backend script only once.
- Updated the frontend JavaScript in `users.html` to use this new endpoint, replacing N parallel API calls with a single one.
- Cleaned up the `wrapper_uri.py` script for better readability and maintainability.
2025-08-27 17:22:04 +03:30
ecb08dbd44 perf(core): optimize bulk user URI generation in wrapper_uri.py 2025-08-27 16:41:34 +03:30
28062074bf refactor(core): centralize on-hold user logic in traffic.py 2025-08-26 00:14:25 +03:30
af3ad880c6 Set user creation_date to None by default 2025-08-25 22:59:04 +03:30
e58b3dc000 Reduce cache time and Remove chown 2025-08-24 21:10:19 +03:30
dbff546523 feat(auth): Implement Go HTTP auth server for max performance 2025-08-24 20:34:33 +03:30
4d4e68b66f perf(auth): Make aiohttp auth server read-only
Refactored the aiohttp authentication server to be a purely read-only service. Removed all file write operations from the authentication logic to eliminate disk I/O and reduce CPU overhead during connection attempts.

The responsibility for persistently blocking users by writing to `users.json` is now fully delegated to the external scheduler service, allowing the auth server to function as a faster, more efficient gatekeeper.
2025-08-22 23:10:36 +03:30
51e7a9bab7 refactor(install): Integrate aiohttp auth server into installation 2025-08-22 22:28:11 +03:30
0306347189 feat: Migrate command auth to high-performance aiohttp server 2025-08-22 22:08:10 +03:30
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
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
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
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
32f304d200 fix(script): allow unlimited values in edit_user script 2025-08-08 01:55:42 +03:30
073c8ed787 fix(auth): correctly handle unlimited users in auth script 2025-08-08 01:32:39 +03:30
133684f4fe fix: Resolve IP/domain validation 2025-08-06 15:16:27 +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
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
475d511345 feat(normalsub): use user password in subscription link path
Refactored normalsub.py to use the user's password as the identifier in the subscription URL path instead of the username, enhancing privacy by making user enumeration harder.
2025-05-27 20:59:37 +03:30
91ca3fb68a fix: align server_info.py RAM usage with free -m output 2025-05-23 10:34:49 +03:30
c66ea43c7d fix: correct systemd service target for hysteria-ip-limit 2025-05-16 22:09:59 +03:30
cfd29c458d Add service status for scheduler
Add a default user
2025-05-15 23:50:09 +03:30
ec81500e85 typo 2025-05-15 23:40:41 +03:30
1e94e08ffb Improve uninstall script 2025-05-15 23:25:54 +03:30
61874a4acc hysteria-scheduler service setup
- Create installation script to automate setup and migration from cron
- Update both install.sh and upgrade.sh to use the shared functions
2025-05-15 23:10:08 +03:30
d852c21a9d Refactor QR code generation to use Python 2025-05-10 23:29:05 +03:30
dc49f5d74f feat: Merge traffic collection and user kicking 2025-05-10 14:06:55 +03:30
a5dac82255 Refactor: Implement kick users in Python 2025-05-08 20:25:49 +03:30
1b3f9ee351 Refactor: Implement Hysteria Restore in Python 2025-05-06 00:23:13 +03:30
24338dfe1f Refactor: Implement Change SNI in Python 2025-05-05 23:55:36 +03:30
b8e6a5475b refactor: masquerade management in Python3 2025-05-03 21:49:26 +03:30
976f080523 Refactor: Implement server stats in Python 2025-05-03 00:20:36 +03:30
ae12afced1 Refactor: Implement IP address config manager in Python 2025-05-02 22:03:59 +03:30
1c08a4adbb Refactor: Implement Hysteria Bakcup in Python 2025-05-02 21:52:17 +03:30
10526df4ea Update hysteria-server.service to use Blitz Panel config.json 2025-05-02 14:55:16 +03:30
beb8748f4b Refactor: Implement Hysteria2 uninstallation in Python 2025-05-02 14:37:47 +03:30