آموزش نصب پنل Pterodactyl در دبیان برای مدیریت سرور بازی
وقتی میخوای چند تا گیمسرور رو روی یه VPS بالا بیاری، اگه بخوای دونهدونه و دستی بری جلو، قشنگ وقتت تلف میشه و مدیریتشون میره رو مخ. راهکار اصولی و تمیزش اینه که کار رو بسپری به Pterodactyl؛ یه پنل تحت وب که مدیریت سرورها رو برات ساده و متمرکز میکنه. این پنل واسه اجرای سرورها میره سراغ داکر (Docker) و بازوی اجرایی خودش یعنی Wings تا گیمسرورها رو داخل کانتینرهای جدا روی نودها (Nodes) اجرا و مدیریت کنه. توی این آموزش نصب پنل Pterodactyl در دبیان رو با کدهای ترمینال و مراحل پیکربندیش مرحله مرحله توضیح میدیم.

بخش اول: آماده سازی سیستم و نصب پنل Pterodactyl
سرورت رو آماده کن و آپدیتهای لازم رو انجام بده
Debian 12 Bookworm بخاطر مصرف نسبتاً کم منابع، پایداری و عملکرد خوبی که داره مورد مناسبی برای راهاندازی محیط میزبانی گیمسرورهاست. سرورت باید از لحاظ CPU، RAM و SSD قشنگ واسه گیمسرور راه انداختن جفتوجور باشه. اگه تو فکرت اینه که چند تا گیمسرور رو همزمان بالا بیاری، حتماً حواست به مصرف منابع هر کدومشون باشه تا بعداً یهو با کمبود CPU یا RAM مواجه نشی و سرورت وسط کار کم نیاره. سروری که دارین، بهتره دیتاسنترش به لوکیشن بازیکنا نزدیک باشه و Latency کمی داشته باشه. همچنین اگه بخواین چندتا گیم سرور روی سرورتون میزبانی کنین پهنای باند سرور باید بالا باشه.
با SSH به سرورت وصل شو تا بتونی دستورات نصب و کانفیگ رو از توی ترمینال جلو ببری. بعد اینکه وارد سرورت شدی، بستههای سیستمت رو بهروزرسانی کن:
sudo apt update && sudo apt upgrade -y
بعدش نوبت به نصب فایروال روی سرورت میرسه. فایروال کمک میکنه دسترسیهای ورودی و خروجی سرور رو کنترل کنی و Allocation گیمسرورها و پورتهایی رو باز بذاری که واقعاً بهشون نیاز داری. ولی یادت نره که قبل از فعالکردن فایروال، پورت SSH سرورت رو باز کنی؛ وگرنه دسترسیت به سرور قطع میشه:
sudo apt install ufw -y sudo ufw allow OpenSSH sudo ufw enable
پیشنیازهای پنل رو نصب کن
یکی از پیشنیازهای اصلی واسه نصب پنل Pterodactyl در دبیان، خود PHP و Extensionهاشه؛ چون کدهای این پنل با PHP نوشته شده. وقتی PHP رو روی سرورت نصب کنی، محیط لازم برای اجرای کدهای Pterodactyl فراهم میشه. در کنارش خود ابزار Composer رو هم نصب کن. Composer بستههای PHPای که پنل Pterodactyl نیاز داره طبق فایل composer.json پیدا و نصب میکنه تا بعداً بتونی وابستگیهای نرمافزاری Pterodactyl رو باهاش نصب کنی.
توی این آموزش از PHP 8.3 استفاده میکنیم؛ برای همین اول مخزن بستههای PHP رو به سیستم اضافه کن:
sudo apt install -y curl ca-certificates gnupg2 lsb-release git unzip echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg sudo apt update
بعد PHP 8.3 و Extensionهایی که پنل لازم داره رو نصب کن:
sudo apt install -y 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-curl php8.3-zip libapache2-mod-php8.3
و بعدش برو سراغ نصب Composer؛ این ابزار واسه مدیریت و نصب وابستگیهای PHP موردنیاز Pterodactyl استفاده میشه:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
وبسرور روی سرورت نصب کن
چون Pterodactyl یه پنل تحت وب هست، واسه اینکه کاربر از طریق مرورگر بتونن بهش دسترسی پیدا کنن، باید یه وبسرور مثل Apache درخواستهای HTTP/HTTPS رو از مرورگر گیمرها بگیره و به برنامه پنل برسونه. چون پنل Pterodactyl با PHP اجرا میشه، باید وبسروری انتخاب کنی که بتونه درخواستهای PHP رو درست پردازش کنه. توی این آموزش از آپاچی استفاده میکنیم:
sudo apt install apache2 -y
MariaDB و Redis رو روی سرورت راهاندازی کن
واسه ذخیره اطلاعات پنل، MariaDB رو که یه سیستم مدیریت پایگاه دادهست روی سرورت نصب کن. در کنارش Redis رو هم نصب کن تا پنل بتونه برای Cache، Session و Queue ازش استفاده کنه:
sudo apt install -y mariadb-server redis-server sudo systemctl enable --now mariadb sudo systemctl enable --now redis-server
بعد از نصب MariaDB و Redis، یه دیتابیس و کاربر اختصاصی برای Pterodactyl بساز.
sudo mariadb
CREATE DATABASE panel;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'رمز-قوی-خودت';
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;
حالا نوبت نصب خود پنل روی سرورته
وقتشه بری سراغ اصل مطلب یعنی نصب خود Pterodactyl. اول از همه، فایلهای آخرین نسخه Pterodactyl رو روی سرورت دانلود کن و توی دایرکتوری نصب پنل قرارشون بده. بعد با Composer وابستگیهای نرمافزاری پنل رو نصب کن:
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 rm panel.tar.gz sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
تنظیمات اولیه پنل رو انجام بده
توی این مرحله باید چندتا کار مهم رو انجام بدی تا کاربران بتونن از طریق مرورگر به پنل دسترسی داشته باشن.
اول وارد دایرکتوری پنل شو و فایل تنظیمات اولیه رو ایجاد کن:
cd /var/www/pterodactyl sudo cp .env.example .env
حالا دستورات زیر رو توی دایرکتوری پنل اجرا کن تا تنظیمات محیط، دیتابیس و ایمیل پنل مشخص بشه:
sudo php artisan p:environment:setup sudo php artisan p:environment:database sudo php artisan p:environment:mail
کلید رمزنگاری پنل رو ایجاد کن و جدولهای موردنیاز Pterodactyl رو در دیتابیس بساز:
sudo php artisan key:generate --force sudo php artisan migrate --seed --force
برای اینکه داشبورد پنل رو بتونی مدیریت کنی یه حساب Admin بساز:
sudo php artisan p:user:make
دامنه پنل رو در تنظیمات Apache به مسیر public Pterodactyl متصل کن. واسه این کار فایل تنظیمات Apache رو ایجاد و مشخصات دامنه و مسیر پنل رو داخلش وارد کن:
sudo nano /etc/apache2/sites-available/pterodactyl.conf
بعد این محتوا رو داخل فایل قرار بده و your-domain.com رو با دامنه خودت جایگزین کن:
<VirtualHost *:80> ServerName your-domain.com DocumentRoot "/var/www/pterodactyl/public"
<Directory "/var/www/pterodactyl/public"> AllowOverride all Require all granted </Directory> </VirtualHost>
بعد از ذخیره فایل، مالکیت فایلهای پنل رو تنظیم و کانفیگ Apache رو فعال کن:
sudo chown -R www-data:www-data /var/www/pterodactyl sudo a2enmod rewrite sudo a2ensite pterodactyl.conf sudo systemctl restart apache2
بخش دوم: نصب Wings و Docker و اتصال به پنل
Docker رو روی گره راه بنداز
برای اجرای گیمسرورها، Wings به Docker نیاز داره. Docker محیط اجرای هر گیمسرور رو داخل کانتینر جدا قرار میده. اینجوری میتونی منابع اختصاصدادهشده به هر کانتینر و نحوه اجراشون رو جداگانه مدیریت کنی. وقتی کاربر یه دستوری رو توی پنل میزنه، پنل به وینگز منتقلش میکنه. وینگز هم از طریق Docker API به داکر میگه که چیکار کنه و داکر همون دستور رو اجرا میکنه. برای Debian 12 بهتره Docker Engine رو از مخزن رسمی Docker نصب کنی تا نصب و بهروزرسانی اون از مسیر رسمی انجام بشه. واسه این کار،دستور نصبش رو توی ترمینال Bash بزن:
sudo apt update sudo apt install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg \ -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc sudo tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: https://download.docker.com/linux/debian Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable --now docker sudo docker run hello-world
توی پنلت گره (Node) درست کن
بعد اینکه پنل Pterodactyl رو در دبیان نصب کردی، باید سروری که قراره گیم سرورها روش اجرا بشن(Node) رو بهش معرفی کنی. واسه ردیف کردن گره (Node) برو توی پنل و رو بخش Node کلیک کن. بعدش گزینه Create Node رو بزن و مشخصات سرورت رو وارد کن. توی این آموزش سروری که پنل رو روش نصب کردیم همون سروریه که قراره گیم سرورها روش اجرا بشن و مشخصات همین سرور رو وارد میکنیم. اگه قراره گیم سرورهات رو روی یه سرور جدا اجرا کنی، توی پنلت مشخصات همون سرور رو وارد کن.

نصب دیمن وینگس (Wings Daemon)
برنامه وینگس (Wings) تهش همون واسطه بین پنل پتروداکتیل و سروربازیه. این برنامه رو باید روی سروری که قراره گیم سرورها روش اجرا بشن نصب کنی. وقتی کاربر میره تو پنل و دکمههای خاموش، روشن یا ریاستارت رو میزنه، این برنامه دستور رو از پنل میگیره و به داکر پیغام میده که مثلا توی فلان کانتینر فلان کار رو بکن. واسه اینکه به داکر متصل بشه از Docker API استفاده میکنه. درواقع مدیریت و و اینکه کانتینرها چجوری اجرا بشن رو وینگز از طریق داکر انجام میده. واسه نصبش هم فقط کافیه چند خط کد رو توی محیط بش (Bash) کپی پیست کنی.

sudo mkdir -p /etc/pterodactyl sudo curl -L https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64 -o /usr/local/bin/wings sudo chmod u+x /usr/local/bin/wings
بعد اینکه Wings رو نصب کردی، Configuration ای که توی پنل درست شده بود رو انتقال بده به فایلِ توی Node:
/etc/pterodactyl/config.yml
اینجوری وینگ میفهمه که باید از کدوم پنل دستور بگیره و مربوط به کدوم گیم سروره.
حالا یبار دیگه وینگز رو تست کن تا مطمئن بشی درست کار میکنه:
sudo wings --debug
اگه درست کار کرد، مثل یه سرویس دائمی اجراش کن تا هروقت سرور روشن شد وینگز اجرا بشه:
sudo nano /etc/systemd/system/wings.service [Unit] Description=Pterodactyl Wings Daemon After=docker.service Requires=docker.service [Service] User=root WorkingDirectory=/etc/pterodactyl ExecStart=/usr/local/bin/wings Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl enable --now wings sudo systemctl status wings
گیم سروری که میخوای رو بساز
همه این مراحل رو انجام دادیم که بتونیم یک یا چندتا سروربازی رو روی سرورمون اجرا کنیم. توی قسمت مدیریت پنل، روی قسمت Create Server کلیک کن. گره، Egg و Docker Imageای که برای بازیت نیازه رو انتخاب کن.

محدودیتهای سختافزاری و Allocation رو هم برای گیمسرورت مشخص کن. Allocation مشخص میکنه گیمسرور از کدوم IP و پورت برای دریافت اتصال بازیکنها استفاده کنه. و تمام!
پنل اینطوری میفهمه که به وینگ باید دستور بده یه گیم سرور با مشخصاتی که وارد کردی رو روی گره با کمک داکر بسازه. Egg مشخص میکنه گیمسرور چطور نصب و اجرا بشه، چه متغیرهایی داشته باشه و از چه Docker Image و دستورهای Startup استفاده کنه. واسه بازیهای رایج میتونی Eggهای آماده جامعه Pterodactyl رو توی پنل وارد کنی و وقتی سرورت رو میسازی، Egg و Docker Imageای که واسه سروربازیت مناسب هست رو انتخاب کنی.
ردیف کردن ارتباط SSL
اطلاعاتی که بین پنل و گره در طول شبکه منتقل میشن بهتره رمزنگاری بشن تا احتمال مشکلات امنیتی کمتر بشه. اینجوری اطلاعات مدیریتی و درخواستها بین پنل و وینگ رمزنگاری میشن و در برابر شنود و دستکاریهای مختلف امنیت بیشتری دارن. واسه این کار:
اول باید واسه دامنه Node یک DNS Record بسازی که به IP سرور Wings اشاره کنه. مثلاً:
Type: A
Name: node
Value: IP-سرور-Wings

بعد روی Node یک گواهی TLS معتبر برای node.example.com بگیر. اگر Apache روی Node نصب شده، Certbot و پلاگین Apache رو نصب کن:
sudo apt update sudo apt install -y certbot python3-certbot-apache
حالا برای دامنه Node گواهی TLS بگیر:
sudo certbot certonly --apache -d node.example.com
بعد Configuration مربوط به Wings رو که از بخش Configuration مربوط به Node در پنل گرفتی، در فایل زیر روی Node قرار بده:
sudo nano /etc/pterodactyl/config.yml
مطمئن شو که تنظیمات SSL توی Configuration به گواهی TLS و کلید خصوصی دامنه Node اشاره میکنن.
حالا Wings رو تست کن تا مطمئن بشی تنظیماتش درست کار میکنن:
sudo wings --debug
در آخر هم داخل Pterodactyl، آدرس Node رو به شکل HTTPS ثبت کن:
https://node.example.com
بخش سوم: پایدارسازی گیم سرورها و شبکه
- واسه اینکه شبکه پایدار بمونه و گیمرا موقع وصل شدن به سرور به مشکل نخورن، باید چندتا چیز رو با هم جفتوجور کنی: فایروال، Allocation و شبکه داکر. خود داکر شبکه کانتینرها رو ردیف میکنه و از شبکههای مجازی مثل Bridge استفاده میکنه تا ارتباط کانتینرا با سرور و اینترنت راه بیفته یعنی لازم نیست بشینید دستی یه پل شبکه بسازی.
- موقع ساخت هر گیمسرور، محدودیت مصرف منابع (RAM، CPU و Disk) رو توی تنظیمات Server مشخص کن تا Wings این محدودیتها رو موقع اجرای کانتینر از طریق Docker اعمال کنه. یعنی طوری نباشه که یه سروربازی بیشتر منابع سرور رو استفاده کنه! اینجوری ممکنه عملکرد سرورهایبازی دیگه افت کنه تا لگ بشن.
- بعد از اینکه پتروداکتیل رو روی دبیان نصب کردی، حتماً بکاپگیری خودکار رو هم ردیف کن. یعنی توی تنظیمات پنل مشخص کن که هر چند ساعت یکبار، چندتا نسخه و از کدوم سرورایبازی بکاپ گرفته بشه. بهتره محل ذخیره بکاپها رو بذاری روی S3 Storage، تا به Node وابستگیش کمتر بشه؛ تا اگه واسه سرور اصلی مشکلی پیش اومد، ریسک از بین رفتن بکاپهات کم بشه.

- کنار بکاپ دیتابیس و فایلای گیمسرور، حواست باشه از فایل تنظیمات .env پنل هم یه نسخه مطمئن واسه خودت نگه داری. یادت باشه اگه کلید اصلی یا همون APP_KEY پاک بشه یا از بین بره، یه سری از اطلاعات رمزگذاریشده پنل رو حتی اگه بکاپ دیتابیس رو هم داشته باشی، ممکنه نتونی برگردونی.
تجربه شخصی
چیزی که بعد از نصب پنل Pterodactyl در دبیان بیشتر به چشم میاد، مدیریت و کنترل وضعیتشون برای نگهداری بلند مدت سیستمه. پنل مدیریت این سرورها رو متمرکزتر میکنه و میشه چیزهایی مثل مصرف منابع، روشن و خاموش کردن سرور و ریاستارت کردنش رو همونجا مدیریت کرد. وقتی تعداد سرورها بیشتر میشن، حساسیت هم نسبت به وضعیت کانتینرها، گیمسرورها، مصرف RAM و پردازنده و فضای دیسک بیشتر میشه. این روال وقتی از اول رعایت بشه، با بیشتر شدن تعداد سرورها یا بازیکنها، احتمال اینکه مشکلات عملکردی بهسختی قابل شناسایی و عیبیابی بشن کمتر میشه.
سخن آخر
در نهایت، Pterodactyl مدیریت چند گیمسرور روی یک سرور رو خیلی راحتتر میکنه؛ اما برای اینکه گیمسرورهات بدون افت عملکرد اجرا بشن، باید منابع سرور رو متناسب با تعداد بازیکنها و نوع بازی انتخاب و مدیریت کنی. از طرف دیگه، پنل، Wings و وابستگیهای اصلی رو هم بهصورت منظم بهروز نگه دار و قبل از آپدیت، از اطلاعات مهم پنل و گیمسرورهات بکاپ بگیر. نسخههای جدید Pterodactyl در سال ۲۰۲۶ علاوه بر تغییرات و بهبودهای مختلف، شامل اصلاحات امنیتی هم بودهاند؛ بنابراین بهروز نگه داشتن اجزای زیرساخت رو نباید به بعد موکول کنی.
بله، ولی به صورت غیر مستقیم. برای اینکه بتوانید پنل Pterodactyl را در ویندوز نصب کنید، باید یک محیط لینوکسی در ویندوز درست کنید. این کار را می توانید با نصب WSL2 یا ماشین مجازی روی ویندوزتان انجام دهید.
برای این کار وارد پنل شوید و سرور بازی ای که می خواهید از آن بکاپ بگیرید را باز کنید. سپس روی بخش بکاپ بزنید و روی Create Backup کلیک کنید. بعد از مدتی بکاپ سرور بازی مد نظرتان توسط Wings درست می شود و می توانید آن را دانلود کنید.
برای این کار وارد قسمت مدیریت پنل شوید و روی Nests بزنید. سپس با کلیک روی Create new، برای بازی ای که می خواهید سرور درست کنید Egg ایمپورت کنید.
