Deploy Pterodactyl Panel + MariaDB
Pterodactyl Panel with MariaDB, Redis, volumes, and private networking.
mysql
Just deployed
/var/lib/mysql
Just deployed
/app/var
Redis
Just deployed
/data
Pterodactyl Panel Railway Template
This folder tracks a Railway template for the Pterodactyl Panel.
Published template:
Stack
- Pterodactyl Panel via the official
ghcr.io/pterodactyl/panelimage - MariaDB on a private Railway service, exposed to the Panel as MySQL-compatible storage
- Railway Redis on a private Railway service
- Persistent volumes for database data and Panel state/logs/config
- Railway public domain for the Panel UI
Why This Template Should Convert
- Pterodactyl has clear marketplace demand and a high active-project ratio.
- The app is sticky because users keep game hosting control planes alive.
- The existing marketplace option leaves room for a clearer, supportable Railway-native setup.
- The official container already handles DB waiting, migrations, seeds, cron, PHP-FPM, nginx, and the queue worker.
Runtime Shape
panel- Image:
ghcr.io/pterodactyl/panel:latest - Public domain on port
80 - Volume mounted at
/app/var
- Image:
mysql- Image:
mariadb:11 - Private only
- Volume mounted at
/var/lib/mysql
- Image:
redis- Railway Redis database service
- Private only
- Ephemeral cache/session/queue service
Key Variables
Panel:
APP_ENV=productionAPP_DEBUG=falsePORT=80APP_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}APP_TIMEZONE=UTC[email protected]APP_ENVIRONMENT_ONLY=falseAPP_KEY=HASHIDS_SALT=HASHIDS_LENGTH=8DB_CONNECTION=mysqlDB_HOST=${{mysql.RAILWAY_PRIVATE_DOMAIN}}DB_DATABASE=${{mysql.MARIADB_DATABASE}}DB_USERNAME=${{mysql.MARIADB_USER}}DB_PASSWORD=${{mysql.MARIADB_PASSWORD}}REDIS_HOST=${{Redis.RAILWAY_PRIVATE_DOMAIN}}REDIS_PORT=${{Redis.REDISPORT}}REDIS_PASSWORD=${{Redis.REDIS_PASSWORD}}CACHE_DRIVER=redisSESSION_DRIVER=redisQUEUE_CONNECTION=redisQUEUE_DRIVER=redisMAIL_MAILER=logMAIL_DRIVER=log[email protected]MAIL_FROM_NAME=Pterodactyl Panel
MariaDB/MySQL-compatible database:
MARIADB_DATABASE=${{RAILWAY_SERVICE_NAME}}MARIADB_USER=${{RAILWAY_SERVICE_NAME}}MARIADB_PASSWORD=MARIADB_ROOT_PASSWORD=
Required First-Admin Step
After the first successful deploy, create the admin account from Railway SSH:
railway ssh --service panel php artisan p:user:make
The Panel is only the web control plane. Users still need one or more Wings nodes on infrastructure that supports Docker and game-server networking.
Railway currently supports one volume mount per service in this template flow, so the Panel persists /app/var. Nginx config, cert cache, and logs remain ephemeral.
Template Content
mysql
mariadb:11MARIADB_USER
MARIADB_DATABASE
MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD
PORT
APP_ENV
APP_KEY
DB_HOST
DB_PORT
APP_DEBUG
DB_SSLMODE
DB_DATABASE
DB_PASSWORD
DB_USERNAME
MAIL_DRIVER
MAIL_MAILER
APP_TIMEZONE
CACHE_DRIVER
HASHIDS_SALT
QUEUE_DRIVER
DB_CONNECTION
HASHIDS_LENGTH
MAIL_FROM_NAME
SESSION_DRIVER
QUEUE_CONNECTION
MAIL_FROM_ADDRESS
APP_SERVICE_AUTHOR
APP_ENVIRONMENT_ONLY
Redis
redis:8.2.1REDISPORT
REDISUSER