132 lines
6.2 KiB
Markdown
132 lines
6.2 KiB
Markdown
# 🚀 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)
|