Commit Graph

192 Commits

Author SHA1 Message Date
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
1e4f6439d3 Refactor: Implement Hysteria server update in Python 2025-05-02 14:14:43 +03:30
e597d819d3 refactor: migrate obfs manager script from Bash to Python 2025-05-02 13:50:36 +03:30
18d7f3459e fix: resolved permission issue by adjusting subprocess call to explicitly use Python 2025-05-02 13:41:34 +03:30
2008156e20 Fix: Remove misuse of asyncio.to_thread with async context manager in remove_user.py 2025-05-02 13:26:57 +03:30
8ba46b9878 Refactor: Implement user addition functionality in Python 2025-05-02 13:07:53 +03:30
5a253258e8 Refactor: Implement Hysteria server restart in Python 2025-05-02 12:35:44 +03:30
cf4726e5d9 Refactor: Implement user information retrieval in Python 2025-05-02 12:29:37 +03:30
19192bd02d Refactor: Implement port update functionality in Python 2025-05-02 12:08:19 +03:30
50bb7fe7ff Refactor: Implement user reset functionality in Python 2025-05-02 11:53:22 +03:30
7e71b1c33b Refactor: Implement user removal in Python 2025-05-02 11:40:57 +03:30
9793dc28e7 Remove warps ACL rules completely when wg-quick@wgcf service is inactive 2025-04-27 18:32:18 +03:30
68441c1cae Fix config.json permission issues by preserving original file permissions
- Replace mv commands with cat to maintain original file permissions when updating config with jq
2025-04-27 18:20:46 +03:30
1255fc7e58 feat: improve restore.sh to auto-fix config.json based on network interface 2025-04-27 17:40:31 +03:30
7546e13cfb fix: handle domain names in IP4 configuration variable
Previously, when the IP4 variable contained a domain name instead of an actual IP address, the SNI validation would fail and force the use of self-signed certificates. This update adds detection and resolution of domain names in the IP4 variable, ensuring proper DNS comparison when checking if the SNI domain points to the server.
2025-04-27 11:32:43 +03:30
748d0bf2bd add init_paths to handle sys.path setup for importing shared modules like paths.py 2025-04-24 20:23:31 +03:30