Installing with Railway
Deploy Hydrodactyl on Railway using the community template
This guide walks you through deploying Hydrodactyl on Railway using the community-maintained one-click template. The template provisions the panel together with MariaDB and Redis.
This template is unofficial and community-maintained. It is not built or supported by the Hydrodactyl team, and issues with the template itself should be raised with its author rather than the Hydrodactyl maintainers.
Need help with Hydrodactyl itself? Join our Hydrodactyl Discord or open a discussion on GitHub.
Prerequisites
- A Railway account
- A domain name (recommended) — Railway can also issue you a
*.up.railway.appdomain - A separate machine or provider for Pterodactyl Wings if you want to run game servers. Railway only hosts the panel, its database, and its cache.
What the template creates
Deploying the Hydrodactyl template creates three services in a new Railway project:
| Service | Image | Purpose |
|---|---|---|
| Hydrodactyl | ghcr.io/blueprintframework/hydrodactyl | The panel (Nginx + PHP) |
| MariaDB | mariadb:12 | Panel database |
| Redis | redis:8.2 | Cache, sessions, and queues |
Railway automatically wires the panel to MariaDB and Redis over its private network and generates the required secrets (APP_KEY, HASHIDS_SALT, database and Redis passwords) for you.
Panel installation
-
Deploy the template
Open the Hydrodactyl template, sign in to Railway if prompted, and click Deploy Now. Choose the workspace and project you want it in, then confirm.
-
Wait for the services to come up
Railway builds all three services. The panel reports healthy once its
/upendpoint responds and the database migrations have run. You can follow progress in the Deployments tab of the Hydrodactyl service. -
Expose the panel
Open the Hydrodactyl service, go to Settings → Networking, and click Generate Domain. To use your own domain instead, add it under Custom Domain and follow Railway's DNS instructions.
-
Point
APP_URLat your domainThe template derives
APP_URLfrom the Railway-provided domain. If you attached a custom domain, update theAPP_URLvariable on the Hydrodactyl service tohttps://your-domainand redeploy. The panel uses this value for links and for the queue/cron jobs. -
Create your administrator account
Visit the panel at the configured URL. With no accounts on the system yet, the panel's built-in initial admin creation suite will guide you through creating the first administrator account.
Railway terminates TLS at its edge, so leave LE_EMAIL unset on the
Hydrodactyl service — HTTPS is handled for you.
Post-installation configuration
-
Panel setup:
- Access your panel at the configured domain
- Log in with your admin account
- Navigate to Admin → Locations and create a new location
- Navigate to Nodes and add your Wings instance
-
Email configuration (Admin → Settings):
- Set
MAIL_*variables on the Hydrodactyl service and redeploy - Recommended providers:
- Resend
- Mailgun
- AWS SES
- Set
Maintenance
- Updating Hydrodactyl:
- The template is pinned to a specific image tag. To update, change the image
on the Hydrodactyl service (e.g.
ghcr.io/blueprintframework/hydrodactyl:v6.4.1) and redeploy.
- The template is pinned to a specific image tag. To update, change the image
on the Hydrodactyl service (e.g.
Troubleshooting
Common issues and solutions:
- Build or deploy failures:
- Check the deployment logs for the failing service
- Verify the MariaDB and Redis services are running before the panel
- Panel loads but assets or links use the wrong URL:
- Make sure
APP_URLmatches the public domain exactly, includinghttps://
- Make sure
- "Waiting for database connection" in the logs:
- MariaDB is still starting up; the panel retries automatically