Creating a Panel

Time Required

15 Minutes

Difficulty

Easy

Installing the Panel

Setting up the Portainer stack

Create your Portainer stack using the below compose and .env file

https://github.com/trentnbauer/agg/blob/main/docker-compose/pterodactyl-panel.yml
.ENV File
# --- Domain Settings ---
DOMAIN=example.com
SUBDOMAIN=panel.
TZ=UTC

# --- Networking ---
PORT_HTTP=80
# This should be your internal DNS / IP address
HOSTNAME=localhost

# --- Database ---
# These must match what is set in the 'database' service
MYSQL_PASS=
MYSQL_PASS_ROOT=

# --- Mail (SMTP) ---
[email protected]
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASS=your-app-password

# --- Security ---
#Must be a random 32 character string - use your password generator
HASHIDS_SALT=

# --- Cloudflare Tunnel ---
CFPOLICY=bypass
CFACCESSNAME=Pterodactyl Panel
CFDURATION=8h

Confirm the Panel is running

Check the Portainer logs for the panel container, you should see something similar to below

Confirm the Login page loads

Browse to http://yourserver:port and confirm you see the below

Create your Admin user

  1. Open up Portainer and navigate to the Panel container

  2. Click on Console and change the command to '/bin/sh'

  3. Hit Connect

  4. Input the below command and next through the prompts (set account as administrator)

  1. Log into Pterodactyl with your newly created administrator account

Configure the Panel

Enforce 2FA

  1. Click on the Settings cog in the top right hand corner

  2. Click on Settings

  3. Set 'Require 2FA authentication' to 'All Users' and hit Save

  4. Click on 'Enable 2FA' and follow the steps

  5. Save your backup codes somewhere

Create Node Locations

  1. Click on Locations, then 'create new'

  2. Create 2 locations,

    1. a location for 'On Prem' nodes

    2. a location for 'Off Prem' nodes

Confirm the Proxy address loads

circle-info

As you have configured the Panel using Dockflare, you do not need to take any additional steps for this.

Browse to the ${SUBDOMAIN}${DOMAIN} you set in your .env file and ensure the page loads. If it was freshly created, you may need to wait some time for DNS to sync.

Refer to the DockFlare (Tunnel management) webui to confirm it is applying

Last updated