מדריך מלא – התקנת Pterodactyl Panel + Wings על Ubuntu 24.04
במדריך הזה נתקין מערכת Pterodactyl מלאה על:
Ubuntu 24.04 LTS
בסיום יהיו לנו:
• Pterodactyl Panel
• MariaDB
• Redis
• NGINX
• SSL
• Docker
• Wings
• Node מוכן להרצת שרתי משחק
⚠️ לפני שמתחילים
מומלץ להשתמש בשרת נקי עם:
Ubuntu 24.04
ורצוי שיהיה לנו דומיין או Subdomain לדוגמה:
panel.example.comניצור רשומת A ב-DNS שמפנה ל-IP של השרת.
אם מתקינים גם Wings על אותו שרת, מומלץ ליצור גם:
node1.example.com1. עדכון השרת
sudo apt update
sudo apt upgrade -y2. התקנת החבילות הדרושות
sudo apt install -y \
software-properties-common \
curl \
ca-certificates \
gnupg \
tar \
unzip \
git \
nginx \
mariadb-server \
redis-server \
php8.3 \
php8.3-common \
php8.3-cli \
php8.3-gd \
php8.3-mysql \
php8.3-mbstring \
php8.3-bcmath \
php8.3-xml \
php8.3-fpm \
php8.3-curl \
php8.3-zipנפעיל Redis:
sudo systemctl enable --now redis-serverונפעיל MariaDB:
sudo systemctl enable --now mariadb3. התקנת Composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composerבדיקה:
composer --version4. יצירת Database ל-Pterodactyl
ניכנס ל-MariaDB:
sudo mariadbניצור Database ומשתמש:
CREATE DATABASE panel;
CREATE USER 'pterodactyl'@'127.0.0.1'
IDENTIFIED BY 'CHANGE_THIS_PASSWORD';
GRANT ALL PRIVILEGES ON panel.*
TO 'pterodactyl'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;חשוב להחליף את:
CHANGE_THIS_PASSWORDבסיסמה חזקה.
5. הורדת Pterodactyl Panel
ניצור תיקייה:
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactylנוריד את הגרסה האחרונה:
sudo curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gzנחלץ:
sudo tar -xzvf panel.tar.gzהרשאות:
sudo chmod -R 755 storage/* bootstrap/cache/6. התקנת קבצי המערכת
cd /var/www/pterodactylניצור קובץ Environment:
sudo cp .env.example .envנתקין Dependencies:
sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloaderניצור Encryption Key:
sudo php artisan key:generate --force🔐 חשוב מאוד – שמירת APP_KEY
נריץ:
grep APP_KEY /var/www/pterodactyl/.envנקבל משהו בסגנון:
APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXשמרו את המפתח הזה במקום בטוח.
אם תאבדו את ה-APP_KEY בעתיד, מידע מוצפן כמו API Keys עלול להפוך לבלתי ניתן לשחזור.
7. הגדרת Pterodactyl
cd /var/www/pterodactylנריץ:
sudo php artisan p:environment:setupכאן נגדיר בין היתר את כתובת הפאנל:
https://panel.example.comלאחר מכן:
sudo php artisan p:environment:databaseנכניס:
Database Host: 127.0.0.1
Database Port: 3306
Database Name: panel
Database Username: pterodactyl
Database Password: הסיסמה שיצרנו8. הגדרת Email
sudo php artisan p:environment:mailאם עדיין אין SMTP ניתן להגדיר אותו מאוחר יותר.
למערכת Production מומלץ להשתמש ב-SMTP אמיתי.
9. יצירת טבלאות Database
sudo php artisan migrate --seed --forceהפקודה יוצרת את טבלאות המערכת ומתקינה את ה-Nests וה-Eggs הבסיסיים.
10. יצירת משתמש Admin
sudo php artisan p:user:makeנכניס:
Email
Username
First Name
Last Name
Password
וכאשר נשאל:
Is this user an administrator?נבחר:
yes11. תיקון הרשאות
sudo chown -R www-data:www-data /var/www/pterodactyl12. הגדרת NGINX
נמחק את ברירת המחדל:
sudo rm -f /etc/nginx/sites-enabled/defaultניצור קובץ:
sudo nano /etc/nginx/sites-available/pterodactyl.confנכניס:
server {
listen 80;
server_name panel.example.com;
root /var/www/pterodactyl/public;
index index.php;
charset utf-8;
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico {
access_log off;
log_not_found off;
}
location = /robots.txt {
access_log off;
log_not_found off;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}יש להחליף:
panel.example.comבדומיין שלכם.
נפעיל את הקובץ:
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.confבדיקת NGINX:
sudo nginx -tאם הכול תקין:
sudo systemctl restart nginx13. התקנת SSL
נתקין Certbot:
sudo apt install -y certbot python3-certbot-nginxניצור SSL:
sudo certbot --nginx -d panel.example.comיש להחליף את הדומיין בדומיין שלכם.
בסיום הפאנל אמור להיות זמין ב:
https://panel.example.com14. הגדרת Cron
נפתח:
sudo crontab -eונוסיף:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&115. יצירת Queue Worker
ניצור:
sudo nano /etc/systemd/system/pteroq.serviceונכניס:
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.targetנפעיל:
sudo systemctl daemon-reload
sudo systemctl enable --now pteroq.serviceבדיקה:
sudo systemctl status pteroq🪽 16. התקנת Wings
עכשיו נעבור לחלק שמריץ בפועל את שרתי המשחק.
נתקין Docker:
curl -sSL https://get.docker.com/ | CHANNEL=stable bashנפעיל אותו:
sudo systemctl enable --now dockerבדיקה:
docker --version17. התקנת Wings
ניצור תיקייה:
sudo mkdir -p /etc/pterodactylנוריד Wings:
sudo curl -L -o /usr/local/bin/wings \
"https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"ניתן הרשאה:
sudo chmod u+x /usr/local/bin/wings18. יצירת Node בפאנל
ניכנס ל:
Admin Panel → Nodes → Create New
נגדיר Node חדש.
לדוגמה:
Name: Node 1
FQDN: node1.example.comאם הפאנל עובד עם HTTPS:
Communicate Over SSL → Yes
לאחר יצירת ה-Node:
Node → Configuration
שם Pterodactyl ייתן לנו Configuration מוכן.
אפשר ללחוץ גם על:
Generate Token
ולהריץ את הפקודה שהוא נותן לנו ישירות על השרת.
19. הגדרת SSL ל-Wings
אם משתמשים בדומיין כמו:
node1.example.comניצור עבורו SSL.
אפשר לעצור זמנית את NGINX:
sudo systemctl stop nginxניצור Certificate:
sudo certbot certonly --standalone -d node1.example.comונחזיר את NGINX:
sudo systemctl start nginx20. בדיקת Wings
לאחר שה-Configuration נמצא ב:
/etc/pterodactyl/config.ymlנריץ:
sudo wings --debugאם הכול תקין Wings יעלה ללא Errors.
כדי לעצור:
CTRL + C21. הפעלת Wings אוטומטית
ניצור:
sudo nano /etc/systemd/system/wings.serviceנכניס:
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.targetנפעיל:
sudo systemctl daemon-reload
sudo systemctl enable --now wingsבדיקה:
sudo systemctl status wings22. פתיחת פורטים
אם UFW פעיל:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 2022/tcpאם Wings מוגדר לעבוד על
8443 במקום 8080:sudo ufw allow 8443/tcpבנוסף צריך לפתוח את הפורטים של שרתי המשחק שנרצה ליצור.
23. יצירת Allocations
ניכנס בפאנל:
Admin → Nodes → Node 1 → Allocations
נבדוק את כתובת ה-IP של השרת:
hostname -I | awk '{print $1}'נוסיף את כתובת ה-IP ואת טווח הפורטים הרצוי.
לדוגמה:
27015-27100לשרתי משחק מבוססי Source.
✅ בדיקות אחרונות
Panel:
systemctl status nginxDatabase:
systemctl status mariadbRedis:
systemctl status redis-serverQueue:
systemctl status pteroqDocker:
systemctl status dockerWings:
systemctl status wings🎮 סיכום
המערכת שלנו עכשיו עובדת כך:
Pterodactyl Panel
↓
Node
↓
Wings
↓
Docker
↓
Game Servers
אחרי שכל השירותים עובדים ניתן להתחיל ליצור שרתים מתוך הפאנל באמצעות:
Nests + Eggs + Allocations
אל תריצו שרתי משחק ישירות כ-root. Pterodactyl משתמש ב-Docker כדי לבודד את שרתי המשחק ולנהל עבורם CPU, RAM, Disk ופורטים.