# πŸš€ 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 Main page Main page ### 🌐 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)