Getting Started
Install Pterodactyl Panel 2.0 on your own server.
Introduction
This guide installs the Panel on a Linux server where you have root access. You should be comfortable installing packages, editing files, and managing services.
Prefer Docker?
The Panel's Docker image includes the web server, queue worker, and scheduler. See Docker Deployment.
To upgrade a 1.x Panel, follow Upgrading From 1.x.
Choosing an Operating System
Supported operating systems:
| Operating System | Versions | Notes |
|---|---|---|
| Ubuntu | 26.04 | Needs an extra repository for PHP 8.3. |
| 24.04 | Recommended. Includes PHP 8.3. | |
| 22.04 | Needs an extra repository for PHP 8.3. | |
| Debian | 13 | Needs an extra repository for PHP. |
| 12 | Needs extra repositories for PHP, MariaDB, and Redis. |
Pterodactyl officially supports Ubuntu, Debian, and the Panel's Docker image. Other Linux distributions may work, but often need changes to these steps, and we cannot help with them.
Pick your operating system, PHP version, and web server. The commands on this page follow your choices.
Your setup
Installing Dependencies
The Panel needs:
- PHP 8.3 or 8.4, with the
cli,gd,mysql,mbstring,bcmath,xml,curl,zip, andintlextensions. NGINX and Caddy also need PHP-FPM. - MariaDB 10.11 or 11, or MySQL 8 or 9.
- Redis.
- A web server, such as NGINX, Apache, or Caddy.
curl,tar, andunzip.- Composer 2.
Install everything:
apt update
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip,intl} mariadb-server redis-server tar unzip curl nginxInstalling Composer
Install Composer, the PHP dependency manager:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerDownloading the Panel
Create the Panel's directory and move into it:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactylDownload the latest beta, unpack it, and make storage and bootstrap/cache writable:
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v2.0.0-beta.2/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/Creating the Database
The Panel needs its own database and a user with access to it. Open the MariaDB console:
mariadb -u rootCreate the user and database. Replace yourPassword with a strong, unique password:
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exitInstallation
Installing PHP Dependencies
Copy the example environment file, install PHP dependencies, and generate the application key:
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --forceOnly run php artisan key:generate on a new installation. On an existing Panel, it makes encrypted data unreadable.
Back up your application key
APP_KEY in .env encrypts sensitive data, such as API keys, node tokens, and two-factor secrets. If you lose it, that data cannot be recovered, even from a database backup.
Save a copy off the server, such as in a password manager. To print it, run:
grep APP_KEY /var/www/pterodactyl/.envConfiguring the Environment
These commands set up the environment. They ask about your Panel's address, sessions, caching, the database, and email:
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mailIn p:environment:setup, choose Redis for the cache, session, and queue drivers. For email, choose smtp to use your own mail server. The mail option uses PHP's built-in mail sending, which is not recommended.
Setting Up the Database
Create the database tables and add the default eggs:
php artisan migrate --seed --forceThis may take a while. Do not stop it before it finishes.
Creating the First User
Create an administrator account to sign in with:
php artisan p:user:makeSetting Permissions
Give the web server user ownership of the Panel's files:
chown -R www-data:www-data /var/www/pterodactyl/*Queue and Scheduler
The Panel sends email, runs server schedules, and does other background work through a scheduler and a queue worker.
Scheduler
Open root's crontab:
crontab -eAdd this line to run the scheduler every minute:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1Queue Worker
Create pteroq.service in /etc/systemd/system:
[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.targetEnable Redis and the queue worker so they start on boot:
systemctl enable --now redis-server
systemctl enable --now pteroq.serviceNext Steps
Next, configure your web server to open the Panel in your browser. Then install Wings on each node.
Telemetry
The Panel sends anonymous usage statistics to help improve Pterodactyl. p:environment:setup asks whether to enable it. See Telemetry for what is collected and how to turn it off.
Last updated on