Unofficial scripts for installing Pterodactyl Panel & Wings. Works with the latest version of Pterodactyl!
Read more about Pterodactyl here. This script is not associated with the official Pterodactyl Project.
- Automatic installation of the Pterodactyl Panel (dependencies, database, cronjob, nginx)
- Automatic installation of the Pterodactyl Wings (Docker, systemd)
- Panel: (optional) automatic configuration of Let's Encrypt
- Panel: (optional) automatic configuration of firewall
- Uninstallation support for both panel and wings
- Support for multiple init systems (systemd, OpenRC, runit)
- Wide distribution support including rolling release distros
For help and support regarding the script itself and not the official Pterodactyl project, please open an issue on GitHub.
List of supported installation setups for panel and Wings (installations supported by this installation script).
| Operating System | Version | Supported | PHP Version | Init System |
|---|---|---|---|---|
| Ubuntu | 14.04 | π΄ | ||
| 16.04 | π΄ * | |||
| 18.04 | π΄ * | |||
| 20.04 | π΄ * | |||
| 22.04 | β | 8.3 | systemd | |
| 24.04 | β | 8.3 | systemd | |
| Debian | 8 | π΄ * | ||
| 9 | π΄ * | |||
| 10 | β | 8.3 | systemd | |
| 11 | β | 8.3 | systemd | |
| 12 | β | 8.3 | systemd | |
| 13 | β | 8.3 | systemd | |
| CentOS | 6 | π΄ | ||
| 7 | π΄ * | |||
| 8 | π΄ * | |||
| Rocky Linux | 8 | β | 8.3 | systemd |
| 9 | β | 8.3 | systemd | |
| AlmaLinux | 8 | β | 8.3 | systemd |
| 9 | β | 8.3 | systemd | |
| Arch Linux | Rolling | β | 8.3 | systemd |
| Gentoo | Rolling | β | 8.3 | OpenRC |
| Void Linux | Rolling | β | 8.3 | runit |
| Fedora | 39 | β | 8.3 | systemd |
| 40 | β | 8.3 | systemd | |
| 41 | β | 8.3 | systemd | |
| FreeBSD | 13 | β | 8.3 | rc.d |
| 14 | β | 8.3 | rc.d | |
| Artix (runit) | Rolling | β | 8.3 | runit |
| Artix (openrc) | Rolling | β | 8.3 | OpenRC |
| EndeavourOS | Rolling | β | 8.3 | systemd |
| Slackware | 15.0 | β | 8.3 | rc.d |
* 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 Wings or both (I recommend you to choose both).
bash <(curl -s https://raw.githubusercontent.com/levouinse/sofinco-pterodactyl/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 command.
vagrant upIf you only want to test a specific distribution, you can run the following command.
vagrant up <name>Replace name with one of the following (supported installations).
ubuntu_jammydebian_bullseyedebian_busterdebian_bookwormdebian_trixiealmalinux_8almalinux_9rockylinux_8rockylinux_9freebsd_13freebsd_14
Then you can use vagrant ssh <name of machine> to SSH into the box. The project directory will be mounted in /vagrant so you can quickly modify the script locally and then test the changes by running the script from /vagrant/installers/panel.sh and /vagrant/installers/wings.sh respectively.
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. Create a release on GitHub. See this commit for reference.
Copyright (C) 2026, Sofinco
Based on the original work by Vilhelm Prytz and Linux123123