Commit Graph
100 Commits
Author SHA1 Message Date
infosave2007 8c4e7f65e7 feat: add available protocols section to README for better clarity 2026-04-04 18:07:55 +03:00
infosave2007 3a1cfb1856 feat: enhance Docker command execution with improved error handling and path management 2026-04-04 17:22:38 +03:00
infosave2007 b0da2c300d feat: update installation instructions for SQL migrations with improved clarity and consistency 2026-04-04 16:38:11 +03:00
infosave2007 ce3d74e49e feat: enhance client speed metrics visualization with improved data processing and responsive table layout 2026-04-04 16:32:14 +03:00
infosave2007 d6eda37ebd feat: enhance ServerMonitoring to resolve container names based on protocol and improve client metrics handling 2026-04-04 16:24:21 +03:00
infosave2007 bb960645d7 feat: enhance VpnClient to support multi-protocol metadata and improve key generation error handling 2026-04-04 16:15:10 +03:00
infosave2007 1574f54bef feat: enhance AWG2 protocol handling by adding config directory management and fixing empty peer block in install script 2026-04-04 16:02:11 +03:00
infosave2007 51d5d13c41 feat: enhance SQL migration handling and add Docker installation instructions for remote servers 2026-04-04 15:48:15 +03:00
infosave2007 ecaae6c18a feat: synchronize MTProxy client links with current runtime configuration after reinstall 2026-04-04 15:35:59 +03:00
infosave2007 c38c3d1c83 feat: Add AIVPN support and enhance client statistics tracking
- Introduced AIVPN server detection and statistics fetching in ServerMonitoring.
- Implemented AIVPN client statistics handling in VpnClient, including raw and offset counters for traffic.
- Enhanced AWG parameters to include S3 and S4.
- Updated database schema to accommodate new AIVPN statistics fields.
- Added a script for remote reset and reinstallation of protocols.
- Improved client view template to ensure proper display of connection instructions.
- Added translations for connection instructions in multiple languages.
- Ensured host-level NAT for AWG subnet in VpnServer.
2026-04-04 15:27:40 +03:00
infosave2007 da5cdc6ae8 feat: add AWG2 protocol support and enhance API documentation for protocol management 2026-04-04 13:59:37 +03:00
infosave2007 da72a5b3ed feat: enhance VpnClient and VpnServer for improved command execution and configuration handling 2026-04-04 12:45:04 +03:00
infosave2007 fc187ba819 feat: update AIVPN migration script to output connection variables for web panel parsing 2026-04-04 11:02:06 +03:00
infosave2007 488da396a7 fix: mount necessary configuration and data directories to protocol container 2026-04-04 10:47:26 +03:00
infosave2007 3562d8950a feat: configure docker-in-docker container with host networking and custom daemon settings 2026-04-04 10:31:15 +03:00
infosave2007 65e6a2dd0b feat: add support for awg2, mtproxy, and aivpn protocols, and implement user role-based access control. 2026-04-04 09:56:49 +03:00
infosave2007 7372a7933e fix:max logs MySql 2026-02-25 06:57:04 +03:00
infosave2007 27bfc352d4 feat: Add missing translations for protocol management UI and update protocol visibility 2026-02-14 18:23:57 +03:00
infosave2007 85ff5b2502 feat: Update client IP handling for X-Ray configuration and enable text content display by default 2026-02-14 11:39:04 +03:00
infosave2007 f6a854f5ab feat: Allocate proper IP address for clients and expose getNextClientIP method 2026-02-13 20:40:04 +03:00
infosave2007 12ac52e88d feat: Load environment configuration in metrics collector 2026-02-13 20:34:11 +03:00
infosave2007 e12f923aff feat: Add protocol_id to VPN clients insertion logic 2026-02-13 20:13:57 +03:00
infosave2007 444e64a50a feat: Update client insertion logic to use name/email instead of login 2026-02-13 19:37:41 +03:00
infosave2007 5172e43fc1 feat: Enhance protocol detection and restoration for AWG and X-Ray installations 2026-02-13 19:01:00 +03:00
infosave2007 327ebd85e9 feat: Enhance online client tracking by including recent handshake counts for WireGuard/AWG 2026-02-05 19:34:02 +03:00
infosave2007 09baa19a09 feat: Enforce single IP per peer for AWG/WireGuard connections 2026-01-30 22:14:09 +03:00
infosave2007 77398b5000 feat: Enforce single IP per user for Xray servers and update protocol checks 2026-01-30 21:45:05 +03:00
infosave2007 3ec6b8cd8b feat: Add real-time online client status updates for servers 2026-01-30 21:23:57 +03:00
infosave2007 66bd218aec feat: Add online clients tracking and display on dashboard and server views 2026-01-30 21:07:30 +03:00
infosave2007 28a6de5697 feat: Implement single IP enforcement for Xray VLESS protocol with online tracking 2026-01-30 20:09:39 +03:00
infosave2007 e90e3a8df2 fix traffic reboot 2026-01-30 19:27:02 +03:00
infosave2007 f4fa6ec941 fix: Do not inherit client_id from server protocols (prevents duplicate UUIDs) 2026-01-30 15:58:15 +03:00
infosave2007 1627fc105e fix: Prevent X-ray client UUID reuse 2026-01-30 15:38:18 +03:00
infosave2007 77115fb2a0 fix: Cleanup debug logging in ServerMonitoring 2026-01-30 15:30:32 +03:00
infosave2007 11ab3cbc88 fix: Add X-ray support to ServerMonitoring for background stats collection 2026-01-30 15:21:32 +03:00
infosave2007 0b759f7b32 fix: Update vpn_clients speed columns in ServerMonitoring for real-time display 2026-01-30 15:14:29 +03:00
infosave2007 1c95b34cf6 feat: Enforce 1 user 1 connection for X-ray and fix active stats speed 2026-01-30 15:04:23 +03:00
infosave2007 8bf3467460 feat: Added readme API new endpoints 2026-01-29 08:56:28 +03:00
infosave2007 da9ef48f76 feat: Реализован API для удаления клиентов, добавлен отладочный скрипт статистики XRay и метод InstallProtocolManager::install сделан публичным. 2026-01-27 16:15:00 +03:00
infosave2007 836b4bdb84 cleanup: remove duplicate amnezia-wg protocol from migration
Only amnezia-wg-advanced should be used (installed via migration 044).
The simple amnezia-wg was a duplicate causing confusion.
2026-01-27 15:33:57 +03:00
infosave2007 ed2cf87418 fix(awg): reload wg0 interface after adding client to apply AWG params
Without interface reload, AWG obfuscation params (Jc, S1, S2, H1-H4) are not
applied to the kernel, and connections fail because client uses AWG but
server uses standard WireGuard protocol.
2026-01-27 15:17:16 +03:00
infosave2007 3dae76c41a fix(awg): reserve server gateway IP (.1) in client IP assignment
Previously only .0 was reserved, causing first client to get 10.8.1.1 (server IP).
Now both .0 and .1 are reserved, clients start from 10.8.1.2.
2026-01-27 15:12:49 +03:00
infosave2007 ddaf9360be fix(awg): fix AWG Advanced install script - create container before generating keys
- Container now starts FIRST with docker run, then wg genkey is called inside it
- After config creation, explicitly reload wg0 interface with 'ip link del wg0' + 'wg-quick up'
- This ensures AWG obfuscation parameters (Jc, S1, S2, H1-H4) are applied to kernel
- Removed duplicate 'amnezia-xray' protocol from migration 047
2026-01-27 14:46:38 +03:00
infosave2007 dad3aa93f4 feat: XRay Reality key backup and restoration
- Modified migrations/048_enable_xray_stats.sql to accept existing keys via env vars (PRIVATE_KEY, SHORT_ID)
- Updated InstallProtocolManager.php to extract and store reality_private_key after XRay installation
- Added key restoration logic in buildExports() to reuse saved keys during reinstallation
- Fixed VpnClient.php to correctly parse JSON stats output from XRay API
- Security fix: removed exposed port 2375 from docker-compose.yml (dind container)
2026-01-26 21:41:26 +03:00
infosave2007 904d725c7b Fix: Read keys from host file in sync script to prevent container deadlock 2026-01-24 21:36:13 +03:00
infosave2007 94be6f9b2f Fix: Add missing $ in sync script and skip invalid clients 2026-01-24 21:16:57 +03:00
infosave2007 f51606b6f7 Feat: Auto-sync existing clients to AmneziaWG server (Fix) 2026-01-24 20:43:55 +03:00
infosave2007 373a987063 Add script to sync clients from DB to AmneziaWG server 2026-01-24 20:39:20 +03:00
infosave2007 a92a12073f Fix: Case-sensitive AWG params and XRay Identifier logic 2026-01-24 20:34:07 +03:00
infosave2007 5cacdcfae9 Fix: Randomize AmneziaWG obfuscation parameters (H1..H4) in install script logic 2026-01-24 20:21:46 +03:00
infosave2007 86d67226d5 Fix: Client deletion UI, Enable XRay stats, fix dns_servers schema 2026-01-24 19:53:23 +03:00
infosave2007 6f15b62ef1 fix(db): Add missing migration 047 to create protocols table 2026-01-24 15:35:41 +03:00
infosave2007 de10268ab4 fix(qr): Generate full X-Ray Client config JSON to match Native Amnezia format 2026-01-24 14:56:13 +03:00
infosave2007 fdbb18c9df fix(qr): Pass raw VLESS URI in last_config without JSON wrapper 2026-01-24 14:50:55 +03:00
infosave2007 5097186757 fix(qr): Use raw URI for X-Ray QR codes to ensure compatibility 2026-01-24 14:35:12 +03:00
infosave2007 7735a25256 fix(client): Propagate show_text_content setting from protocol to client view 2026-01-24 14:28:53 +03:00
infosave2007 57e331239c feat(xray): Implement universal client addition with fallback
- Added InstallProtocolManager::addClient and fallback logic for X-Ray VLESS
  to update server configuration (server.json) and restart container.
- Updated VpnClient::create to invoke InstallProtocolManager::addClient for
  scripted protocols, enabling dynamic user addition.
- Ensured UUID generation for X-Ray clients.
2026-01-24 14:08:43 +03:00
infosave2007 dde0ff9ea1 fix(qr): Use raw VLESS URI in last_config->config
Instead of generating a JSON config for X-Ray, pass the raw VLESS URI string
wrapped in a JSON object  inside .
This matches the behavior of WireGuard config handling in the master branch
and is likely the expected format for Amnezia Android X-Ray import.
2026-01-24 13:48:57 +03:00
infosave2007 174a2fb1e8 fix(qr): Add isThirdPartyConfig and reorder keys
- Added 'isThirdPartyConfig' => true to X-Ray config object. This flag is present in imported configs in Amnezia Android.
- Reordered keys so protocol object ('xray') comes before 'container' key, matching the order seen in WireGuard QR codes.
2026-01-24 13:45:56 +03:00
infosave2007 b2f42ec7ec fix(qr): Return to 12-byte Amnezia header but keep config wrapping
Reverting header to 12-byte format (0x07C00100 + compressedLen + uncompressedLen).
This header format is known to be scanned correctly by Amnezia app.
Previous failure with this header was due to missing config wrapping.
Now we have both: correct header AND correct content structure.
2026-01-24 13:42:20 +03:00
infosave2007 939cba70b7 fix(qr): Use hybrid Chunked+Qt format for QR codes
The format that likely works with Amnezia Android is:
HEADER: 0x07C00100 (Magic 1984, Count 1, Id 0)
PAYLOAD: [UncompressedLen (4b)] + [Zlib Data]

This satisfies the Chunked QR check (magic 0x07C0) and then passes
the payload to qUncompress, which expects the 4-byte uncompressed length prefix.

Previous attempts failed because:
1. 12-byte header included compressedLen, which qUncompress interpreted as uncompressedLen (causing size mismatch error)
2. 4-byte header (Qt only) failed the Magic check
2026-01-24 13:38:32 +03:00
infosave2007 00affda8f2 fix(qr): Wrap X-Ray config in 'config' field inside last_config
Amnezia Android expects the contents of 'last_config' to be a JSON object
containing a 'config' field which holds the actual protocol configuration string.
Previously we were putting the configuration directly into 'last_config',
which caused the import to fail.
2026-01-24 13:34:13 +03:00
infosave2007 e283fdac1d fix(qr): Revert to original 12-byte Amnezia header format
The working QR format from Amnezia app uses:
- 12-byte header: version (0x07C00100) + compressedLen + uncompressedLen
- zlib compressed JSON data

Previously I incorrectly changed this to Qt qCompress format (4-byte header).
This commit reverts to the correct Amnezia-compatible format.
2026-01-24 13:26:24 +03:00
infosave2007 45c0985ace fix(qr): Use Qt qCompress format for QR code encoding
Amnezia Android uses qUncompress which expects:
- 4-byte big-endian uncompressed length prefix
- zlib compressed data (gzcompress output)

Previously we used a custom 12-byte header (version, compressedLen, uncompressedLen)
which was incompatible with Qt's qUncompress.

This fix ensures X-Ray QR codes can be properly decoded by Amnezia VPN app.
2026-01-24 13:17:57 +03:00
infosave2007 25ff0949ce fix(xray): Fix X-Ray install script and QR code generation
- Fix docker run command in install script (use single line instead of
  backslash continuations which break when stored in MySQL)
- Handle new xray x25519 output format that uses 'Password' instead of 'Public key'
- Make addClientToServer method public for backup restore functionality
- Created migration 046 with complete fix for X-Ray VLESS protocol
2026-01-24 13:03:05 +03:00
infosave2007 cbcd260498 fix: set xray default port to 443 to match android client 2026-01-23 20:07:27 +03:00
infosave2007 6b15cbc942 fix: add flow xtls-rprx-vision to xray server config 2026-01-23 19:55:56 +03:00
infosave2007 aa956e0ab2 fix: proper json escaping in xray install script 2026-01-23 19:33:58 +03:00
infosave2007 0a274ec263 fix: update xray install script to correct variable expansion 2026-01-23 19:22:01 +03:00
infosave2007 c9fecb45da feat: replace native confirm with custom modal to fix auto-close issue 2026-01-23 19:08:41 +03:00
infosave2007 6303abd181 fix: prevent confirm dialog from closing immediately on delete buttons 2026-01-23 18:57:27 +03:00
infosave2007 bbab877eac feat: ssh auth, protocol management, and cleanup 2026-01-23 17:55:40 +03:00
infosave2007 97bbc36032 chore(update): update auto-update script (migrations handling & translations) 2025-11-14 09:56:47 +03:00
infosave2007 dfdf5da368 fix: Improve LDAP configuration loading with table existence check 2025-11-11 19:04:53 +03:00
infosave2007 669baf1ba7 fix: Ensure Tailwind CSS devtools configuration is set correctly 2025-11-10 18:01:52 +03:00
infosave2007 d70ed1bbf3 chore: Add LDAP_FEATURE.md to gitignore 2025-11-10 18:01:52 +03:00
infosave2007 e7e901f6e5 feat: Add LDAP/Active Directory integration with group-based access control
- Add PHP LDAP extension to Docker container
- Implement LdapSync class for authentication and user synchronization
- Add automatic user sync via cron (every 30 minutes)
- Create role-based access control system (admin, manager, viewer)
- Add LDAP configuration UI in settings
- Support for both Active Directory and OpenLDAP
- Group-to-role mapping with flexible configuration
- Add 50+ translations (EN + RU) for LDAP features
- Include comprehensive setup documentation
- Enhance Auth::login() with LDAP fallback
- Add LDAP settings page with connection testing
2025-11-10 18:01:52 +03:00
infosave2007 406d3439e7 chore: Update gitignore 2025-11-10 18:01:52 +03:00
infosave2007 23075f1209 fix: update last_handshake when collecting metrics 2025-11-10 16:46:08 +03:00
infosave2007 a00868515f feat: add cron configuration check in container and log status 2025-11-10 16:29:04 +03:00
infosave2007 2ba0699b85 feat: improve metrics collector handling by starting it if not running and logging status 2025-11-10 16:09:21 +03:00
infosave2007 3c4f0aef53 fix: ensure NEW_COMMIT is set to CURRENT_COMMIT when no update is available 2025-11-10 16:05:31 +03:00
infosave2007 84474e5d68 feat: enhance update script to rebuild containers on Dockerfile changes and check metrics collector status 2025-11-10 16:04:15 +03:00
infosave2007 523a1a1836 feat: enhance update script with argument parsing and logging improvements 2025-11-10 15:53:23 +03:00
infosave2007 2de1b58fa4 feat: implement automatic metrics collection and monitoring system 2025-11-10 15:19:36 +03:00
infosave2007 bccd21b0a5 chore: remove outdated 2025-11-08 18:58:11 +03:00
infosave2007 f7603f04bf Update installation instructions with both docker compose versions 2025-11-08 18:22:04 +03:00
infosave2007 7a105cce6e Fix SettingsController for new translations table structure 2025-11-08 18:16:44 +03:00
infosave2007 2106aa77e0 Fix Translator.php for new table structure 2025-11-08 17:55:14 +03:00
infosave2007 93a5ff8c83 fix: Update user creation script to use mysql_native_password authentication 2025-11-08 17:49:03 +03:00
infosave2007 618f0421f2 fix: Ensure user creation and privileges are granted for localhost 2025-11-08 17:46:30 +03:00
infosave2007 e20686ef21 Add automatic user creation on database init 2025-11-08 17:41:33 +03:00
infosave2007 ec685e7672 feat: Implement migration procedure for translations table structure and insert new translations 2025-11-08 17:26:05 +03:00
infosave2007 7371dd6db0 fix: Simplify SQL command for creating migrations tracking table in update script 2025-11-08 17:01:35 +03:00
infosave2007 1aa0f31af2 fix: Simplify query for checking applied migrations in update script 2025-11-08 17:00:02 +03:00
infosave2007 14b6f5aec1 fix: Correct command substitution for checking applied migrations in update script 2025-11-08 16:57:13 +03:00
infosave2007 06536328c4 feat: Source .env file safely in update script for improved security 2025-11-08 16:54:44 +03:00
infosave2007 360bb66cea feat: Enhance update script with improved Docker command detection and database credential handling 2025-11-08 16:51:43 +03:00
infosave2007 4135972144 feat: Add auto update script for Amnezia VPN Panel with backup and migration support 2025-11-08 16:15:25 +03:00
infosave2007 7c9136152b feat: Implement server and client metrics collection and monitoring
- Added a new PHP script for collecting server metrics every 30 seconds.
- Created a ServerMonitoring class to handle metrics collection for CPU, RAM, Disk, and Network.
- Introduced database tables for storing server and client metrics.
- Updated server view template to display real-time metrics using Chart.js.
- Added translations for monitoring UI elements.
- Created a new monitoring template for detailed server metrics visualization.
- Implemented client speed tracking and display in the monitoring UI.
2025-11-08 15:35:17 +03:00