Files
vServer/README.md

132 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 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)
## 🎯 Возможности
<img src="https://vserf.ru/images/11.jpg" alt="Главная страница" width="600">
<img src="https://vserf.ru/images/12.jpg" alt="Главная страница" width="600">
### 🌐 Веб-сервер
-**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)