Files
vServer/README_EN.md

132 lines
4.3 KiB
Markdown

# 🚀 vServer - Functional Web Server on Go
**🇷🇺 [Русская версия](README.md)**
> Full-featured web server with HTTP/HTTPS, MySQL, PHP, Let's Encrypt and GUI admin panel
**👨‍💻 Author:** Roman Sumaneev
**🌐 Website:** [vserf.ru](https://vserf.ru)
**📞 Contact:** [VK](https://vk.com/felias)
## 🎯 Features
<img src="https://vserf.ru/images/11.jpg" alt="Main page" width="600">
<img src="https://vserf.ru/images/12.jpg" alt="Main page" width="600">
### 🌐 Web Server
-**HTTP/HTTPS** server with SSL certificate support
-**Let's Encrypt** — automatic SSL issuance and renewal
-**Proxy server** — reverse proxy for local services
-**PHP 8** — built-in support (FastCGI pool)
-**MySQL** — built-in database server
-**vAccess** — access control system
-**Wildcard** — wildcard aliases and certificates support
### 🎛️ GUI Admin Panel
-**Service management** — start/stop HTTP, HTTPS, MySQL, PHP, Proxy
-**Site management** — create, edit, delete
-**Proxy management** — visual reverse proxy configuration
-**SSL manager** — issue, renew, upload certificates
-**vAccess editor** — access rules with drag-and-drop
-**Settings** — MySQL, PHP, proxy, ACME configuration
-**Dark/Light theme** and **RU/EN** localization
## 🏗️ Architecture
```
vServer/
├── 🎯 main.go # Entry point (Wails)
├── 🔧 Backend/ # Core logic
│ ├── admin/
│ │ ├── go/ # Go admin backend
│ │ └── API.md # API documentation
│ ├── config/ # Go configuration
│ ├── tools/ # Utilities and helpers
│ └── WebServer/ # Web server modules
│ └── acme/ # Let's Encrypt
├── 🖥️ front_vue/ # Vue 3 admin frontend
│ └── src/
│ ├── Core/ # API, stores, i18n, router
│ └── Design/ # Components, views, styles
├── 🌐 WebServer/ # Server working files
│ ├── config.json # Configuration
│ ├── cert/ # SSL certificates
│ ├── soft/ # MySQL and PHP
│ ├── tools/ # Logs, error page, vAccess
│ └── www/ # Web content (sites)
├── 🔨 build_admin.ps1 # Build script
└── 🚀 vSerf.exe # Built application
```
## 🚀 Installation and Launch
### For Users
1. Download the latest [release](https://github.com/AiVoxel/vServer/releases)
2. Extract `WebServer/soft/soft.rar` to `WebServer/soft/`
3. Run `vSerf.exe` — the GUI admin panel will open
4. Server starts automatically, manage everything through the interface
> 🔑 **Default MySQL password:** `root`
### For Developers
```powershell
# Build (checks/installs Go, Node.js, Wails)
./build_admin.ps1
```
The script automatically:
- Checks dependencies (Go, Node.js, npm) — offers to install via `winget`
- Installs Go modules and Wails CLI
- Builds Vue frontend
- Compiles → `vSerf.exe`
## 🔒 vAccess — Access Control
Flexible rules system for sites and proxies. Configured through GUI admin panel (vAccess section).
**Features:**
- IP filtering — allow/block by IP addresses
- Path control — restrict access to directories
- File filtering — block by extensions
- Exceptions — paths excluded from rules
- Custom errors — redirects or error pages
## 🔐 SSL Certificates
### Automatic (Let's Encrypt)
Enable ACME in settings → certificates are issued and renewed automatically.
### Manual
Upload through GUI admin panel (SSL Manager section) or place files:
```
WebServer/cert/{domain}/
├── certificate.crt
├── private.key
└── ca_bundle.crt
```
> 💡 **Wildcard:** one certificate in the main domain folder covers all subdomains.
## 📝 Logging
Logs in `WebServer/tools/logs/`:
| File | Contents |
|------|----------|
| `logs_http.log` | HTTP requests |
| `logs_https.log` | HTTPS requests |
| `logs_proxy.log` | Proxy errors |
| `logs_mysql.log` | MySQL operations |
| `logs_php.log` | PHP errors |
| `logs_config.log` | Configuration |
| `logs_vaccess.log` | Access control |
| `logs_acme.log` | Let's Encrypt |
## 📡 API
Full admin API documentation: [`Backend/admin/API.md`](Backend/admin/API.md)