Panel/APACHE_SETUP.md
copilot-swe-agent[bot] 5f93c6728e Add password reset feature and server management pages
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2025-10-22 14:38:22 +00:00

5.7 KiB

Apache Configuration Files for GSP

This directory contains Apache virtual host configuration files for deploying the GameServerPanel and its associated services.

Configuration Files

1. panel.conf

Configuration for the main Open Game Panel dashboard.

  • Domain: panel.yourdomain.com
  • Document Root: /var/www/GSP
  • Purpose: Main panel interface for server management

2. website.conf

Configuration for the GameServers.World storefront website.

  • Domain: gameservers.world
  • Document Root: /var/www/GSP/_website
  • Purpose: Customer-facing storefront for ordering game servers
  • Features:
    • Separate session handling
    • Protected includes and data directories
    • Static asset caching
    • Security headers

3. fileserver.conf

Configuration for the file server for game downloads.

  • Domain: files.yourdomain.com
  • Document Root: /var/www/fileserver
  • Purpose: File distribution for game server installations
  • Features:
    • Directory browsing enabled
    • Large file support
    • Script execution disabled in upload directories

Installation Instructions

1. Copy Configuration Files

Copy the configuration files to Apache's sites-available directory:

# For Ubuntu/Debian
sudo cp panel.conf /etc/apache2/sites-available/
sudo cp website.conf /etc/apache2/sites-available/
sudo cp fileserver.conf /etc/apache2/sites-available/

# For CentOS/RHEL
sudo cp panel.conf /etc/httpd/conf.d/
sudo cp website.conf /etc/httpd/conf.d/
sudo cp fileserver.conf /etc/httpd/conf.d/

2. Update Configuration

Edit each configuration file to match your environment:

  1. Replace yourdomain.com with your actual domain
  2. Verify document root paths match your installation
  3. Update SSL certificate paths (if using HTTPS)
sudo nano /etc/apache2/sites-available/panel.conf
sudo nano /etc/apache2/sites-available/website.conf
sudo nano /etc/apache2/sites-available/fileserver.conf

3. Enable Sites (Ubuntu/Debian)

sudo a2ensite panel.conf
sudo a2ensite website.conf
sudo a2ensite fileserver.conf

4. Enable Required Apache Modules

# Ubuntu/Debian
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod expires
sudo a2enmod deflate
sudo a2enmod ssl  # if using HTTPS

# CentOS/RHEL - most modules are enabled by default
# Check /etc/httpd/conf.modules.d/ for module configuration

5. Create File Server Directory

sudo mkdir -p /var/www/fileserver
sudo chown -R www-data:www-data /var/www/fileserver  # Ubuntu/Debian
# OR
sudo chown -R apache:apache /var/www/fileserver      # CentOS/RHEL

6. Test Configuration

# Ubuntu/Debian
sudo apache2ctl configtest

# CentOS/RHEL
sudo apachectl configtest

7. Restart Apache

# Ubuntu/Debian
sudo systemctl restart apache2

# CentOS/RHEL
sudo systemctl restart httpd

SSL/HTTPS Configuration

Each configuration file includes commented-out HTTPS sections. To enable SSL:

  1. Obtain SSL certificates (using Let's Encrypt, purchased certificates, etc.)
  2. Uncomment the HTTPS VirtualHost sections
  3. Update certificate paths
  4. Enable SSL module (see step 4 above)
  5. Restart Apache

Using Let's Encrypt

# Install Certbot
sudo apt-get install certbot python3-certbot-apache  # Ubuntu/Debian
sudo yum install certbot python3-certbot-apache      # CentOS/RHEL

# Obtain certificates
sudo certbot --apache -d panel.yourdomain.com
sudo certbot --apache -d gameservers.world -d www.gameservers.world
sudo certbot --apache -d files.yourdomain.com

# Certbot will automatically update your Apache configuration

DNS Configuration

Make sure your DNS records point to your server:

panel.yourdomain.com    A    YOUR_SERVER_IP
gameservers.world       A    YOUR_SERVER_IP
www.gameservers.world   A    YOUR_SERVER_IP
files.yourdomain.com    A    YOUR_SERVER_IP

Firewall Configuration

Ensure ports 80 and 443 are open:

# UFW (Ubuntu)
sudo ufw allow 'Apache Full'

# firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Troubleshooting

Permission Issues

# Fix ownership
sudo chown -R www-data:www-data /var/www/GSP  # Ubuntu/Debian
sudo chown -R apache:apache /var/www/GSP      # CentOS/RHEL

# Fix permissions
sudo find /var/www/GSP -type d -exec chmod 755 {} \;
sudo find /var/www/GSP -type f -exec chmod 644 {} \;

Check Logs

# Apache error logs
sudo tail -f /var/log/apache2/error.log           # Ubuntu/Debian
sudo tail -f /var/log/httpd/error_log             # CentOS/RHEL

# Site-specific logs
sudo tail -f /var/log/apache2/ogp-panel-error.log
sudo tail -f /var/log/apache2/gameservers-website-error.log
sudo tail -f /var/log/apache2/fileserver-error.log

Test PHP

Create a test file:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/GSP/info.php

Visit http://panel.yourdomain.com/info.php

Important: Delete this file after testing!

Security Recommendations

  1. Always use HTTPS in production
  2. Keep Apache and PHP updated
  3. Configure firewall properly
  4. Use strong passwords in database configurations
  5. Regularly backup your data
  6. Monitor logs for suspicious activity
  7. Consider using fail2ban to prevent brute force attacks
  8. Restrict access to sensitive directories

Support

For issues specific to:

  • Panel: Check the main GSP documentation
  • Website: Review _website/README.md and related documentation
  • Apache: Consult Apache documentation at https://httpd.apache.org/docs/

License

These configuration files are part of the Open Game Panel project and follow the same license as the main project.