# 🚀 vServer - Функциональный веб-сервер на Go
**🇺🇸 [English version](README_EN.md)**
> Функциональный веб-сервер с поддержкой HTTP/HTTPS, MySQL, PHP, Let's Encrypt и GUI-админкой
**👨💻 Автор:** Суманеев Роман
**🌐 Сайт:** [vserf.ru](https://vserf.ru)
**📞 Контакт:** [VK](https://vk.com/felias)
## 🎯 Возможности
### 🌐 Веб-сервер
- ✅ **HTTP/HTTPS** сервер с поддержкой SSL сертификатов
- ✅ **Let's Encrypt** — автоматический выпуск и обновление SSL
- ✅ **Proxy сервер** — обратный прокси для локальных сервисов
- ✅ **PHP 8** — встроенная поддержка (FastCGI пул)
- ✅ **MySQL** — встроенный сервер базы данных
- ✅ **vAccess** — система контроля доступа
- ✅ **Wildcard** — поддержка wildcard-алиасов и сертификатов
### 🎛️ GUI Админка
- ✅ **Управление сервисами** — запуск/остановка HTTP, HTTPS, MySQL, PHP, Proxy
- ✅ **Управление сайтами** — создание, редактирование, удаление
- ✅ **Управление прокси** — визуальная настройка reverse proxy
- ✅ **SSL менеджер** — выпуск, перевыпуск, загрузка сертификатов
- ✅ **vAccess редактор** — настройка правил доступа с drag-and-drop
- ✅ **Настройки** — конфигурация портов MySQL, PHP, прокси, ACME
- ✅ **Тёмная/Светлая тема** и **RU/EN** локализация
## 🏗️ Архитектура
```
vServer/
├── 🎯 main.go # Точка входа (Wails)
│
├── 🔧 Backend/ # Основная логика
│ ├── admin/
│ │ ├── go/ # Go backend админки
│ │ └── API.md # Документация API
│ ├── config/ # Конфигурация Go
│ ├── tools/ # Утилиты и хелперы
│ └── WebServer/ # Модули веб-сервера
│ └── acme/ # Let's Encrypt
│
├── 🖥️ front_vue/ # Vue 3 фронтенд админки
│ └── src/
│ ├── Core/ # API, stores, i18n, router
│ └── Design/ # Компоненты, views, стили
│
├── 🌐 WebServer/ # Рабочие файлы сервера
│ ├── config.json # Конфигурация
│ ├── cert/ # SSL сертификаты
│ ├── soft/ # MySQL и PHP
│ ├── tools/ # Логи, error page, vAccess
│ └── www/ # Веб-контент (сайты)
│
├── 🔨 build_admin.ps1 # Скрипт сборки
└── 🚀 vSerf.exe # Готовое приложение
```
## 🚀 Установка и запуск
### Для пользователей
1. Скачайте последний [релиз](https://github.com/AiVoxel/vServer/releases)
2. Распакуйте архив `WebServer/soft/soft.rar` в папку `WebServer/soft/`
3. Запустите `vSerf.exe` — откроется GUI админка
4. Сервер стартует автоматически, управляйте через интерфейс
> 🔑 **Пароль MySQL по умолчанию:** `root`
### Для разработчиков
```powershell
# Сборка (проверит/установит Go, Node.js, Wails)
./build_admin.ps1
```
Скрипт автоматически:
- Проверит зависимости (Go, Node.js, npm) — предложит установить через `winget`
- Установит Go модули и Wails CLI
- Соберёт Vue фронтенд
- Скомпилирует → `vSerf.exe`
## 🔒 vAccess — Контроль доступа
Гибкая система правил для сайтов и прокси. Настраивается через GUI админку (раздел vAccess).
**Возможности:**
- IP-фильтрация — разрешение/блокировка по IP
- Контроль путей — ограничение доступа к директориям
- Фильтрация файлов — блокировка по расширениям
- Исключения — пути, к которым правило не применяется
- Кастомные ошибки — редиректы или страницы ошибок
## 🔐 SSL Сертификаты
### Автоматически (Let's Encrypt)
Включите ACME в настройках → сертификаты выпускаются и обновляются автоматически.
### Вручную
Загрузите через GUI админку (раздел SSL менеджер) или поместите файлы:
```
WebServer/cert/{domain}/
├── certificate.crt
├── private.key
└── ca_bundle.crt
```
> 💡 **Wildcard:** один сертификат в папке основного домена покрывает все поддомены.
## 📝 Логирование
Логи в `WebServer/tools/logs/`:
| Файл | Содержимое |
|------|------------|
| `logs_http.log` | HTTP запросы |
| `logs_https.log` | HTTPS запросы |
| `logs_proxy.log` | Ошибки прокси |
| `logs_mysql.log` | MySQL операции |
| `logs_php.log` | PHP ошибки |
| `logs_config.log` | Конфигурация |
| `logs_vaccess.log` | Контроль доступа |
| `logs_acme.log` | Let's Encrypt |
## 📡 API
Документация всех методов API админки: [`Backend/admin/API.md`](Backend/admin/API.md)