Actions adf003b7b2
All checks were successful
Build on Commit / build-and-push-image (push) Successful in 12m58s
Get latest release version / get-version (push) Successful in 26s
Trigger new release autobuild for v1.11.11
2025-06-19 00:01:27 +00:00
2024-01-23 15:48:32 -06:00
2024-01-23 18:44:05 -06:00
2024-01-10 15:40:33 -06:00
2024-01-10 17:17:28 -06:00

Pterodactyl-Panel

Disclaimer

As with anything else, exposing your system to the Internet incurs risks! This container does its best to be as secure as possible, but makes no guarantees to being completely impenetrable. Use at your own risk, and feel free to suggest changes that can further increase security.

About

The Pterodactyl project is an impressive one to me, but I wanted a way to make use of it in Unraid without installing it to the system. Thus, this set of containers was born. Panel uses Alpine's official image to keep the footprint small.

Configuration

The configuration of the Panel container is much less complicated than the Wings container. Most of the configuration occurs through environment variables. Simply define them to enable that component.

Variables

This container uses vishnubob's wait-for-it script to allow you to have startup wait for the SQL and Redis servers to become available before continuing. Simply set the HOST values to the correct hostname or IP address, and specific a port number, if you are not using the services' default option. You can also set TESTTIME to change the wait period from the default 30 seconds to whatever you desire.

It's also worth noting that, since this container is developed for use in Unraid, which has several excelent reverse proxy options, not much attention has been given to making the HTTPS option work. It should work in theory, but please submit a bug report if you encounter any issues. To enable, set HTTPS to "true", then map the location of your fullchain.pem and privkey.pem files to /le-ssl.

Variable Default Example
DBHOST NULL -e DBHOST="MariaDB"
DBPORT 3306 -e DBPORT=3306
REDISHOST NULL -e REDISHOST="Redis"
REDISPORT 6379 -e REDISPORT=6379
TESTTIME 30 -e TESTTIME=30
HTTPS NULL -e HTTPS="true"

Volumes

Volume Note Example
/config Required for persistence -v "/mnt/user/appdata/panel":"/config"
/le-ssl Expected location for SSL certs, if HTTPS is enabled -v "/letsencrypt/cert/directory":"/le-ssl":ro

Ports

Port Note Example
80 Default port if HTTPS is disabled. Redirects to 443 otherwise -p 80:80
443 Web interface if HTTPS is enabled - p 443:443

Setup

IMPORTANT: While this container automates as much as possible, manual setup of the environment is still required to finish installation. For instructions, complete the Environmental Configuration, Database Setup and Add The First User sections in Pterodactyl's "Getting Started" guide.

Example run command:

docker run \
    --name="Panel" \
    -e DBHOST="MariaDB" \
    -e DBPORT=3306 \
    -e REDISHOST="Redis" \
    -e REDISPORT=6379 \
    -e TESTTIME=30 \
    -e HTTPS=false \
    -v "/mnt/user/appdata/panel":"/config" \
    -v "/mnt/user/appdata/swag/etc/letsencrypt/live/<example.com>":"/le-ssl":ro \
    -p 80:80 \
    gethec/pterodactyl-panel
Description
No description provided
Readme MIT 113 KiB
Languages
Dockerfile 100%