A comprehensive, multi-distribution installer script for Pterodactyl Panel that supports Ubuntu 20.04/22.04/24.04, Debian 10+, and Arch Linux.
- Multi-distribution support: Ubuntu 20.04, 22.04, 24.04 / Debian 10+ / Arch Linux
- Official repository: Automatically pulls from the official Pterodactyl GitHub repository
- Auto-update functionality: Built-in update mechanism to keep your panel current
- Complete installation: Installs and configures all required dependencies
- Security focused: Configures firewall, secure permissions, and security headers
- Modular design: Separate configuration files for easy customization
- Error handling: Comprehensive logging and error reporting
- Interactive menu: User-friendly installation and management interface
| Distribution | Versions | Status |
|---|---|---|
| Ubuntu | 20.04, 22.04, 24.04 | ✅ Supported |
| Debian | 10, 11, 12+ | ✅ Supported |
| Arch Linux | Latest | ✅ Supported |
- Root access or sudo privileges
- Minimum 2GB RAM (4GB recommended)
- At least 20GB disk space
- Internet connection
- Supported Linux distribution
# Download the installer
wget https://raw.githubusercontent.com/LukePamlerr/pterodactyl-installer/main/pterodactyl-installer.sh
# Make it executable
chmod +x pterodactyl-installer.sh
# Run the installer
sudo ./pterodactyl-installer.shbash <(curl -s https://raw.githubusercontent.com/LukePamlerr/pterodactyl-installer/main/pterodactyl-installer.sh)The installer provides an interactive menu with the following options:
- Install Pterodactyl Panel - Complete fresh installation
- Update Pterodactyl Panel - Update existing installation
- Uninstall Pterodactyl Panel - Complete removal
- Exit - Exit the installer
# Install the panel
sudo ./pterodactyl-installer.sh install
# Update existing installation
sudo ./pterodactyl-installer.sh update
# Uninstall the panel
sudo ./pterodactyl-installer.sh uninstall- Nginx web server
- PHP 8.2 with required extensions
- MariaDB database server
- Redis cache server
- Node.js and Yarn
- Composer (PHP package manager)
- Latest Pterodactyl Panel from official repository
- Queue worker service
- Cron job for scheduled tasks
- SSL-ready configuration
- Security headers and optimizations
- UFW firewall configuration
- Secure file permissions
- Database user with limited privileges
- Security headers in Nginx
- Encrypted session storage
The installer creates and manages several configuration files:
/etc/pterodactyl/- Main configuration directory/var/www/pterodactyl/- Panel installation directory/etc/nginx/sites-available/pterodactyl.conf- Nginx configuration/etc/systemd/system/pterodactyl-worker.service- Worker service/var/log/pterodactyl-installer.log- Installation log
The config/ directory contains template files:
pterodactyl.conf- Environment configuration templatenginx-pterodactyl.conf- Nginx configuration templatepterodactyl-worker.service- Systemd service templatepterodactyl-cron.conf- Cron job configuration
After installation, you should:
- Update your domain name in
/etc/nginx/sites-available/pterodactyl.conf - Configure SSL certificate using Let's Encrypt
- Update the panel URL in
/var/www/pterodactyl/.env - Change the default admin password immediately
- Configure email settings for notifications
# Install Certbot
sudo apt install certbot python3-certbot-nginx
# Get SSL certificate
sudo certbot --nginx -d yourdomain.com
# Enable auto-renewal
sudo crontab -e
# Add: 0 12 * * * /usr/bin/certbot renew --quietThe installer handles updates automatically:
- Backup current installation
- Pull latest changes from official repository
- Update dependencies
- Run database migrations
- Clear caches
- Restart services
Permission Denied
# Ensure running as root
sudo ./pterodactyl-installer.shDatabase Connection Failed
# Check MariaDB status
sudo systemctl status mariadb
# Check database credentials
sudo cat /etc/pterodactyl/database.confNginx Configuration Error
# Test Nginx configuration
sudo nginx -t
# Check Nginx logs
sudo tail -f /var/log/nginx/error.log/var/log/pterodactyl-installer.log- Installation log/var/log/nginx/pterodactyl_error.log- Nginx error log/var/www/pterodactyl/storage/logs/- Application logs
# Check service status
sudo systemctl status pterodactyl-worker
sudo systemctl status nginx
sudo systemctl status php8.2-fpm
sudo systemctl status redis-server
sudo systemctl status mariadb
# Restart services
sudo systemctl restart pterodactyl-worker
sudo systemctl restart nginx- Regular Updates: Keep your system and panel updated
- Strong Passwords: Use strong, unique passwords
- SSL Certificate: Always use HTTPS in production
- Firewall: Keep firewall enabled and properly configured
- Backups: Regular database and file backups
- Monitoring: Monitor logs and service status
The installer provides a complete uninstall option that:
- Stops and disables all services
- Removes all files and configurations
- Cleans up cron jobs
- Preserves user data (optional)
For issues related to:
- Installer script: Create an issue in this repository
- Pterodactyl Panel: Visit Pterodactyl Discord
- Documentation: Pterodactyl Documentation
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly