Setup Guide
Complete installation and configuration guide
Prerequisites
- PHP 8.0+ with extensions: PDO, MySQL, OpenSSL, MBString
- MySQL/MariaDB 5.7+
- Composer for dependency management
- Proxmox VE/PBS/PMG with API access
- SMTP Server for email verification (Gmail, SendGrid, etc.)
- PayPal Account for payment integration
Installation Steps
1. Clone Repository
git clone <repository-url>
cd Proxmox-Dashboard
2. Install Dependencies
composer install
This installs:
twig/twig- Templating enginephpmailer/phpmailer- Email sendingpaypal/rest-api-sdk-php- PayPal integration
3. Configure Environment
cp .env.example .env
Database Configuration
DB_HOST=localhost
DB_NAME=proxmox_dashboard
DB_USER=root
DB_PASS=your_password
SMTP Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME="Proxmox Dashboard"
Gmail Users: Use an App Password instead of your regular password.
Generate one at: Google App
Passwords
PayPal Configuration (Sandbox)
PAYPAL_MODE=sandbox
PAYPAL_CLIENT_ID=your-sandbox-client-id
PAYPAL_CLIENT_SECRET=your-sandbox-client-secret
Get PayPal Credentials: Create a sandbox app at
PayPal Developer Dashboard
4. Create Database
mysql -u root -p
CREATE DATABASE proxmox_dashboard;
EXIT;
5. Run Migrations
Run all migrations in order:
php database/migrate_001.php # Core tables
php database/migrate_002.php # IP pools
php database/migrate_003.php # Backups
php database/migrate_004.php # Audit logs
php database/migrate_005.php # VM assignments
php database/migrate_006.php # IP pool config
php database/migrate_007.php # User profiles
php database/migrate_008.php # Credits & PayPal
php database/migrate_009.php # Groups & Permissions
php database/migrate_010.php # Host configuration
6. Start Development Server
php -S localhost:8000 -t public
Access the dashboard at: http://localhost:8000
Production Deployment
Production Checklist
Web Server Configuration (Apache)
<VirtualHost *:80>
ServerName dashboard.example.com
DocumentRoot /path/to/Proxmox-Dashboard/public
<Directory /path/to/Proxmox-Dashboard/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/dashboard-error.log
CustomLog ${APACHE_LOG_DIR}/dashboard-access.log combined
</VirtualHost>
Cron Job for Group Expiry
Add to crontab to check for expired groups daily:
0 0 * * * php /path/to/Proxmox-Dashboard/bin/expire_groups.php
Note: You'll need to create the
expire_groups.php script to handle
group expiry logic.
Verification
Test Your Installation
- Access Dashboard: Navigate to your URL
- Register User: Create a test account
- Check Email: Verify email verification works
- Login: Ensure authentication works
- Add Host: Configure a Proxmox host
- Test Credits: Try PayPal sandbox payment
- Create Group: Test group management
- Check Logs: Review audit logs