From 3402b19f2c9223f9735e3dc4d1692a88d1bd9a5d Mon Sep 17 00:00:00 2001 From: infosave2007 Date: Fri, 7 Nov 2025 13:33:04 +0300 Subject: [PATCH] first commit --- README.md | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a367054 --- /dev/null +++ b/README.md @@ -0,0 +1,148 @@ +# Amnezia VPN Web Panel + +Web-based management panel for Amnezia AWG (WireGuard) VPN servers. + +## Features + +- VPN server deployment via SSH +- Client configuration management +- Traffic statistics monitoring +- QR code generation for mobile apps +- Multi-language interface (English, Russian, Spanish, German, French, Chinese) +- REST API with JWT authentication +- User authentication and access control + +## Requirements + +- Docker +- Docker Compose + +## Installation + +```bash +git clone +cd amnezia-web-panel +cp .env.example .env +docker compose up -d +``` + +Access: http://localhost:8082 + +Default login: admin@amnez.ia / admin123 + +## Configuration + +Edit `.env`: + +``` +DB_HOST=db +DB_PORT=3306 +DB_DATABASE=amnezia_panel +DB_USERNAME=amnezia +DB_PASSWORD=amnezia123 + +ADMIN_EMAIL=admin@amnez.ia +ADMIN_PASSWORD=admin123 + +JWT_SECRET=your-secret-key-change-this +``` + +## Usage + +### Add VPN Server + +1. Servers → Add Server +2. Enter: name, host IP, SSH port, username, password +3. Click Deploy Server +4. Wait for deployment + +### Create Client + +1. Open server details +2. Enter client name +3. Click Create Client +4. Download config or scan QR code + +### API Authentication + +Get JWT token: +```bash +curl -X POST http://localhost:8082/api/auth/token \ + -d "email=admin@amnez.ia&password=admin123" +``` + +Use token: +```bash +curl -H "Authorization: Bearer " \ + http://localhost:8082/api/servers +``` + +## API Endpoints + +### Authentication +``` +POST /api/auth/token - Get JWT token +POST /api/tokens - Create persistent API token +GET /api/tokens - List API tokens +DELETE /api/tokens/{id} - Revoke token +``` + +### Servers +``` +GET /api/servers - List all servers +POST /api/servers/create - Create new server + Parameters: name, host, port, username, password +DELETE /api/servers/{id}/delete - Delete server by ID +GET /api/servers/{id}/clients - List clients on server +``` + +### Clients +``` +GET /api/clients - List all clients +GET /api/clients/{id}/details - Get client details with stats +POST /api/clients/create - Create new client + Parameters: server_id, name +POST /api/clients/{id}/revoke - Revoke client access +POST /api/clients/{id}/restore - Restore client access +DELETE /api/clients/{id}/delete - Delete client by ID +``` + +## Translation + +Add OpenRouter API key in Settings, then run: +```bash +docker compose exec app php bin/translate_all.php +``` + +Or translate via web interface: Settings → Auto-translate + +## Structure + +``` +public/index.php - Routes +inc/ - Core classes + Auth.php - Authentication + DB.php - Database connection + Router.php - URL routing + View.php - Twig templates + VpnServer.php - Server management + VpnClient.php - Client management + Translator.php - Multi-language + JWT.php - Token auth + QrUtil.php - QR code generation +templates/ - Twig templates +migrations/ - SQL migrations +``` + +## Tech Stack + +- PHP 8.2 +- MySQL 8.0 +- Twig 3 +- Tailwind CSS +- Docker + +## License + +MIT +# amneziavpnphp