feat: добавлена возможность импорта из wg-easy и 3x-ui панелей

Основные изменения:
- Создан класс PanelImporter для парсинга и импорта клиентов
- Добавлена поддержка wg-easy (db.json)
- Добавлена поддержка 3x-ui (export JSON)
- Создана таблица panel_imports для отслеживания истории
- Добавлен UI для загрузки backup файлов при создании сервера
- Добавлены API endpoints: POST /api/servers/{id}/import и GET /api/servers/{id}/imports
- Автоматический импорт после деплоя сервера
- Переводы на всех 6 языках (EN, RU, ES, DE, FR, ZH)
- Обновлена документация в README

Функционал:
- Импорт клиентов с сохранением ключей и IP (wg-easy)
- Импорт клиентов с автогенерацией ключей (3x-ui)
- Поддержка экспирации и лимитов трафика из исходных панелей
- История импортов с информацией о количестве клиентов
- Обработка ошибок с детальным логированием
This commit is contained in:
infosave2007
2025-11-08 12:40:43 +03:00
parent bbb0fbeeb9
commit fc39346240
12 changed files with 643 additions and 10 deletions
+20
View File
@@ -0,0 +1,20 @@
-- Add panel imports tracking table
-- This migration adds functionality to track imports from other VPN panels
CREATE TABLE IF NOT EXISTS panel_imports (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
server_id INT UNSIGNED NOT NULL,
panel_type ENUM('wg-easy', '3x-ui') NOT NULL,
import_file_name VARCHAR(255) NOT NULL,
clients_imported INT UNSIGNED DEFAULT 0,
import_data JSON NULL COMMENT 'Original import data for reference',
status ENUM('pending', 'processing', 'completed', 'failed') DEFAULT 'pending',
error_message TEXT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_by INT UNSIGNED NULL,
INDEX idx_server_id (server_id),
INDEX idx_panel_type (panel_type),
INDEX idx_status (status),
FOREIGN KEY (server_id) REFERENCES vpn_servers(id) ON DELETE CASCADE,
FOREIGN KEY (created_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;