pterodactyl install script guide
· 29 KiB · Text
Raw
╔══════════════════════════════════════════════════════════════════╗
║ PTERODACTYL PANEL & WINGS INSTALLATION GUIDE (ASCII) ║
║ Complete Step-by-Step Walkthrough ║
╚══════════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────────┐
│ STEP 1: START THE INSTALLATION │
└─────────────────────────────────────────────────────────────────┘
Run this command as root:
# bash <(curl -s https://pterodactyl-installer.se)
┌─────────────────────────────────────────────────────────────────┐
│ STEP 2: SELECT INSTALLATION TYPE │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Which version of Pterodactyl do you want to install? │
│ 1) Panel │
│ 2) Wings │
│ 3) Both (Panel & Wings) │
└─────────────────────────────────────────────────────────────┘
>>> SELECT: 3 (BOTH)
> Type "3" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 3: CONFIRM INSTALLATION │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Are you sure you want to continue? (y/N): │
└─────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES)
> Type "y" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 4: DATABASE CONFIGURATION │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Do you want to automatically configure the database? │
│ (y/N): │
└─────────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES)
> Type "y" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 5: DATABASE USERNAME & PASSWORD │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Database host username (pterodactyluser): │
└─────────────────────────────────────────────────────────────┘
>>> LEAVE BLANK: Press ENTER (uses default)
┌─────────────────────────────────────────────────────────────────┐
│ * Database host password: │
└─────────────────────────────────────────────────────────────────┘
>>> IMPORTANT! Type a strong password (write it down!)
> Example: MyStr0ngP@ssw0rd!2026
> Press ENTER after typing
┌─────────────────────────────────────────────────────────────────┐
│ STEP 6: MYSQL EXTERNAL ACCESS │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Do you want to configure MySQL to be accessed │
│ externally? (y/N): │
└─────────────────────────────────────────────────────────────┘
>>> SELECT: n (NO)
> Type "n" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 7: EMAIL CONFIGURATION │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Enter your email address for the panel: │
└─────────────────────────────────────────────────────────────┘
>>> Type your email: admin@example.com
> Press ENTER
┌─────────────────────────────────────────────────────────────┐
│ * Enter your company/panel name: │
└─────────────────────────────────────────────────────────────┘
>>> Type a name: My Game Panel
> Or leave blank: Press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 8: CREATE ADMIN USER │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ * Would you like to create an admin user? (y/N): │
└─────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES)
> Type "y" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ * Enter your email address: │
└─────────────────────────────────────────────────────────────────┘
>>> Type your admin email: admin@example.com
┌─────────────────────────────────────────────────────────────────┐
│ * Enter your username: │
└─────────────────────────────────────────────────────────────────┘
>>> Type your username: admin
┌─────────────────────────────────────────────────────────────────┐
│ * Enter your first name: │
└─────────────────────────────────────────────────────────────────┘
>>> Type your first name: John
┌─────────────────────────────────────────────────────────────────┐
│ * Enter your last name: │
└─────────────────────────────────────────────────────────────────┘
>>> Type your last name: Doe
┌─────────────────────────────────────────────────────────────────┐
│ * Enter your password: │
└─────────────────────────────────────────────────────────────────┘
>>> IMPORTANT! Type a strong password (write it down!)
> Example: Admin@2026#Secure!
> Press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 9: SSL CONFIGURATION (PANEL) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ * Do you want to use Let's Encrypt SSL? (y/N): │
└─────────────────────────────────────────────────────────────────┘
╔══════════════════════════════════════════════════════════════════╗
║ IF YOU HAVE A DOMAIN NAME: ║
║ SELECT: y (YES) ║
║ Then enter your domain: panel.example.com ║
║ ║
║ IF YOU ONLY HAVE AN IP ADDRESS (NO DOMAIN): ║
║ SELECT: n (NO) ║
║ The panel will use HTTP (port 80) ║
╚══════════════════════════════════════════════════════════════════╝
>>> Choose based on your setup
> Type "y" or "n" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 10: WINGS CONFIGURATION (UFW FIREWALL) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ * Do you want to automatically configure UFW (firewall)? │
│ (y/N): │
└─────────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES) - Recommended!
> Type "y" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 11: DATABASE USER FOR WINGS │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ * Do you want to configure a user for database hosts? │
│ (y/N): │
└─────────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES)
> Type "y" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ * Database host username (pterodactyluser): │
└─────────────────────────────────────────────────────────────────┘
>>> LEAVE BLANK: Press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ * Database host password: │
└─────────────────────────────────────────────────────────────────┘
>>> Type a password (write it down!)
> Example: WingsDB@2026#Strong!
> Press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ * Do you want to configure MySQL to be accessed externally? │
│ (y/N): │
└─────────────────────────────────────────────────────────────────┘
>>> SELECT: n (NO)
> Type "n" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 12: SSL FOR WINGS │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ * Do you want to automatically configure HTTPS using │
│ Let's Encrypt? (y/N): │
└─────────────────────────────────────────────────────────────────┘
╔══════════════════════════════════════════════════════════════════╗
║ IF YOU HAVE A DOMAIN (FQDN): ║
║ SELECT: y (YES) ║
║ Then enter your domain for Wings: node.example.com ║
║ ║
║ IF YOU ONLY HAVE IP ADDRESS: ║
║ SELECT: n (NO) ║
║ Wings will use HTTP ║
╚══════════════════════════════════════════════════════════════════╝
>>> Choose based on your setup
> Type "y" or "n" and press ENTER
┌─────────────────────────────────────────────────────────────────┐
│ STEP 13: FINAL CONFIRMATION │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ * Proceed with installation? (y/N): │
└─────────────────────────────────────────────────────────────────┘
>>> SELECT: y (YES)
> Type "y" and press ENTER
> Wait for installation to complete...
╔══════════════════════════════════════════════════════════════════╗
║ INSTALLATION COMPLETE! ║
║ ║
║ Your Pterodactyl Panel is now installed! ║
║ ║
║ Access your panel at: ║
║ http://YOUR_SERVER_IP ║
║ or ║
║ https://YOUR_DOMAIN (if SSL enabled) ║
║ ║
║ Login with: ║
║ Email: [your admin email] ║
║ Password: [your admin password] ║
║ ║
║ ⚠️ IMPORTANT: Your Wings still needs to be configured! ║
║ 1. Log into the panel ║
║ 2. Go to Admin → Nodes → Create New ║
║ 3. Generate the configuration file ║
║ 4. Copy it to /etc/pterodactyl/config.yml ║
║ 5. Run: systemctl start wings ║
╚══════════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────────┐
│ QUICK REFERENCE SHEET │
└─────────────────────────────────────────────────────────────────┘
┌──────────────┬─────────────┬──────────────────────────────┐
│ QUESTION │ ANSWER │ REASON │
├──────────────┼─────────────┼──────────────────────────────┤
│ Panel/Wings │ 3 (Both) │ Install everything at once │
│ Continue? │ y │ Start installation │
│ Auto DB? │ y │ Let script handle DB │
│ DB username │ [ENTER] │ Use default │
│ DB password │ [TYPE] │ Strong password (save it) │
│ MySQL ext │ n │ No external access needed │
│ Admin user? │ y │ Create admin account │
│ Let's Encrypt│ n or y │ n = IP only, y = domain │
│ Configure │ y │ Auto open firewall ports │
│ UFW? │ │ │
│ Wings DB │ y │ Create DB user for Wings │
│ Wings SSL │ n or y │ Same as panel SSL choice │
└──────────────┴─────────────┴──────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ FIREWALL PORTS TO OPEN │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Port 80 - HTTP (Web Panel) │
│ Port 443 - HTTPS (Web Panel) - if SSL enabled │
│ Port 8080 - Wings WebSocket (Server communication) │
│ Port 2022 - SFTP (File transfer for servers) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ TROUBLESHOOTING COMMANDS │
└─────────────────────────────────────────────────────────────────┘
# Check panel status
systemctl status nginx
systemctl status php8.2-fpm
# Check wings status
systemctl status wings
# View panel logs
tail -f /var/www/pterodactyl/storage/logs/laravel-*.log
# View wings logs
journalctl -u wings -f
# Restart panel services
systemctl restart nginx php8.2-fpm
# Restart wings
systemctl restart wings
# Generate application key (if needed)
php /var/www/pterodactyl/artisan key:generate --force
# Clear cache
php /var/www/pterodactyl/artisan config:clear
php /var/www/pterodactyl/artisan cache:clear
┌─────────────────────────────────────────────────────────────────┐
│ POST-INSTALLATION: WINGS SETUP │
└─────────────────────────────────────────────────────────────────┘
1. Login to panel: http://YOUR_SERVER_IP
2. Go to: Admin → Nodes → Create New
3. Fill in:
• Name: Main Node
• Description: (optional)
• FQDN: YOUR_SERVER_IP or domain
• Port: 8080
• Behind Proxy: No
• Public: Yes
4. After creating, click on the node → Configuration
5. Copy the configuration code
6. Save to: /etc/pterodactyl/config.yml
7. Start Wings:
systemctl start wings
systemctl enable wings
┌─────────────────────────────────────────────────────────────────┐
│ IMPORTANT NOTES │
└─────────────────────────────────────────────────────────────────┘
⚠️ SAVE ALL PASSWORDS: Panel DB, Admin user, Wings DB
⚠️ Wait for migrations to complete (may take 2-5 minutes)
⚠️ If using IP instead of domain, you'll see a security warning
(This is normal, just proceed)
⚠️ For production, use a domain with SSL certificates
⚠️ Backup /var/www/pterodactyl/.env file after installation
╔══════════════════════════════════════════════════════════════════╗
║ INSTALLATION SUCCESS! ║
║ ║
║ Your Pterodactyl Panel is now ready for use! ║
║ ║
║ Documentation: https://pterodactyl.io/docs ║
║ Discord: https://discord.gg/pterodactyl ║
║ GitHub: https://github.com/pterodactyl/panel ║
║ ║
║ Need help? You can ask me anytime! ║
╚══════════════════════════════════════════════════════════════════╝
| 1 | ╔══════════════════════════════════════════════════════════════════╗ |
| 2 | ║ PTERODACTYL PANEL & WINGS INSTALLATION GUIDE (ASCII) ║ |
| 3 | ║ Complete Step-by-Step Walkthrough ║ |
| 4 | ╚══════════════════════════════════════════════════════════════════╝ |
| 5 | |
| 6 | ┌─────────────────────────────────────────────────────────────────┐ |
| 7 | │ STEP 1: START THE INSTALLATION │ |
| 8 | └─────────────────────────────────────────────────────────────────┘ |
| 9 | |
| 10 | Run this command as root: |
| 11 | |
| 12 | # bash <(curl -s https://pterodactyl-installer.se) |
| 13 | |
| 14 | |
| 15 | ┌─────────────────────────────────────────────────────────────────┐ |
| 16 | │ STEP 2: SELECT INSTALLATION TYPE │ |
| 17 | └─────────────────────────────────────────────────────────────────┘ |
| 18 | |
| 19 | ┌─────────────────────────────────────────────────────────────┐ |
| 20 | │ Which version of Pterodactyl do you want to install? │ |
| 21 | │ 1) Panel │ |
| 22 | │ 2) Wings │ |
| 23 | │ 3) Both (Panel & Wings) │ |
| 24 | └─────────────────────────────────────────────────────────────┘ |
| 25 | |
| 26 | >>> SELECT: 3 (BOTH) |
| 27 | |
| 28 | > Type "3" and press ENTER |
| 29 | |
| 30 | |
| 31 | ┌─────────────────────────────────────────────────────────────────┐ |
| 32 | │ STEP 3: CONFIRM INSTALLATION │ |
| 33 | └─────────────────────────────────────────────────────────────────┘ |
| 34 | |
| 35 | ┌─────────────────────────────────────────────────────────────┐ |
| 36 | │ * Are you sure you want to continue? (y/N): │ |
| 37 | └─────────────────────────────────────────────────────────────┘ |
| 38 | |
| 39 | >>> SELECT: y (YES) |
| 40 | |
| 41 | > Type "y" and press ENTER |
| 42 | |
| 43 | |
| 44 | ┌─────────────────────────────────────────────────────────────────┐ |
| 45 | │ STEP 4: DATABASE CONFIGURATION │ |
| 46 | └─────────────────────────────────────────────────────────────────┘ |
| 47 | |
| 48 | ┌─────────────────────────────────────────────────────────────┐ |
| 49 | │ * Do you want to automatically configure the database? │ |
| 50 | │ (y/N): │ |
| 51 | └─────────────────────────────────────────────────────────────────┘ |
| 52 | |
| 53 | >>> SELECT: y (YES) |
| 54 | |
| 55 | > Type "y" and press ENTER |
| 56 | |
| 57 | |
| 58 | ┌─────────────────────────────────────────────────────────────────┐ |
| 59 | │ STEP 5: DATABASE USERNAME & PASSWORD │ |
| 60 | └─────────────────────────────────────────────────────────────────┘ |
| 61 | |
| 62 | ┌─────────────────────────────────────────────────────────────┐ |
| 63 | │ * Database host username (pterodactyluser): │ |
| 64 | └─────────────────────────────────────────────────────────────┘ |
| 65 | |
| 66 | >>> LEAVE BLANK: Press ENTER (uses default) |
| 67 | |
| 68 | ┌─────────────────────────────────────────────────────────────────┐ |
| 69 | │ * Database host password: │ |
| 70 | └─────────────────────────────────────────────────────────────────┘ |
| 71 | |
| 72 | >>> IMPORTANT! Type a strong password (write it down!) |
| 73 | > Example: MyStr0ngP@ssw0rd!2026 |
| 74 | > Press ENTER after typing |
| 75 | |
| 76 | |
| 77 | ┌─────────────────────────────────────────────────────────────────┐ |
| 78 | │ STEP 6: MYSQL EXTERNAL ACCESS │ |
| 79 | └─────────────────────────────────────────────────────────────────┘ |
| 80 | |
| 81 | ┌─────────────────────────────────────────────────────────────┐ |
| 82 | │ * Do you want to configure MySQL to be accessed │ |
| 83 | │ externally? (y/N): │ |
| 84 | └─────────────────────────────────────────────────────────────┘ |
| 85 | |
| 86 | >>> SELECT: n (NO) |
| 87 | |
| 88 | > Type "n" and press ENTER |
| 89 | |
| 90 | |
| 91 | ┌─────────────────────────────────────────────────────────────────┐ |
| 92 | │ STEP 7: EMAIL CONFIGURATION │ |
| 93 | └─────────────────────────────────────────────────────────────────┘ |
| 94 | |
| 95 | ┌─────────────────────────────────────────────────────────────┐ |
| 96 | │ * Enter your email address for the panel: │ |
| 97 | └─────────────────────────────────────────────────────────────┘ |
| 98 | |
| 99 | >>> Type your email: admin@example.com |
| 100 | > Press ENTER |
| 101 | |
| 102 | ┌─────────────────────────────────────────────────────────────┐ |
| 103 | │ * Enter your company/panel name: │ |
| 104 | └─────────────────────────────────────────────────────────────┘ |
| 105 | |
| 106 | >>> Type a name: My Game Panel |
| 107 | > Or leave blank: Press ENTER |
| 108 | |
| 109 | |
| 110 | ┌─────────────────────────────────────────────────────────────────┐ |
| 111 | │ STEP 8: CREATE ADMIN USER │ |
| 112 | └─────────────────────────────────────────────────────────────────┘ |
| 113 | |
| 114 | ┌─────────────────────────────────────────────────────────────┐ |
| 115 | │ * Would you like to create an admin user? (y/N): │ |
| 116 | └─────────────────────────────────────────────────────────────┘ |
| 117 | |
| 118 | >>> SELECT: y (YES) |
| 119 | |
| 120 | > Type "y" and press ENTER |
| 121 | |
| 122 | ┌─────────────────────────────────────────────────────────────────┐ |
| 123 | │ * Enter your email address: │ |
| 124 | └─────────────────────────────────────────────────────────────────┘ |
| 125 | |
| 126 | >>> Type your admin email: admin@example.com |
| 127 | |
| 128 | ┌─────────────────────────────────────────────────────────────────┐ |
| 129 | │ * Enter your username: │ |
| 130 | └─────────────────────────────────────────────────────────────────┘ |
| 131 | |
| 132 | >>> Type your username: admin |
| 133 | |
| 134 | ┌─────────────────────────────────────────────────────────────────┐ |
| 135 | │ * Enter your first name: │ |
| 136 | └─────────────────────────────────────────────────────────────────┘ |
| 137 | |
| 138 | >>> Type your first name: John |
| 139 | |
| 140 | ┌─────────────────────────────────────────────────────────────────┐ |
| 141 | │ * Enter your last name: │ |
| 142 | └─────────────────────────────────────────────────────────────────┘ |
| 143 | |
| 144 | >>> Type your last name: Doe |
| 145 | |
| 146 | ┌─────────────────────────────────────────────────────────────────┐ |
| 147 | │ * Enter your password: │ |
| 148 | └─────────────────────────────────────────────────────────────────┘ |
| 149 | |
| 150 | >>> IMPORTANT! Type a strong password (write it down!) |
| 151 | > Example: Admin@2026#Secure! |
| 152 | > Press ENTER |
| 153 | |
| 154 | |
| 155 | ┌─────────────────────────────────────────────────────────────────┐ |
| 156 | │ STEP 9: SSL CONFIGURATION (PANEL) │ |
| 157 | └─────────────────────────────────────────────────────────────────┘ |
| 158 | |
| 159 | ┌─────────────────────────────────────────────────────────────────┐ |
| 160 | │ * Do you want to use Let's Encrypt SSL? (y/N): │ |
| 161 | └─────────────────────────────────────────────────────────────────┘ |
| 162 | |
| 163 | ╔══════════════════════════════════════════════════════════════════╗ |
| 164 | ║ IF YOU HAVE A DOMAIN NAME: ║ |
| 165 | ║ SELECT: y (YES) ║ |
| 166 | ║ Then enter your domain: panel.example.com ║ |
| 167 | ║ ║ |
| 168 | ║ IF YOU ONLY HAVE AN IP ADDRESS (NO DOMAIN): ║ |
| 169 | ║ SELECT: n (NO) ║ |
| 170 | ║ The panel will use HTTP (port 80) ║ |
| 171 | ╚══════════════════════════════════════════════════════════════════╝ |
| 172 | |
| 173 | >>> Choose based on your setup |
| 174 | > Type "y" or "n" and press ENTER |
| 175 | |
| 176 | |
| 177 | ┌─────────────────────────────────────────────────────────────────┐ |
| 178 | │ STEP 10: WINGS CONFIGURATION (UFW FIREWALL) │ |
| 179 | └─────────────────────────────────────────────────────────────────┘ |
| 180 | |
| 181 | ┌─────────────────────────────────────────────────────────────────┐ |
| 182 | │ * Do you want to automatically configure UFW (firewall)? │ |
| 183 | │ (y/N): │ |
| 184 | └─────────────────────────────────────────────────────────────────┘ |
| 185 | |
| 186 | >>> SELECT: y (YES) - Recommended! |
| 187 | |
| 188 | > Type "y" and press ENTER |
| 189 | |
| 190 | |
| 191 | ┌─────────────────────────────────────────────────────────────────┐ |
| 192 | │ STEP 11: DATABASE USER FOR WINGS │ |
| 193 | └─────────────────────────────────────────────────────────────────┘ |
| 194 | |
| 195 | ┌─────────────────────────────────────────────────────────────────┐ |
| 196 | │ * Do you want to configure a user for database hosts? │ |
| 197 | │ (y/N): │ |
| 198 | └─────────────────────────────────────────────────────────────────┘ |
| 199 | |
| 200 | >>> SELECT: y (YES) |
| 201 | |
| 202 | > Type "y" and press ENTER |
| 203 | |
| 204 | ┌─────────────────────────────────────────────────────────────────┐ |
| 205 | │ * Database host username (pterodactyluser): │ |
| 206 | └─────────────────────────────────────────────────────────────────┘ |
| 207 | |
| 208 | >>> LEAVE BLANK: Press ENTER |
| 209 | |
| 210 | ┌─────────────────────────────────────────────────────────────────┐ |
| 211 | │ * Database host password: │ |
| 212 | └─────────────────────────────────────────────────────────────────┘ |
| 213 | |
| 214 | >>> Type a password (write it down!) |
| 215 | > Example: WingsDB@2026#Strong! |
| 216 | > Press ENTER |
| 217 | |
| 218 | ┌─────────────────────────────────────────────────────────────────┐ |
| 219 | │ * Do you want to configure MySQL to be accessed externally? │ |
| 220 | │ (y/N): │ |
| 221 | └─────────────────────────────────────────────────────────────────┘ |
| 222 | |
| 223 | >>> SELECT: n (NO) |
| 224 | |
| 225 | > Type "n" and press ENTER |
| 226 | |
| 227 | |
| 228 | ┌─────────────────────────────────────────────────────────────────┐ |
| 229 | │ STEP 12: SSL FOR WINGS │ |
| 230 | └─────────────────────────────────────────────────────────────────┘ |
| 231 | |
| 232 | ┌─────────────────────────────────────────────────────────────────┐ |
| 233 | │ * Do you want to automatically configure HTTPS using │ |
| 234 | │ Let's Encrypt? (y/N): │ |
| 235 | └─────────────────────────────────────────────────────────────────┘ |
| 236 | |
| 237 | ╔══════════════════════════════════════════════════════════════════╗ |
| 238 | ║ IF YOU HAVE A DOMAIN (FQDN): ║ |
| 239 | ║ SELECT: y (YES) ║ |
| 240 | ║ Then enter your domain for Wings: node.example.com ║ |
| 241 | ║ ║ |
| 242 | ║ IF YOU ONLY HAVE IP ADDRESS: ║ |
| 243 | ║ SELECT: n (NO) ║ |
| 244 | ║ Wings will use HTTP ║ |
| 245 | ╚══════════════════════════════════════════════════════════════════╝ |
| 246 | |
| 247 | >>> Choose based on your setup |
| 248 | > Type "y" or "n" and press ENTER |
| 249 | |
| 250 | |
| 251 | ┌─────────────────────────────────────────────────────────────────┐ |
| 252 | │ STEP 13: FINAL CONFIRMATION │ |
| 253 | └─────────────────────────────────────────────────────────────────┘ |
| 254 | |
| 255 | ┌─────────────────────────────────────────────────────────────────┐ |
| 256 | │ * Proceed with installation? (y/N): │ |
| 257 | └─────────────────────────────────────────────────────────────────┘ |
| 258 | |
| 259 | >>> SELECT: y (YES) |
| 260 | |
| 261 | > Type "y" and press ENTER |
| 262 | > Wait for installation to complete... |
| 263 | |
| 264 | |
| 265 | ╔══════════════════════════════════════════════════════════════════╗ |
| 266 | ║ INSTALLATION COMPLETE! ║ |
| 267 | ║ ║ |
| 268 | ║ Your Pterodactyl Panel is now installed! ║ |
| 269 | ║ ║ |
| 270 | ║ Access your panel at: ║ |
| 271 | ║ http://YOUR_SERVER_IP ║ |
| 272 | ║ or ║ |
| 273 | ║ https://YOUR_DOMAIN (if SSL enabled) ║ |
| 274 | ║ ║ |
| 275 | ║ Login with: ║ |
| 276 | ║ Email: [your admin email] ║ |
| 277 | ║ Password: [your admin password] ║ |
| 278 | ║ ║ |
| 279 | ║ ⚠️ IMPORTANT: Your Wings still needs to be configured! ║ |
| 280 | ║ 1. Log into the panel ║ |
| 281 | ║ 2. Go to Admin → Nodes → Create New ║ |
| 282 | ║ 3. Generate the configuration file ║ |
| 283 | ║ 4. Copy it to /etc/pterodactyl/config.yml ║ |
| 284 | ║ 5. Run: systemctl start wings ║ |
| 285 | ╚══════════════════════════════════════════════════════════════════╝ |
| 286 | |
| 287 | |
| 288 | ┌─────────────────────────────────────────────────────────────────┐ |
| 289 | │ QUICK REFERENCE SHEET │ |
| 290 | └─────────────────────────────────────────────────────────────────┘ |
| 291 | |
| 292 | ┌──────────────┬─────────────┬──────────────────────────────┐ |
| 293 | │ QUESTION │ ANSWER │ REASON │ |
| 294 | ├──────────────┼─────────────┼──────────────────────────────┤ |
| 295 | │ Panel/Wings │ 3 (Both) │ Install everything at once │ |
| 296 | │ Continue? │ y │ Start installation │ |
| 297 | │ Auto DB? │ y │ Let script handle DB │ |
| 298 | │ DB username │ [ENTER] │ Use default │ |
| 299 | │ DB password │ [TYPE] │ Strong password (save it) │ |
| 300 | │ MySQL ext │ n │ No external access needed │ |
| 301 | │ Admin user? │ y │ Create admin account │ |
| 302 | │ Let's Encrypt│ n or y │ n = IP only, y = domain │ |
| 303 | │ Configure │ y │ Auto open firewall ports │ |
| 304 | │ UFW? │ │ │ |
| 305 | │ Wings DB │ y │ Create DB user for Wings │ |
| 306 | │ Wings SSL │ n or y │ Same as panel SSL choice │ |
| 307 | └──────────────┴─────────────┴──────────────────────────────┘ |
| 308 | |
| 309 | |
| 310 | ┌─────────────────────────────────────────────────────────────────┐ |
| 311 | │ FIREWALL PORTS TO OPEN │ |
| 312 | └─────────────────────────────────────────────────────────────────┘ |
| 313 | |
| 314 | ┌─────────────────────────────────────────────────────────────┐ |
| 315 | │ Port 80 - HTTP (Web Panel) │ |
| 316 | │ Port 443 - HTTPS (Web Panel) - if SSL enabled │ |
| 317 | │ Port 8080 - Wings WebSocket (Server communication) │ |
| 318 | │ Port 2022 - SFTP (File transfer for servers) │ |
| 319 | └─────────────────────────────────────────────────────────────┘ |
| 320 | |
| 321 | |
| 322 | ┌─────────────────────────────────────────────────────────────────┐ |
| 323 | │ TROUBLESHOOTING COMMANDS │ |
| 324 | └─────────────────────────────────────────────────────────────────┘ |
| 325 | |
| 326 | # Check panel status |
| 327 | systemctl status nginx |
| 328 | systemctl status php8.2-fpm |
| 329 | |
| 330 | # Check wings status |
| 331 | systemctl status wings |
| 332 | |
| 333 | # View panel logs |
| 334 | tail -f /var/www/pterodactyl/storage/logs/laravel-*.log |
| 335 | |
| 336 | # View wings logs |
| 337 | journalctl -u wings -f |
| 338 | |
| 339 | # Restart panel services |
| 340 | systemctl restart nginx php8.2-fpm |
| 341 | |
| 342 | # Restart wings |
| 343 | systemctl restart wings |
| 344 | |
| 345 | # Generate application key (if needed) |
| 346 | php /var/www/pterodactyl/artisan key:generate --force |
| 347 | |
| 348 | # Clear cache |
| 349 | php /var/www/pterodactyl/artisan config:clear |
| 350 | php /var/www/pterodactyl/artisan cache:clear |
| 351 | |
| 352 | |
| 353 | ┌─────────────────────────────────────────────────────────────────┐ |
| 354 | │ POST-INSTALLATION: WINGS SETUP │ |
| 355 | └─────────────────────────────────────────────────────────────────┘ |
| 356 | |
| 357 | 1. Login to panel: http://YOUR_SERVER_IP |
| 358 | |
| 359 | 2. Go to: Admin → Nodes → Create New |
| 360 | |
| 361 | 3. Fill in: |
| 362 | • Name: Main Node |
| 363 | • Description: (optional) |
| 364 | • FQDN: YOUR_SERVER_IP or domain |
| 365 | • Port: 8080 |
| 366 | • Behind Proxy: No |
| 367 | • Public: Yes |
| 368 | |
| 369 | 4. After creating, click on the node → Configuration |
| 370 | |
| 371 | 5. Copy the configuration code |
| 372 | |
| 373 | 6. Save to: /etc/pterodactyl/config.yml |
| 374 | |
| 375 | 7. Start Wings: |
| 376 | systemctl start wings |
| 377 | systemctl enable wings |
| 378 | |
| 379 | |
| 380 | ┌─────────────────────────────────────────────────────────────────┐ |
| 381 | │ IMPORTANT NOTES │ |
| 382 | └─────────────────────────────────────────────────────────────────┘ |
| 383 | |
| 384 | ⚠️ SAVE ALL PASSWORDS: Panel DB, Admin user, Wings DB |
| 385 | |
| 386 | ⚠️ Wait for migrations to complete (may take 2-5 minutes) |
| 387 | |
| 388 | ⚠️ If using IP instead of domain, you'll see a security warning |
| 389 | (This is normal, just proceed) |
| 390 | |
| 391 | ⚠️ For production, use a domain with SSL certificates |
| 392 | |
| 393 | ⚠️ Backup /var/www/pterodactyl/.env file after installation |
| 394 | |
| 395 | |
| 396 | ╔══════════════════════════════════════════════════════════════════╗ |
| 397 | ║ INSTALLATION SUCCESS! ║ |
| 398 | ║ ║ |
| 399 | ║ Your Pterodactyl Panel is now ready for use! ║ |
| 400 | ║ ║ |
| 401 | ║ Documentation: https://pterodactyl.io/docs ║ |
| 402 | ║ Discord: https://discord.gg/pterodactyl ║ |
| 403 | ║ GitHub: https://github.com/pterodactyl/panel ║ |
| 404 | ║ ║ |
| 405 | ║ Need help? You can ask me anytime! ║ |
| 406 | ╚══════════════════════════════════════════════════════════════════╝ |