Creating a new Panel
Time Required
30 Minutes
Difficulty
Easy
Installing the Panel
Setting up the Portainer stack
Create your Portainer stack using the below compose and .env file
I would recommend deploying GitOps (have a look at the this guide) as this will shift your compose file off of your server and into GitHub.
MYSQL_PASS=
MYSQL_PASS_ROOT=
PORT_HTTP=
MAIL_FROM=
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASS= #SMTP App Password https://www.febooti.com/products/automation-workshop/tutorials/enable-google-app-passwords-for-smtp.html
SUBDOMAIN= #the subdomain, including the . for your panel. Eg panel.
DOMAIN= #the domain for your panel, eg example.com
TZ= #your timezone
HASHIDS_SALT= #This MUST be a 20 character string, per https://github.com/pterodactyl/panel/issues/5012#issuecomment-1960789655Confirm 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
Open up Portainer and navigate to the Panel container
Click on Console and change the command to '/bin/sh'
Hit Connect
Input the below command and next through the prompts (set account as administrator)
Log into Pterodactyl with your newly created administrator account
Configure the Panel
Enforce 2FA
Click on the Settings cog in the top right hand corner
Click on Settings
Set 'Require 2FA authentication' to 'All Users' and hit Save
Click on 'Enable 2FA' and follow the steps
Save your backup codes somewhere
Create Node Locations
Click on Locations, then 'create new'
Create 2 locations,
a location for 'On Prem' nodes
a location for 'Off Prem' nodes
Set up your Proxy
This step can be skipped thanks to the labels in the compose file, if you are using DockFlare
Refer to the Cloudflare Proxy and Authentication guides
Your subdomain and domain need to match the APP_URL variable set on the container ( SUBDOMAIN+DOMAIN, eg panel.example.com )
Type is HTTP, pointing at yourserver:port

navigate to your proxy url and confirm you see the login page
Last updated
Was this helpful?

