Deploy crafty-template
Run Minecraft servers from a web panel - Crafty Controller in one click
Just deployed
/data
Crafty Controller on Railway — Minecraft server management panel in one click
Run Minecraft servers from a web panel. This template deploys Crafty Controller 4 (pinned to the official registry.gitlab.com/crafty-controller/crafty-4:4.11.0 image) with a persistent volume, a generated admin login, your panel on a HTTPS Railway domain, and one public TCP proxy wired for your first Minecraft server.
- Zero credentials shipped — Crafty generates a random admin username and password on first boot into
default-creds.txton your volume. - Zero deploy-form inputs — the only variable,
PORT, defaults to${{RAILWAY_TCP_PROXY_PORT}}automatically. - Java Edition over TCP — create the server on port
25565in the panel and players join via the provisioned TCP proxy.
Deploy and Host
Deploying provisions a single service, crafty:
| Panel | Crafty Controller 4.11.0 on your Railway domain (Railway TLS at the edge; an internal bridge forwards to Crafty's own HTTPS listener) |
| Persistence | One volume at /data — config + SQLite DB (/data/config), servers (/data/servers), backups (/data/backups), logs (/data/logs) |
| Server port | TCP proxy on internal port 25565 (public host/port injected as RAILWAY_TCP_PROXY_DOMAIN / RAILWAY_TCP_PROXY_PORT) |
| Java runtimes | OpenJDK 8/11/17/21/25 — Minecraft 1.7 through the latest release |
The entrypoint links Crafty's five documented paths (/crafty/app/config, /crafty/servers, /crafty/backups, /crafty/logs, /crafty/import) into the single Railway volume, fixes group permissions for the container's non-root crafty user, seeds first-boot defaults, and starts an HTTP→HTTPS bridge so the panel is reachable through Railway's router with a valid certificate.
| Variable | Value |
|---|---|
PORT | ${{RAILWAY_TCP_PROXY_PORT}} — set automatically, no input needed |
About Hosting
Crafty Controller is a self-hosted panel that launches and manages Minecraft servers inside its own container. Hosting it on Railway gives you a managed panel URL, usage-based pricing, persistent storage for worlds and configs, and a public TCP entry point for players — without running a home server or a VPS.
Budget 2–3 GB of RAM for the panel plus one small Paper server (heavier modpacks need more). Expect roughly $10–15/month on Railway's usage-based pricing including the volume.
Java Edition servers are reachable over the internet via TCP. Bedrock (UDP) cannot be exposed on Railway — Railway has no UDP ingress — so Bedrock servers are usable only over LAN/VPN-style tunnels.
Why Deploy
- One click, fully prewired: volume, healthcheck (
/login), public domain, and the first Minecraft server's TCP proxy are provisioned for you — the upstream docker-compose expects five volume mounts and manual port publishing, which don't map one-to-one onto Railway. This template consolidates them safely and documents every adaptation. - Secure by default: no shared credentials — the admin password is generated on your volume, and the panel enforces a password change on first login.
- Valid HTTPS: Railway's edge TLS in front of Crafty's self-signed internal cert, so no browser warnings.
- Pinned upstream image:
crafty-4:4.11.0from the official GitLab registry — reproducible deploys and clear upgrade paths.
Common Use Cases
- Host a survival or creative Paper/Vanilla/Fabric/Forge server for friends, managed from the browser.
- Run multiple Java servers (e.g. one per modpack) from one panel — add a TCP proxy per server port.
- Schedule automated backups of worlds to
/data/backupsand download them via panel or SSH. - Give each player/operator a Crafty user with scoped permissions instead of sharing one login.
- Test server configs, plugins, and version upgrades before committing.
Dependencies for
No external services or accounts are required — everything runs in the single crafty service.
Deployment Dependencies
- Railway account with usage-based billing (panel + one small server: ~2–3 GB RAM).
- A Minecraft Java Edition client (vanilla launcher) to join — the server itself, its Java runtime, and all panel dependencies ship inside the image.
- That's it. After deploy: fetch the generated credentials with
railway ssh(cat /data/config/default-creds.txt), log in, set your own password, create a Paper server on port25565, and hand playersRAILWAY_TCP_PROXY_DOMAIN:RAILWAY_TCP_PROXY_PORT.
Template Content
