- 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
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).
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.
Integrates WARP (install, uninstall, configure, status) functionality
into the web panel's settings page. Users can now manage WARP
directly from the UI.
- Add service status validation before editing subpath
- Use systemctl reload for Caddy config changes
- Add fallback to restart if reload fails
- Enhance user feedback with old/new subpath comparison
- Improve error handling and status verification
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.