Deploy Pterodactyl Panel — Game Server Management on Railway
Self-host Pterodactyl game server panel. Private MariaDB & Redis included.
Redis
Just deployed
/data
MariaDB
Just deployed
Pterodactyl
Just deployed
/app/var
Deploy and Host Pterodactyl Panel on Railway
Pterodactyl is the open-source game server management panel that has been the standard since 2015 — a secure, MIT-licensed control panel for Minecraft, Rust, ARK, Valheim, CS2, and hundreds of other game servers. Built with PHP, React, and Go, it gives you a clean admin UI, per-user permissions, subusers, API access, and full server lifecycle control.
This template deploys the Pterodactyl Panel with a private MariaDB database, Redis for sessions and queues, persistent panel storage, and private networking — pre-wired on Railway for ~$5–10/month. Run the control plane in the cloud and connect your Wings game-server nodes from any Docker-capable infrastructure.
What This Template Deploys
| Service | Purpose |
|---|---|
| Pterodactyl Panel | The public control panel — admin UI, user management, server configuration, and API on the web service |
| MariaDB 11 | Private database — users, servers, nodes, allocations, and all panel state. Volume at /var/lib/mysql |
| Redis 8.2.1 | Private cache, session store, and queue backend — required for panel performance and background jobs |
All three services connect over Railway's private network. MariaDB and Redis are never exposed
publicly. Application secrets (APP_KEY, HASHIDS_SALT) and database credentials are generated
automatically at deploy time.
About Hosting Pterodactyl Panel on Railway
Running the Pterodactyl Panel in production requires a MariaDB database, Redis for sessions and queues, persistent storage for the panel's config and certificates, and a public HTTPS endpoint. Without a managed host, you're configuring Docker Compose, nginx, SSL certificates, database backups, and inter-service networking manually.
Railway handles all of it. The panel deploys with private MariaDB and Redis instances, a persistent volume for panel state, and an automatic HTTPS domain — your control panel is live without touching a server.
Important — Panel only: This template runs the Pterodactyl Panel (the control dashboard). It does not run Wings or game servers on Railway, because game servers require Docker-in-Docker, arbitrary port ranges, and persistent workloads that Railway's platform does not support. Connect external Wings nodes from a VPS or dedicated server that supports Docker and game-server ports. This is a clean, low-cost way to host the Panel itself.
Typical cost: ~$5–10/month on Railway's Hobby plan for the Panel, MariaDB, and Redis — versus a VPS where you manage the OS, database, and SSL yourself.
Deploy in Under 5 Minutes
- Click Deploy on Railway — Panel, MariaDB, and Redis build automatically (~3–5 minutes)
APP_KEY,HASHIDS_SALT, and database credentials are auto-generated — no manual secrets- Set
APP_URLto your Railway public domain so panel links resolve correctly - Open your Railway URL and create the first admin user via the panel
- Add your external Wings node under Admin → Nodes and connect your game servers
No SSH. No nginx. No SSL certificate management for the Panel.
Common Use Cases
- Self-hosted game server control panel — manage Minecraft, Rust, ARK, Valheim, and CS2 servers from one secure dashboard instead of SSH and config files
- Game server hosting business panel — run the customer-facing control plane for a hosting company; per-user permissions, subusers, and API access are built in
- Minecraft network admin dashboard — manage multiple Minecraft servers, allocations, and startup parameters across nodes from a single Pterodactyl Panel
- Cloud-hosted panel with on-prem Wings nodes — keep the Panel always-on in the cloud on Railway while game servers run on your own dedicated hardware or VPS Wings nodes
- Pterodactyl evaluation and staging — spin up a clean Panel instance to test eggs, themes, Blueprint extensions, or API integrations before touching production
- Community game server management — give trusted members scoped subuser access to specific servers without handing over full root or SSH access
Configuration
| Variable | Required | Description |
|---|---|---|
APP_KEY | ✅ Auto-generated | Laravel application encryption key — generated at deploy |
APP_URL | ✅ Required | Your Railway public domain — required for correct panel links and assets |
HASHIDS_SALT | ✅ Auto-generated | Salt for hashed IDs in URLs — generated at deploy |
DB_HOST | ✅ Auto-injected | Private MariaDB hostname via Railway reference variable |
DB_DATABASE | ✅ Auto-injected | Database name from the MariaDB service |
DB_USERNAME | ✅ Auto-injected | Database user from the MariaDB service |
DB_PASSWORD | ✅ Auto-injected | Database password via Railway reference variable |
REDIS_HOST | ✅ Auto-injected | Private Redis hostname via Railway reference variable |
CACHE_DRIVER | ✅ Pre-set | redis — uses Redis for cache |
SESSION_DRIVER | ✅ Pre-set | redis — uses Redis for sessions |
QUEUE_DRIVER | ✅ Pre-set | redis — uses Redis for background queues |
MAIL_FROM_ADDRESS | Recommended | Sender address for password resets and account emails |
The Panel needs email configured for password resets and account invitations. On Railway's Hobby plan raw SMTP is blocked — use Resend or Brevo (HTTPS-based SMTP relays with free tiers).
Pterodactyl Panel on Railway vs. Alternatives
| This Template (Railway) | Self-hosted VPS | Game Panel SaaS | Pelican Panel | |
|---|---|---|---|---|
| Monthly cost | ~$5–10 flat | $5–20 + your time | $10–30/month | Self-hosted |
| Panel setup | ✅ One click | ❌ Manual nginx/SSL/DB | ✅ Managed | ⚠️ Manual |
| Private DB + Redis | ✅ Pre-wired | ⚠️ You configure | N/A | ⚠️ Manual |
| Runs game servers (Wings) | ❌ External nodes only | ✅ Same box | ✅ Yes | ⚠️ External |
| Data ownership | ✅ Your instance | ✅ Yes | ❌ Provider | ✅ Yes |
| Open source | ✅ MIT | ✅ MIT | ❌ No | ✅ MIT |
| Auto HTTPS | ✅ Railway | ❌ Manual certbot | ✅ Yes | ❌ Manual |
Dependencies for Pterodactyl Panel Hosting
- Railway account — Hobby plan (~$5–10/month) covers Panel, MariaDB, and Redis
- At least one external Wings node (VPS or dedicated server with Docker) to run game servers
- SMTP provider for password resets and emails — Resend or Brevo recommended for Railway Hobby
Deployment Dependencies
- Pterodactyl Panel GitHub — source and releases
- Pterodactyl Documentation — full setup guide
- Pterodactyl Wings — game-server daemon for external nodes
- Wings Installation Guide — node setup
- Railway Volumes Documentation — persistent storage
Implementation Details
Deploys ghcr.io/pterodactyl/panel:latest alongside mariadb:11 and redis:8.2.1 over
Railway's private network. MariaDB and Redis ports are never exposed publicly — only the Panel
has a public domain. Cache, sessions, and queues run through Redis; panel state, config, and
logs persist on the /app/var volume. Wings nodes (which run the games) must be hosted on
external Docker-capable infrastructure and connected under Admin → Nodes — Railway does not
support the Docker-in-Docker and arbitrary ports Wings requires.
Frequently Asked Questions
Can I run Minecraft or other game servers directly on Railway with this template? No. This template runs the Pterodactyl Panel only — the control dashboard. Game servers run on Wings daemon nodes, which require Docker-in-Docker and arbitrary port ranges that Railway doesn't support. Host Wings on a VPS or dedicated server and connect it to this Panel. The Panel manages the servers; the Wings node runs them.
Why host just the Panel on Railway instead of everything on a VPS? Keeping the Panel on Railway gives you automatic HTTPS, a managed private MariaDB and Redis, zero nginx/SSL maintenance, and an always-on control plane independent of your game-server hardware. Your Wings nodes can be cheaper bare-metal boxes optimised for game workloads while the Panel stays reliable in the cloud.
Do I lose my panel data and server configs if Railway redeploys?
No. All users, servers, nodes, and allocations are stored in the private MariaDB instance, and
panel state lives on the /app/var volume. Redeploys and updates do not affect your data.
How do I connect a Wings node to this Panel? Create the node under Admin → Nodes in the panel, generate the configuration token, and run the Wings daemon on your external server with that token. The node appears in the panel once it checks in. Full steps are in the Pterodactyl Wings installation guide.
Is email required?
Email is needed for password resets and invitations. On Railway Hobby, raw SMTP is blocked —
configure Resend or Brevo (free, HTTPS-based) via the MAIL_* variables.
How do I update the Panel to a newer version? Update the image tag in Railway service settings to a specific Pterodactyl release and redeploy. MariaDB data and the panel volume are unaffected. Run any required migrations from the panel container after major version updates.
Why Deploy and Host Pterodactyl Panel on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying the Pterodactyl Panel on Railway, you get the industry-standard game server control panel — private MariaDB and Redis, persistent storage, and automatic HTTPS — at ~$5–10/month flat, with your game servers running on external Wings nodes you fully control.
Template Content
Redis
redis:8.2.1MariaDB
mariadb:11MARIADB_USER
MARIADB_DATABASE
MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD
Pterodactyl
pterodactyl/panel:latestAPP_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
