VUE дизайн

This commit is contained in:
2026-02-08 05:37:13 +07:00
parent bdfa2404b5
commit caf52afcdf
73 changed files with 1148 additions and 7211 deletions

394
Backend/admin/API.md Normal file
View File

@@ -0,0 +1,394 @@
# 📡 vServer Admin API
API панели управления vServer. Все методы вызываются через Wails IPC биндинги.
> **Доступ из фронтенда:** `window.go.admin.App.MethodName()`
---
## 📋 Содержание
- [Сервисы](#-сервисы)
- [Сайты](#-сайты)
- [Прокси](#-прокси)
- [Сертификаты](#-сертификаты)
- [Конфигурация](#-конфигурация)
- [vAccess](#-vaccess)
- [Типы данных](#-типы-данных)
- [События](#-события)
---
## 🔧 Сервисы
### `GetAllServicesStatus()`
Возвращает статусы всех сервисов.
- **Параметры:** нет
- **Возвращает:** `AllServicesStatus`
```json
{
"http": { "name": "HTTP", "status": true, "port": "80", "info": "" },
"https": { "name": "HTTPS", "status": true, "port": "443", "info": "" },
"mysql": { "name": "MySQL", "status": true, "port": "3306","info": "" },
"php": { "name": "PHP", "status": true, "port": "8000","info": "" },
"proxy": { "name": "Proxy", "status": false, "port": "", "info": "" }
}
```
### `CheckServicesReady()`
Проверяет, готовы ли все основные сервисы (HTTP, HTTPS, MySQL, PHP).
- **Параметры:** нет
- **Возвращает:** `bool`
---
### `StartServer()`
Запускает все сервисы (HTTP, HTTPS, PHP, MySQL, SSL).
- **Параметры:** нет
- **Возвращает:** `string``"Server started"`
### `StopServer()`
Останавливает все сервисы.
- **Параметры:** нет
- **Возвращает:** `string``"Server stopped"`
### `RestartAllServices()`
Перезапускает все сервисы с перезагрузкой конфига и сертификатов.
- **Параметры:** нет
- **Возвращает:** `string``"All services restarted"`
---
### `StartHTTPService()` / `StopHTTPService()`
Управление HTTP сервером (порт 80).
- **Параметры:** нет
- **Возвращает:** `string``"HTTP started"` / `"HTTP stopped"`
### `StartHTTPSService()` / `StopHTTPSService()`
Управление HTTPS сервером (порт 443).
- **Параметры:** нет
- **Возвращает:** `string``"HTTPS started"` / `"HTTPS stopped"`
### `StartMySQLService()` / `StopMySQLService()`
Управление MySQL сервером.
- **Параметры:** нет
- **Возвращает:** `string``"MySQL started"` / `"MySQL stopped"`
### `StartPHPService()` / `StopPHPService()`
Управление PHP FastCGI пулом.
- **Параметры:** нет
- **Возвращает:** `string``"PHP started"` / `"PHP stopped"`
### `EnableProxyService()` / `DisableProxyService()`
Включение/отключение прокси-сервиса. Сохраняет изменение в конфиг.
- **Параметры:** нет
- **Возвращает:** `string``"Proxy enabled"` / `"Proxy disabled"`
### `EnableACMEService()` / `DisableACMEService()`
Включение/отключение ACME (Let's Encrypt). Сохраняет изменение в конфиг.
- **Параметры:** нет
- **Возвращает:** `string``"ACME enabled"` / `"ACME disabled"`
---
## 🌐 Сайты
### `GetSitesList()`
Получает список всех сайтов.
- **Параметры:** нет
- **Возвращает:** `[]SiteInfo`
```json
[
{
"name": "My Site",
"host": "example.com",
"alias": ["www.example.com"],
"status": "active",
"root_file": "index.html",
"root_file_routing": false,
"auto_create_ssl": true
}
]
```
### `CreateNewSite(siteJSON)`
Создаёт новый сайт. Создаёт папку, конфиг и шаблон index.html.
- **Параметры:** `siteJSON: string` — JSON строка с данными `SiteInfo`
- **Возвращает:** `string``"Site created successfully"` или `"Error: ..."`
### `DeleteSite(host)`
Удаляет сайт (папку и запись из конфига).
- **Параметры:** `host: string` — домен сайта
- **Возвращает:** `string``"Site deleted successfully"` или `"Error: ..."`
### `UpdateSiteCache()`
Обновляет кэш статусов сайтов.
- **Параметры:** нет
- **Возвращает:** `string``"Cache updated"`
### `OpenSiteFolder(host)`
Открывает папку сайта в проводнике Windows.
- **Параметры:** `host: string` — домен сайта
- **Возвращает:** `string``"Folder opened"` или `"Error: ..."`
---
## 🔀 Прокси
### `GetProxyList()`
Получает список всех прокси-сервисов.
- **Параметры:** нет
- **Возвращает:** `[]ProxyInfo`
```json
[
{
"enable": true,
"external_domain": "app.example.com",
"local_address": "127.0.0.1",
"local_port": "3000",
"service_https_use": false,
"auto_https": true,
"auto_create_ssl": true,
"status": "active"
}
]
```
---
## 🔒 Сертификаты
### `GetCertInfo(domain)`
Получает информацию о сертификате для домена.
- **Параметры:** `domain: string`
- **Возвращает:** `CertInfo`
```json
{
"domain": "example.com",
"issuer": "Let's Encrypt",
"not_before": "2025-01-01T00:00:00Z",
"not_after": "2025-03-31T00:00:00Z",
"days_left": 60,
"is_expired": false,
"has_cert": true,
"dns_names": ["example.com", "www.example.com"]
}
```
### `GetAllCertsInfo()`
Получает информацию о всех сертификатах.
- **Параметры:** нет
- **Возвращает:** `[]CertInfo`
### `ObtainSSLCertificate(domain)`
Получает SSL сертификат через Let's Encrypt для указанного домена.
- **Параметры:** `domain: string`
- **Возвращает:** `string``"SSL certificate obtained successfully for ..."` или `"Error: ..."`
### `ObtainAllSSLCertificates()`
Получает сертификаты для всех доменов с флагом `auto_create_ssl: true`.
- **Параметры:** нет
- **Возвращает:** `string``"Completed: X success, Y errors"`
### `UploadCertificate(host, certType, certDataBase64)`
Загружает сертификат вручную.
- **Параметры:**
- `host: string` — домен
- `certType: string` — тип файла (`"cert"` или `"key"`)
- `certDataBase64: string` — содержимое файла в Base64
- **Возвращает:** `string``"Certificate uploaded successfully"` или `"Error: ..."`
### `DeleteCertificate(domain)`
Удаляет сертификат для домена.
- **Параметры:** `domain: string`
- **Возвращает:** `string``"Certificate deleted successfully"` или `"Error: ..."`
### `ReloadSSLCertificates()`
Перезагружает все SSL сертификаты.
- **Параметры:** нет
- **Возвращает:** `string``"SSL certificates reloaded"`
---
## ⚙️ Конфигурация
### `GetConfig()`
Возвращает текущую конфигурацию сервера.
- **Параметры:** нет
- **Возвращает:** `object` — полный объект конфигурации
### `SaveConfig(configJSON)`
Сохраняет конфигурацию в файл и перезагружает.
- **Параметры:** `configJSON: string` — JSON строка с конфигурацией
- **Возвращает:** `string``"Config saved"` или `"Error: ..."`
### `ReloadConfig()`
Перезагружает конфигурацию из файла.
- **Параметры:** нет
- **Возвращает:** `string``"Config reloaded"`
---
## 🛡️ vAccess
### `GetVAccessRules(host, isProxy)`
Получает правила доступа для сайта или прокси.
- **Параметры:**
- `host: string` — домен
- `isProxy: bool``true` для прокси, `false` для сайта
- **Возвращает:** `VAccessConfig`
```json
{
"rules": [
{
"type": "allow",
"type_file": [".php", ".html"],
"path_access": ["/admin"],
"ip_list": ["192.168.1.0/24"],
"exceptions_dir": ["/public"],
"url_error": "/403.html"
}
]
}
```
### `SaveVAccessRules(host, isProxy, configJSON)`
Сохраняет правила доступа.
- **Параметры:**
- `host: string` — домен
- `isProxy: bool``true` для прокси, `false` для сайта
- `configJSON: string` — JSON строка с `VAccessConfig`
- **Возвращает:** `string``"vAccess saved"` или `"Error: ..."`
---
## 📦 Типы данных
### `ServiceStatus`
```json
{
"name": "string",
"status": "bool",
"port": "string",
"info": "string"
}
```
### `AllServicesStatus`
```json
{
"http": "ServiceStatus",
"https": "ServiceStatus",
"mysql": "ServiceStatus",
"php": "ServiceStatus",
"proxy": "ServiceStatus"
}
```
### `SiteInfo`
```json
{
"name": "string",
"host": "string",
"alias": ["string"],
"status": "string",
"root_file": "string",
"root_file_routing": "bool",
"auto_create_ssl": "bool"
}
```
### `ProxyInfo`
```json
{
"enable": "bool",
"external_domain": "string",
"local_address": "string",
"local_port": "string",
"service_https_use": "bool",
"auto_https": "bool",
"auto_create_ssl": "bool",
"status": "string"
}
```
### `CertInfo`
```json
{
"domain": "string",
"issuer": "string",
"not_before": "string",
"not_after": "string",
"days_left": "int",
"is_expired": "bool",
"has_cert": "bool",
"dns_names": ["string"]
}
```
### `VAccessRule`
```json
{
"type": "string",
"type_file": ["string"],
"path_access": ["string"],
"ip_list": ["string"],
"exceptions_dir": ["string"],
"url_error": "string"
}
```
### `VAccessConfig`
```json
{
"rules": ["VAccessRule"]
}
```
---
## 📡 События (Wails Events)
### `service:changed`
Эмитится каждые 500мс с текущими статусами сервисов.
- **Данные:** `AllServicesStatus`
### `server:already_running`
Эмитится при запуске, если vServer уже запущен в другом экземпляре.
- **Данные:** `bool``true`