Перейти к содержанию

Обзор развертывания Pterodactyl на сервере

Предварительные требования

Для корректной работы приложения требуются следующие параметры и системные условия:

  • Операционная система: Ubuntu (рекомендуемая версия jammy).

  • Пользователь: www-data (для веб-сервисов) и root.

  • Доменное имя: Требуется наличие настроенного домена для работы через SSL.

  • Порты:

  • 80/tcp: HTTP (для проверки Certbot).

  • 443/tcp: HTTPS (основной интерфейс панели).

  • 12333/tcp: Порт для Wings (проксирование).

FQDN итоговой панели на домене hostkey.in

Параметр Значение
Префикс pterodactyl
Домен hostkey.in
Полный шаблон pterodactyl{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

Основные пути к файлам в системе:

  • /var/www/pterodactyl — директория установки приложения.

  • /root/nginx — конфигурация контейнера для управления SSL-сертификатами.

  • /etc/letsencrypt/live/{Server_ID_from_Invapi}.hostkey.in/ — место хранения SSL-сертификатов.

  • /var/log/pterodactyl-access.log — лог доступа веб-панели.

  • /var/log/pterodactyl-error.log — лог ошибок веб-панели.

Процесс установки приложения

Развертывание Pterodactyl выполняется в несколько этапов:

  1. Подготовка системы: Обновление кэша пакетов и установка системных зависимостей (curl, gnupg, software-properties-common и др.).

  2. Настройка репозиториев: Добавление официальных репозиториев PHP (Sury) и Redis для установки актуальных версий ПО.

  3. Установка компонентов: Установка веб-сервера Nginx, базы данных MariaDB, кэширующего слоя Redis, а также интерпретатора PHP 8.3 и его расширений (mysql, mbstring, xml, gd и др.).

  4. Загрузка приложения: Скачивание последнего стабильного релиза Pterodactyl с GitHub, распаковка архива в /var/www/pterodactyl.

  5. Настройка окружения:

  6. Создание файла .env на основе примера.

  7. Генерация уникального APP_KEY.

  8. Настройка параметров базы данных, Redis и часового пояса (Europe/Amsterdam).

  9. Развертывание БД: Создание базы данных panel, пользователя и выполнение миграций (структуры таблиц).

  10. Настройка веб-сервера: Конфигурирование Nginx для работы через HTTPS с использованием SSL-сертификатов Let's Encrypt.

Права доступа и безопасность

  • Владелец файлов: Все файлы в директории /var/www/pterodactyl принадлежат пользователю www-data.

  • Безопасность PHP: Настроен параметр fastcgi_param HTTP_PROXY ""; для защиты от атак типа HTTPoxy.

  • Ограничения: Доступ к скрытым файлам (.ht) запрещен на уровне веб-сервера.

Базы данных

Для работы панели используется MariaDB:

  • Имя базы данных: panel.

  • Пользователь: pterodactyl.

  • Метод подключения: Локальное соединение через сокет /run/mysqld/mysqld.sock или 127.0.0.1:3306.

Контейнеры Docker и их запуск

В системе используется контейнер для автоматизации получения SSL-сертификатов:

Имя образа Порты Тома (volumes) Переменные окружения Политика перезапуска
jonasal/nginx-certbot:latest host mode nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d, /var/www/pterodactyl/public:/var/www/pterodactyl/public:ro CERTBOT_EMAIL=hkadm@hostkey.com unless-stopped

Кастомные скрипты и дополнительные настройки

Для обеспечения работы очереди задач (Queue Worker) создается системная служба pteroq:

  • Путь: /etc/systemd/system/pteroq.service.

  • Назначение: Запуск процесса php artisan queue:work для обработки фоновых задач в очередях high, standard и low.

Также настроена задача планировщика (cron) для автоматического запуска команд Artisan по расписанию.

Инструкция по обновлению приложения

Для обновления основной панели Pterodactyl необходимо выполнить следующие действия:

  1. Перейти в директорию /var/www/pterodactyl.

  2. Выполнить команду обновления через Composer: php 8.3 /usr/bin/composer install --no-dev --optimize-autoloader --no-interaction.

  3. При необходимости обновить базу данных командами: php 8.3 artisan migrate --force.

Расположение конфигурационных файлов и данных

  • Конфигурация приложения: /var/www/pterodactyl/.env

  • Конфигурация Nginx (веб-панель): /etc/nginx/sites-available/pterodactyl.conf

  • Конфигурация Wings: /etc/wings.yml

Доступные порты для подключения

Порт Назначение Протокол
443 Веб-интерфейс панели (HTTPS) TCP
12333 Wings API / Proxy TCP

Запуск, остановка приложения

Управление системными служчами осуществляется через systemctl:

  • Перезапуск очереди задач: systemctl restart pteroq

  • Проверка статуса очереди: systemctl status pteroq

  • Перезагрузка веб-сервера: systemctl reload nginx

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×