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 engine
  • phpmailer/phpmailer - Email sending
  • paypal/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
  1. Access Dashboard: Navigate to your URL
  2. Register User: Create a test account
  3. Check Email: Verify email verification works
  4. Login: Ensure authentication works
  5. Add Host: Configure a Proxmox host
  6. Test Credits: Try PayPal sandbox payment
  7. Create Group: Test group management
  8. Check Logs: Review audit logs