- Updated `dream2nix` to the latest version. - Removed deprecated inputs related to `dream2nix`, including `devshell`, `flake-compat`, `flake-parts`, and others. - Added new inputs for `purescript-overlay` and `pyproject-nix`. - Updated `nixpkgs` and `flake-utils` to the latest versions. This update syncs the project dependencies with the latest available versions, potentially improving stability and compatibility. * flake building for develop now works * add composer and php to flake.nix * added preinstall to flake.nix and more packages * Added temp buildsteps file File Is to be renamed and moved before merge with main. This file contains a modified version of vagrant/provision.sh specifically made for the nixos development process * moved from mariadb to mysql Mariadb kept crashing my computer and causing long hangs in the terminal, so I swapped to mysql for development * stopped cp of .env.example to .env and fixed access list for mysql Mysql was granting all writes on "*" to both users, mysql uses "%" as a wildcard, I forgot and messed up * updated shell.nix to only run composer update when running * fixed broken minecraft forge egg * before I break vagrant I took back the old configuration file as well * Transitioned most systemd tasks to nixos task configurations and replaced /var/www/pterodactyl to cwd * updated flake.lock with latest nix configuration * everything up to starting wings is working, time to see if I can get web server working as well * added "--rm \" to buildsteps * fixed many issues and working on getting mariadb working properly * fix: mariadb now gets initialized properly * fix: update favicon & password reset (#91) * removed linux info for local development * chore: moved buildsteps to nix folder * removed all unnecesary services in configuration.nix * added docker-compose.yml so that the buildsteps file has something to do * Switching to using mysql in a docker container over inside the nix flake * Fix: Changed from nixos-unstable to nixos-24.05 packages Also added mariadb service back in flake.nix and stop mariadb docker container on nix shutdown * updated flake.lock to match packager version change * fix: buildsteps script not connecting to mariadb server * fix: wings didn't work in cli so made it a docker container and organized docker-compose files * As we include a Dockerfile now, we need to push .dockerignore for smaller images * fix: changed directory for wings docker container from ./nix/pterodacytl/<name> to ./<name> * fix: changed docker-compose paths in flake.nix * fix: wings docker-compose.yml now uses network_mode host * added some resets for mariadb and pterodactyl whenever the app is started(subject to change in the future * updated some nixos specific "Features" and ensure mariadb and wings folders exists * deleted mariadb reset in buildsteps and added 20 seconds for mariadb to start deleting the mariadb folders was causing errors to occur, and not waiting long enough causes database connection errors * added mariadb docker-compose file and added extra stuff to .gitignore * added nix files to dockerignore * added linux development guide * Disable recaptcha on setup * docs: Formatting fixes * docs: Linux doesn't use vagrant anymore * docs: https does not work I really need to proofread my docs before I push them * docs: Added Prereqs for linux local development * docs: we do not need to be told about the docker image twice * deleted configuration.nix and decreased flake.nix clutter * docs(README): notes about local development on linux added info about pterodactyl wings not working in nixos dev environment * fixed some broken markdown formatting * Revert last commit * added one more VERY important step to readme * added a few fixes with systems other than mine * added a run.sh file to easily run nixos * Added a env.nix file because it's configuration is slightly different to normal env * fix(README): use Git for cloning * Updated pterodactyl discord links to pyrodactyl links * added a health check to maria to ensure it's up before continuing * removed benign sql query and added --no-interaction to key:generate * updated more pterodactyl links to pyrodactyl links --------- Co-authored-by: he3als <65787561+he3als@users.noreply.github.com>
Pyrodactyl
Important
Pyrodactyl is under development and pre-release. Some UI elements may appear broken, and there might be some bugs.
Pyrodactyl is the Pterodactyl-based game server management panel that focuses on performance enhancements, a reimagined, accessible interface, and top-tier developer experience. Builds faster, compiles smaller: Pyrodactyl is the world's best Pterodactyl.
Changes from vanilla Pterodactyl
- Smaller bundle sizes: Pyrodactyl is built using Vite, and significant re-architecting of the application means Pyrodactyl's initial download size is over 170 times smaller than leading Pterodactyl forks, and Pelican
- Faster build times: Pyrodactyl completes builds in milliseconds with the power of Turbo. Cold builds with zero cache finish in under 7 seconds.
- Faster loading times: Pyrodactyl's load times are, on average, over 16 times faster than other closed-source Pterodactyl forks and Pelican. Smarter code splitting and chunking means that pages you visit in the panel only load necessary resources on demand. Better caching means that everything is simply snappy.
- More secure: Pyrodactyl's modern architecture means most severe and easily exploitable CVEs simply do not exist. We have also implemented SRI and integrity checks for production builds.
- More accessible: Pyro believes that gaming should be easily available for everyone. Pyrodactyl builds with the latest Web accessibility guidelines in mind. Pyrodactyl is entirely keyboard-navigable, even context menus., and screen-readers are easily compatible.
- More approachable: Pyrodactyl's friendly, approachable interface means that anyone can confidently run a game server with Pyro.
Running Pyrodactyl
Tip
Pyrodactyl now has a Docker image avaliable, which for previous users of the Pterodactyl panel in Docker, should make it easy to migrate.
If you want to setup Pyrodactyl in Docker from scratch, see the
docker-compose.example.yml.
Warning
Nothing is Perfect, that apply's to this panel. If you are migrating your data from pterodactyl, always make sure you take a backup of your pterodactyl database and other relevant data.
Prerequisites
- Latest LTS version of NodeJS
- Git
Linux
Running on Linux
Setting up Pyrodactyl is a breeze on Linux. Follow the official Pterodactyl documentation for your distribution up to the Download Files step.
Instead of downloading the official panel, use the commands below to download Pyrodactyl:
# Make directories
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
# Download and extract panel
git clone https://github.com/pyrohost/pyrodactyl.git /var/www/pterodactyl --depth=2
# Permissions for caches
chmod -R 755 storage/* bootstrap/cache/
# Install dependencies & build panel
npm ci && npm run ship
Proceed with the rest of the installation as you would with the official panel.
Windows
It is not currently possible to run Pyrodactyl in a production environment on Windows due to Wings being incompatible.
Local Development
On Windows
Pyrodactyl is the world's first Pterodactyl panel that can be developed and run locally (with Wings) on Windows machines through Vagrant. Verify you have met the prerequisites above, then follow the steps below.
- Clone the Pyrodactyl panel repository
- Run
npm ito install all the packages necessary. - Run
npm run shipto build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds. - Run
vagrant up. This will setup wings and the necessary services in order to run Pyrodactyl's databases, services, and app. This process could take up to 15 minutes. - Once you receive a message that says "Pyrodactyl is now up and running at localhost:3000", visit that URL in your browser and login with the default credentials provided in your console. It's important that you use localhost to connect to Pyrodactyl! If you use 127.0.0.1, you will run into CORS issues and other issues that will not be fixed.
- Visit https://localhost:3000/admin to provision your first server on Pyrodactyl!
Notes about Local Development on Windows
-
If you have the dev server running (
npm run dev), a development build of the app will be served at localhost:3000 with HMR. If you want to preview a production build of Pyrodactyl, terminate the dev server and runnpm run ship. Once it finishes, it will also be served at localhost:3000. -
If you're running the development server or have built a production version of Pyrodactyl, but visiting localhost:3000 hangs permanently, ensure you don't have any other apps or games open that may interfere with any of the ports in the Vagrantfile. For example, Steam may use port 8080, or another development server may be using a port used by Pyrodactyl. Run
vagrant reloadto re-point ports to your virtual machine after ensuring nothing may be using it, and try again. -
If you receive a message like
Vagrant was unable to mount VirtualBox shared folders, you may need to install the vbguest plugin for VirtualBox withvagrant plugin install vagrant-vbguest. If it's already installed, runvagrant plugin update vagrant-vbguest. -
We recommend setting up Remote Caching via turbo. When you run
npm run shipon your local development machine, its results will be cached and uploaded, allowing you to finish a build on your production server in milliseconds. -
We do not recommend using Hyper-V as your virtualization layer. If your Vagrant installation asks you for a password, this is because you used Hyper-V. The password will be your Windows password.
- We recommend using VMWare Workstation or VirtualBox instead.
On Linux
Prerequisites
- Nix
- Docker
Local Development on Linux is A little different, because vagrant is the buggy software that it is, I couldn't get it to run properly... Anywhere, and on no Distro. So I decided that instead of using Vagrant, I would use nix. This turned out to be a very good idea. Now, using nix the development boots faster because we aren't using an entire vm to host a development server, it also uses way less resources, and is much easier to configure exactly how you want through the nix/buildsteps.sh file.
How to get started
To get started, you obviously need nix on your system, and you need to configure nix to support flake files. Depending on your OS, this can vary
- Clone the Pyrodactyl panel repository
- run
npm ito install all the packages necessary. - Run
npm run shipto build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds. - Copy
.env.nixto.env - Run
nix develop. This will setup wings and the necessary services in order to run Pyrodactyl's databases, services, and app. This process could take up to 15 minutes. - Once you receive a message that says "Pyrodactyl is now up and running at localhost:8000", visit that URL in your browser and login with the default credentials provided in your console. It's important that you use localhost to connect to Pyrodactyl! If you use 127.0.0.1, you will run into CORS issues and other issues that will not be fixed.
- Visit http://localhost:8000/admin to provision your first server on Pyrodactyl!
Notes about Local Development on Linux
Due to a slight bug or two, pterodactyl wings does not as present work properly using the nixos development environment
This will hopefully be fixed later, but for now just be warned
Star History
License
Pterodactyl® Copyright © 2015 - 2022 Dane Everitt and contributors.
Pyrodactyl™ Copyright © 2024 Pyro Host Inc. and contributors.
AGPL-3.0-or-later



