Unofficial scripts for installing Pyrodactyl Panel & Elytra (the daemon). Works with the latest version of Pyrodactyl!
This project is a fork of pterodactyl-installer by Vilhelm Prytz, adapted to install Pyrodactyl Panel and the Elytra daemon. It is not associated with the official Pyrodactyl or Pterodactyl projects.
- Automatic installation of the Pyrodactyl Panel (dependencies, database, cronjob, nginx, PHP 8.4, frontend build).
- Automatic installation of Elytra (Docker, systemd, optional rustic backups).
- Local / no-SSL install that works out of the box — decline SSL and the panel is served over
http://<your-server-ip>with no FQDN required. - Single-machine "both" — when the panel and Elytra are installed together, the node and Elytra config are created automatically (no manual panel setup).
- Separate machines — configure Elytra against a remote panel with just a panel URL + API key (the panel installer generates one for you).
- Panel: (optional) automatic Let's Encrypt, firewall, phpMyAdmin (port 8081), and a sample Minecraft server.
- A detailed summary at the end of the install (URL, login, database, API key, service status, next steps).
- Uninstallation support for both panel and Elytra.
List of supported installation setups for panel and Elytra (installations supported by this installation script).
| Operating System | Version | Supported | PHP Version |
|---|---|---|---|
| Ubuntu | 14.04 | 🔴 | |
| 16.04 | 🔴 * | ||
| 18.04 | 🔴 * | ||
| 20.04 | 🔴 * | ||
| 22.04 | ✅ | 8.4 | |
| 24.04 | ✅ | 8.4 | |
| Debian | 8 | 🔴 * | |
| 9 | 🔴 * | ||
| 10 | ✅ | 8.4 | |
| 11 | ✅ | 8.4 | |
| 12 | ✅ | 8.4 | |
| 13 | ✅ | 8.4 | |
| CentOS | 6 | 🔴 | |
| 7 | 🔴 * | ||
| 8 | 🔴 * | ||
| Rocky Linux | 8 | ✅ | 8.4 |
| 9 | ✅ | 8.4 | |
| AlmaLinux | 8 | ✅ | 8.4 |
| 9 | ✅ | 8.4 |
* Indicates an operating system and release that previously was supported by this script.
To use the installation scripts, simply run this command as root. The script will ask you whether you would like to install just the panel, just Elytra or both.
bash <(curl -sSL https://raw.githubusercontent.com/Muspelheim-Hosting/pterodactyl-installer/master/install.sh)Note: On some systems, it's required to be already logged in as root before executing the one-line command (where sudo is in front of the command does not work).
The installation scripts can install and configure a firewall for you. The script will ask whether you want this or not. It is highly recommended to opt-in for the automatic firewall setup.
To test the script, we use Vagrant. With Vagrant, you can quickly get a fresh machine up and running to test the script.
If you want to test the script on all supported installations in one go, just run the following.
vagrant upIf you only want to test a specific distribution, you can run the following.
vagrant up <name>Replace name with one of the following (supported installations).
ubuntu_nobleubuntu_jammydebian_bullseyedebian_busterdebian_bookwormdebian_trixiealmalinux_8almalinux_9rockylinux_8rockylinux_9
The project directory is mounted at /vagrant inside the box, so your local (un-pushed) changes are used directly. There are two ways to exercise the installer:
Runs the full install non-interactively (everything fed via env vars, no prompts):
vagrant up ubuntu_noble
vagrant provision ubuntu_noble --provision-with test-installOverride the target with TEST_TARGET (panel | wings | both, default both), e.g.:
TEST_TARGET=panel vagrant provision ubuntu_noble --provision-with test-installWalks the real menu and every prompt (SSL, FQDN, phpMyAdmin, node setup) — exactly what a user sees — while still reading everything from /vagrant. It needs a real terminal, so SSH in and run it:
vagrant up ubuntu_noble
vagrant ssh ubuntu_noble
sudo bash /vagrant/scripts/vagrant/vagrant_test_interactive.shAfter install, find the VM's IP with ip -4 addr and open http://<vm-ip>/ from your host to reach the panel.
In install.sh github source and script release variables should change every release. Firstly, update the CHANGELOG.md so that the release date and release tag are both displayed. No changes should be made to the changelog points themselves. Secondly, update GITHUB_SOURCE and SCRIPT_RELEASE in install.sh. Finally, you can now push a commit with the message Release vX.Y.Z and create a release on GitHub.
This project is a fork of pterodactyl-installer.
Copyright (C) 2018 - 2026, Vilhelm Prytz, vilhelm@prytznet.se, and contributors!
- Original
pterodactyl-installercreated by Vilhelm Prytz and maintained by Linux123123.