Modern, secure, and high-performance hosting control panel built with Go, HTMX, and Python/Ansible.
- Multi-Database Support: MySQL 5.7/8.0, PostgreSQL 12-16, MongoDB 4.4-7.0, Redis 6-7
- Multi-PHP Support: PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3
- Multi-Node.js Support: Node.js 14.x, 16.x, 18.x, 20.x, 21.x
- Multi-Webserver: Nginx, Apache2, LiteSpeed, Caddy (with auto-switching)
- Server Providers: Hetzner, DigitalOcean, Vultr, AWS, Custom SSH
- WAF Integration: ModSecurity with OWASP Core Rule Set
- Custom WAF Rules: Per-site and global rule management
- Anti Code Injection: Input validation and sanitization
- XSS Protection: Content Security Policy headers
- SQL Injection Prevention: Prepared statements enforcement
- ClamAV Antivirus: Real-time file scanning
- Fail2ban: Brute force protection for SSH, FTP, Email, Panel
- Firewall Manager: UFW/iptables with preset rules
- SSL/TLS Management: Let's Encrypt auto-renewal + custom certs
- 2FA Authentication: TOTP support for all user roles
- Audit Logging: Comprehensive action tracking
- Mail Server: Postfix (SMTP) + Dovecot (IMAP/POP3)
- Webmail: Roundcube and SnappyMail integrated
- Email Accounts: Create/delete/manage mailboxes
- Email Aliases: Unlimited aliases per domain
- Email Forwarding: Local and external forwarding
- Spam Protection: SpamAssassin integration
- DKIM/SPF/DMARC: Auto-configuration
- Mail Quotas: Per-account storage limits
- Email Filters: Sieve-based filtering
- DNS Servers: Bind9 (primary) or PowerDNS
- DNS Providers: Cloudflare, Route53, Custom
- Zone Management: A, AAAA, CNAME, MX, TXT, SRV, CAA records
- DNSSEC Support: Automated key management
- DNS Templates: Quick setup for common configurations
- Geo DNS: Location-based routing
- Health Checks: Automatic failover
- One-Click Apps: WordPress, Laravel, Node.js, Static sites
- Git Deployment: GitHub/GitLab webhooks
- Zero-Downtime Deploy: Blue-green deployments
- Staging Environments: Isolated testing environments
- File Manager: Web-based with upload/download
- FTP/SFTP: Per-user account management
- Cron Jobs: Visual cron editor
- Environment Variables: Secure secret management
- Custom nginx/Apache configs: Per-site overrides
- phpMyAdmin: MySQL/MariaDB management
- pgAdmin: PostgreSQL management
- Adminer: Universal database tool
- MongoDB Compass: MongoDB GUI
- Redis Commander: Redis management
- Database Backups: Automated dumps
- Query Monitor: Slow query detection
- Real-time Metrics: CPU, RAM, Disk, Network
- Application Performance: Response times, error rates
- Uptime Monitoring: HTTP/HTTPS checks
- SSL Certificate Expiry: Alerts before expiration
- Resource Alerts: Customizable thresholds
- Log Aggregation: Centralized log viewer
- Traffic Analytics: Bandwidth usage per site
- Automated Backups: Scheduled full/incremental
- Backup Storage: Local, S3, FTP, SFTP
- One-Click Restore: Point-in-time recovery
- Backup Encryption: AES-256 encryption
- Retention Policies: Configurable cleanup
- Backup Verification: Automated integrity checks
- Multi-tenant: Unlimited reseller levels
- Stripe Integration: Subscriptions and one-time payments
- Invoice Generation: Automated PDF invoices
- Usage-Based Billing: Metered resources
- Reseller Margins: Configurable markup
- Client Portal: Self-service management
- Payment Methods: Card, PayPal, Bank transfer
βββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND: HTMX + Alpine.js β
β β’ Server-Side Rendering (Templ) β
β β’ Real-time updates (SSE) β
β β’ Tailwind CSS + DaisyUI β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β API GATEWAY: Go + Fiber β
β β’ JWT Authentication β
β β’ Rate Limiting β
β β’ RBAC Middleware β
β β’ Request Validation β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β SERVICES LAYER (Go) β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Server Management β
β β’ Site Deployment β
β β’ DNS Management β
β β’ Email Management β
β β’ Database Management β
β β’ SSL/Certificate Management β
β β’ Backup Management β
β β’ Monitoring & Alerts β
β β’ Billing & Invoicing β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββ¬βββββββββββββββ¬ββββββββββββββββ
β PostgreSQL β Redis β TimescaleDB β
β (Core Data) β(Cache/Queue) β (Metrics) β
ββββββββββββββββ΄βββββββββββββββ΄ββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β WORKER POOL (Go + Asynq) β
β β’ Async job processing β
β β’ Server provisioning β
β β’ Backup execution β
β β’ SSL renewal β
β β’ Health checks β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β AUTOMATION LAYER β
β Python Scripts + Ansible Playbooks β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Server provisioning & hardening β
β β’ Web server configuration β
β β’ Database installation β
β β’ Email server setup β
β β’ Security configuration β
β β’ Monitoring agent installation β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β MANAGED SERVERS β
β β’ Agent (optional): Metrics collection β
β β’ SSH Access: Ansible-based management β
β β’ Services: Nginx, PHP-FPM, MySQL, etc. β
βββββββββββββββββββββββββββββββββββββββββββββββ
vip-hosting-panel-v2/
βββ cmd/
β βββ api/ # Main web server
β β βββ main.go
β βββ worker/ # Background job processor
β β βββ main.go
β βββ agent/ # Server monitoring agent (optional)
β β βββ main.go
β βββ cli/ # CLI tools
β βββ main.go
β
βββ internal/
β βββ auth/ # Authentication & authorization
β β βββ jwt.go
β β βββ rbac.go
β β βββ session.go
β β βββ twofa.go
β β
β βββ handlers/ # HTTP request handlers
β β βββ auth.go
β β βββ dashboard.go
β β βββ servers.go
β β βββ sites.go
β β βββ databases.go
β β βββ email.go
β β βββ dns.go
β β βββ ssl.go
β β βββ backups.go
β β βββ monitoring.go
β β βββ firewall.go
β β βββ users.go
β β βββ billing.go
β β
β βββ services/ # Business logic
β β βββ servers/
β β β βββ provisioner.go
β β β βββ hetzner.go
β β β βββ digitalocean.go
β β β βββ manager.go
β β βββ sites/
β β β βββ deployer.go
β β β βββ templates.go
β β β βββ manager.go
β β βββ databases/
β β β βββ mysql.go
β β β βββ postgresql.go
β β β βββ mongodb.go
β β β βββ redis.go
β β βββ email/
β β β βββ postfix.go
β β β βββ dovecot.go
β β β βββ accounts.go
β β β βββ aliases.go
β β β βββ spam.go
β β βββ dns/
β β β βββ bind9.go
β β β βββ cloudflare.go
β β β βββ route53.go
β β β βββ manager.go
β β βββ ssl/
β β β βββ acme.go
β β β βββ letsencrypt.go
β β β βββ manager.go
β β βββ security/
β β β βββ waf.go
β β β βββ firewall.go
β β β βββ fail2ban.go
β β β βββ clamav.go
β β β βββ scanner.go
β β βββ backups/
β β β βββ scheduler.go
β β β βββ s3.go
β β β βββ restore.go
β β βββ monitoring/
β β β βββ metrics.go
β β β βββ alerts.go
β β β βββ uptime.go
β β βββ billing/
β β βββ stripe.go
β β βββ invoices.go
β β βββ usage.go
β β
β βββ models/ # Database models
β β βββ user.go
β β βββ server.go
β β βββ site.go
β β βββ database.go
β β βββ email.go
β β βββ dns.go
β β βββ backup.go
β β βββ invoice.go
β β
β βββ jobs/ # Background jobs
β β βββ server_provisioning.go
β β βββ site_deployment.go
β β βββ backup_execution.go
β β βββ ssl_renewal.go
β β βββ health_check.go
β β βββ cleanup.go
β β
β βββ middleware/ # HTTP middleware
β β βββ auth.go
β β βββ rbac.go
β β βββ rate_limit.go
β β βββ logging.go
β β βββ cors.go
β β
β βββ repository/ # Database access layer
β β βββ user.go
β β βββ server.go
β β βββ site.go
β β βββ ...
β β
β βββ utils/ # Helper functions
β βββ crypto.go
β βββ validator.go
β βββ ssh.go
β βββ helpers.go
β
βββ web/
β βββ templates/ # Templ HTML templates
β β βββ layouts/
β β β βββ base.templ
β β β βββ dashboard.templ
β β β βββ auth.templ
β β βββ pages/
β β β βββ dashboard.templ
β β β βββ servers/
β β β βββ sites/
β β β βββ databases/
β β β βββ email/
β β β βββ dns/
β β β βββ ssl/
β β β βββ backups/
β β β βββ monitoring/
β β β βββ settings/
β β βββ components/
β β βββ navbar.templ
β β βββ sidebar.templ
β β βββ server_card.templ
β β βββ site_card.templ
β β βββ modals.templ
β β βββ forms.templ
β β
β βββ static/
β βββ css/
β β βββ tailwind.css
β β βββ custom.css
β βββ js/
β β βββ alpine.js
β β βββ htmx.js
β βββ images/
β βββ icons/
β
βββ automation/
β βββ playbooks/ # Ansible playbooks
β β βββ provision-server.yml
β β βββ setup-webserver.yml
β β βββ install-php.yml
β β βββ install-nodejs.yml
β β βββ install-mysql.yml
β β βββ install-postgresql.yml
β β βββ install-mongodb.yml
β β βββ install-redis.yml
β β βββ setup-email.yml
β β βββ setup-dns.yml
β β βββ configure-firewall.yml
β β βββ install-waf.yml
β β βββ install-fail2ban.yml
β β βββ install-clamav.yml
β β βββ configure-ssl.yml
β β βββ setup-backups.yml
β β βββ install-monitoring.yml
β β βββ security-hardening.yml
β β
β βββ roles/ # Ansible roles
β β βββ common/
β β βββ webserver/
β β βββ database/
β β βββ email/
β β βββ security/
β β βββ monitoring/
β β
β βββ scripts/ # Python management scripts
β β βββ server_manager.py
β β βββ site_manager.py
β β βββ database_manager.py
β β βββ email_manager.py
β β βββ dns_manager.py
β β βββ ssl_manager.py
β β βββ backup_manager.py
β β βββ firewall_manager.py
β β βββ monitoring_agent.py
β β
β βββ templates/ # Configuration templates
β β βββ nginx/
β β β βββ vhost.conf.j2
β β β βββ php.conf.j2
β β β βββ nodejs.conf.j2
β β βββ apache/
β β β βββ vhost.conf.j2
β β βββ php/
β β β βββ php.ini.j2
β β βββ mysql/
β β β βββ my.cnf.j2
β β βββ postfix/
β β β βββ main.cf.j2
β β β βββ master.cf.j2
β β βββ dovecot/
β β β βββ dovecot.conf.j2
β β βββ fail2ban/
β β β βββ jail.local.j2
β β βββ modsecurity/
β β βββ custom-rules.conf.j2
β β
β βββ inventory/ # Ansible inventory
β βββ production.ini
β βββ staging.ini
β
βββ migrations/ # Database migrations
β βββ 001_initial_schema.sql
β βββ 002_add_email_tables.sql
β βββ 003_add_dns_tables.sql
β βββ ...
β
βββ configs/ # Configuration files
β βββ config.yaml.example
β βββ providers.yaml.example
β βββ security.yaml.example
β
βββ scripts/ # Build and deployment scripts
β βββ build.sh
β βββ deploy.sh
β βββ migrate.sh
β βββ setup-dev.sh
β
βββ tests/ # Tests
β βββ unit/
β βββ integration/
β βββ e2e/
β
βββ docs/ # Documentation
β βββ getting-started.md
β βββ architecture.md
β βββ api-reference.md
β βββ ansible-playbooks.md
β βββ security.md
β
βββ docker/ # Docker configuration
β βββ api/
β β βββ Dockerfile
β βββ worker/
β β βββ Dockerfile
β βββ agent/
β βββ Dockerfile
β
βββ docker-compose.yml # Development environment
βββ docker-compose.prod.yml # Production setup
βββ Makefile # Build automation
βββ go.mod # Go dependencies
βββ go.sum
βββ package.json # Frontend dependencies
βββ tailwind.config.js # Tailwind configuration
βββ README.md # This file
- Ubuntu 22.04/24.04 or Debian 11/12
- Go 1.21+
- Node.js 18+
- PostgreSQL 15+
- Redis 7+
- systemd (included in Ubuntu/Debian)
- Nginx (as reverse proxy)
- Clone the repository
git clone https://github.com/yourusername/vip-hosting-panel-v2.git
cd vip-hosting-panel-v2- Run the automated installer
sudo bash scripts/install.shThis will:
- Install all system dependencies (PostgreSQL, Redis, Nginx)
- Build the Go binaries
- Setup systemd services
- Configure firewall
- Create database and run migrations
- Generate SSL certificates
- Start all services
- Install system dependencies
# Update system
sudo apt update && sudo apt upgrade -y
# Install PostgreSQL
sudo apt install postgresql postgresql-contrib -y
# Install Redis
sudo apt install redis-server -y
# Install Nginx
sudo apt install nginx -y
# Install Go (if not installed)
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
# Install Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs -y
# Install Python dependencies
sudo apt install python3 python3-pip ansible -y
pip3 install -r automation/requirements.txt- Setup database
sudo -u postgres psql << EOF
CREATE DATABASE vip_hosting;
CREATE USER vip_panel WITH PASSWORD 'change_this_password';
GRANT ALL PRIVILEGES ON DATABASE vip_hosting TO vip_panel;
\c vip_hosting
GRANT ALL ON SCHEMA public TO vip_panel;
EOF- Copy and configure
# Copy config files
cp configs/config.yaml.example configs/config.yaml
cp configs/providers.yaml.example configs/providers.yaml
# Edit configurations
nano configs/config.yaml- Build the application
make build- Install systemd services
sudo make install-services- Start services
sudo systemctl enable vip-panel-api
sudo systemctl enable vip-panel-worker
sudo systemctl start vip-panel-api
sudo systemctl start vip-panel-worker- Setup Nginx reverse proxy
sudo make setup-nginx
sudo systemctl reload nginx- Access the panel
https://your-domain.com or https://your-server-ip
Default credentials:
Email: admin@example.com
Password: admin123
# Install dependencies
go mod download
npm install
# Run migrations
make migrate
# Start in development mode
make devserver:
host: 0.0.0.0
port: 3000
read_timeout: 30s
write_timeout: 30s
database:
host: localhost
port: 5432
name: vip_hosting
user: postgres
password: postgres
max_connections: 100
redis:
host: localhost
port: 6379
password: ""
db: 0
jwt:
secret: "your-secret-key-change-in-production"
expiration: 24h
features:
multi_php: true
multi_nodejs: true
multi_database: true
email_server: true
dns_management: true
waf: true
antivirus: trueproviders:
hetzner:
enabled: true
api_token: "your-hetzner-api-token"
default_region: nbg1
digitalocean:
enabled: false
api_token: ""
cloudflare:
enabled: true
api_token: "your-cloudflare-api-token"
email: "your-email@example.com"
stripe:
enabled: true
secret_key: "sk_test_..."
public_key: "pk_test_..."
webhook_secret: "whsec_..."POST /api/auth/login
{
"email": "user@example.com",
"password": "password123"
}POST /api/auth/register
{
"email": "user@example.com",
"password": "password123",
"name": "John Doe"
}GET /api/servers - List all servers POST /api/servers - Create new server GET /api/servers/:id - Get server details PUT /api/servers/:id - Update server DELETE /api/servers/:id - Delete server POST /api/servers/:id/reboot - Reboot server POST /api/servers/:id/resize - Resize server
GET /api/sites - List all sites POST /api/sites - Create new site GET /api/sites/:id - Get site details PUT /api/sites/:id - Update site DELETE /api/sites/:id - Delete site POST /api/sites/:id/deploy - Deploy site
GET /api/databases - List all databases POST /api/databases - Create database DELETE /api/databases/:id - Delete database
GET /api/email/accounts - List email accounts POST /api/email/accounts - Create email account GET /api/email/aliases - List aliases POST /api/email/aliases - Create alias
GET /api/dns/zones - List DNS zones POST /api/dns/zones - Create DNS zone GET /api/dns/records - List DNS records POST /api/dns/records - Create DNS record
The panel includes ModSecurity with OWASP Core Rule Set. Custom rules can be added per-site:
# Custom WAF rule example
SecRule REQUEST_URI "@contains /admin" \
"id:1000,phase:1,deny,status:403,msg:'Admin access blocked'"Default firewall rules are automatically configured:
- SSH (22) - Restricted to management IPs
- HTTP (80) - Open
- HTTPS (443) - Open
- MySQL (3306) - Localhost only
- PostgreSQL (5432) - Localhost only
- SMTP (25, 587) - Open
- IMAP (143, 993) - Open
- POP3 (110, 995) - Open
Automatic brute-force protection for:
- SSH
- FTP
- Email (SMTP, IMAP, POP3)
- Panel login
- WordPress
- Custom rules per application
- CPU usage (per core and total)
- Memory usage (used, free, cached)
- Disk usage (per partition)
- Network traffic (in/out)
- Process count
- Load average
- Database connections
- Web server requests
- Email queue size
- CPU > 80% for 5 minutes
- Memory > 90%
- Disk > 85%
- Service down
- SSL certificate expiring in < 7 days
- Backup failed
- Security scan detected malware
- Full Backup: Complete server snapshot
- Incremental Backup: Changes since last backup
- Database Backup: SQL dumps
- File Backup: Website files only
- Local storage (on-server)
- S3-compatible (AWS, DigitalOcean Spaces, MinIO)
- FTP/SFTP remote servers
- Multiple destinations per backup
- Select backup point
- Choose restore type (full, files only, database only)
- Select destination (original location or new location)
- Verify and confirm
- Automated rollback if restore fails
- Tiered pricing based on resources
- Custom pricing per reseller
- Usage-based add-ons
- One-time charges support
- Automated monthly invoicing
- Prorated charges for upgrades/downgrades
- VAT/tax calculation
- Multi-currency support
- PDF generation with custom branding
- β Core infrastructure
- β Multi-PHP/Node.js support
- β Basic security features
- β Email server
- β DNS management
- β Billing integration
- Advanced WAF rules
- Container support (Docker)
- Kubernetes integration
- Advanced analytics
- Mobile app
- White-labeling
- Plugin system
- Marketplace
- Advanced automation
- AI-powered optimization
- Getting Started Guide
- Architecture Overview
- API Reference
- Ansible Playbooks
- Security Best Practices
- Troubleshooting
Contributions are welcome! Please read CONTRIBUTING.md for details.
This project is licensed under the MIT License - see LICENSE file for details.
- HTMX for the hypermedia approach
- Templ for type-safe Go templates
- Fiber for the blazing-fast web framework
- Ansible for infrastructure automation
- The open-source community
- Documentation: https://docs.viphostingpanel.com
- Community Forum: https://community.viphostingpanel.com
- Discord: https://discord.gg/viphostingpanel
- Email: support@viphostingpanel.com
Made with β€οΈ by the VIP Hosting Panel Team