Last active 4 weeks ago

Revision e71eedfcb8cc5ac53860332d126377416ce6bda0

pterodactyl install guide.txt Raw
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╚══════════════════════════════════════════════════════════════════╝