# π 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
### π 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)