Installing Elytra (Native)
How to install and setup Elytra on Linux
Supported Operating Systems
There is a very high chance it will work on more than these. These are the ones that are known working and officially supported though.
| OS | Version |
|---|---|
| Fedora | 40-42 |
| Ubuntu | 24.04 |
| Debian | 13 |
| Rocky | 10 |
| RHEL | 10 |
| Arch | Rolling |
Prerequisites
Installing Prequisites
sudo dnf update
sudo dnf install curl tar
sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo apt-get update
sudo apt-get install curl tar ca-certificates
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo apt-get update
sudo apt-get install curl tar ca-certificates
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo dnf update
sudo dnf install curl tar
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo yum update
sudo yum install curl tar
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo pacman -Syu
sudo pacman -S curl tar dockerNow, enable the docker engine service to start on boot
sudo systemctl enable --now dockerInstalling Elytra
Now we need to install elytra. This will be the program communicating with your Pyrodactyl Panel.
Download Executable
curl -L -o /usr/local/bin/elytra https://github.com/pyrohost/elytra/releases/latest/download/elytra_linux_amd64
sudo chmod u+x /usr/local/bin/elytra curl -L -o /usr/local/bin/elytra https://github.com/pyrohost/elytra/releases/latest/download/elytra_linux_arm64
sudo chmod u+x /usr/local/bin/elytraInstalling Rustic
Rustic is not required to run Elytra. You do however lose out on Deduplicated and encrypted backups. The Pyrodactyl team heavily recommends you install it.
To install rustic, you have the choice of building from source, or downloading the latest pre-built binary. The quickest way is to use the pre-built binaries.
mkdir -p /tmp/rustic-install
curl -L https://github.com/rustic-rs/rustic/releases/download/v0.10.0/rustic-v0.10.0-x86_64-unknown-linux-musl.tar.gz | tar -xz -C /tmp/rustic-install
sudo mv /tmp/rustic-install/rustic /usr/local/bin/ mkdir -p /tmp/rustic-install
curl -L https://github.com/rustic-rs/rustic/releases/download/v0.10.0/rustic-v0.10.0-aarch64-unknown-linux-musl.tar.gz | tar -xz -C /tmp/rustic-install
sudo mv /tmp/rustic-install/rustic /usr/local/bin/Creating SSL Certificates
Using SSL is not required to run Elytra, but if you checked Use SSL Connection when adding the node to your panel, you will need to do this step to enable SSL.
It is recommended that you do this step to ensure connection security between the panel and the node.
Before continuing to create an SSL certificate, ensure that you have created an A Record for the FDQN you wish to use for the node, pointed to the IP of the machine on which the node will be running.
sudo dnf update -y
sudo dnf install certbot -y
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devsudo apt update
sudo apt install certbot -y
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devsudo apt update
sudo apt install certbot -y
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devsudo dnf install epel-release -y
sudo dnf install certbot -y
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devsudo dnf install epel-release -y
sudo dnf install certbot -y
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devsudo pacman -Syu
sudo pacman -S certbot
# Obtain a certificate (Replace 'node.pyrodactyl.dev' with your own FDQN)
sudo certbot certonly --standalone -d node.pyrodactyl.devSetting up Systemd Task for Elytra
sudo nano /etc/systemd/system/elytra.serviceand paste
[Unit]
Description=Pyrodactyl Elytra Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/elytra
LimitNOFILE=4096
PIDFile=/var/run/elytra/daemon.pid
ExecStart=/usr/local/bin/elytra
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.targetNow save and exit that file.
Setup Elytra
To setup Elytra, you must first get your config. This is done by first, adding a new node in your Pyrodactyl Panel.
Setup your Elytra
First thing you need to do, is to get to your admin panel.
This is located at https://<Your-Domain.com>/admin
Setting up Your Location
after visiting this page, you should see a menu on the left side of the screen called Locations
Click on that to make your first location

Once on this page, click "Create New" in the top right corner Name it whatever you want. This name doesn't matter that much.
Create Your Node
Once your Location is created. Click on Nodes right beneath the locations button.

Click "Create New"
and you will be prompted with a screen with lots of buttons and input fields. The only values you will need to change are
-
Name
Give it a unique name that you can identify this node by -
Public FQDN
If your panel is https secured is has to be a domain name, and vise versa, if it's http, it has to be an ip address.This address should be The address that people will use when connecting to your node. not panel to node -
Total Memory
How much memory your Server hasThis is not a hard value. The panel will only get mad at you, not stop you! -
Memory Over-Allocation
How much percent over your Total Memory you want to show up as "Available" -
Total Disk Space
How much disk space you have to useThis is not a hard value. The panel will only get mad at you, not stop you! -
Disk Over-Allocation How much percent over your Total Disk you want to show up as "Available"
If your going to run Elytra behind a proxy Set Behind proxy to true
Click Create on your node, and it might take a second. But then it should load into the nodes page.
Configuring Elytra
Click the Configuration Button located at the top of the page

Rather than anything complex, you can press the auto deploy button on the side of the page, and copy the command that pops out which should look a little something like this
cd /etc/elytra && sudo elytra configure --panel-url http://panel.pyrodactyl.dev --token pyro_XWsMcVoJkoMCWn9COtSsUTlbRSevBbLJ5HEMKZQjnN5 --node 1Test your service.
If you want to run Elytra just to test it. You can do that by running this command anywhere on your host
elytraOnce you've got your stuff working. your free to go
Enable Elytra Service
sudo systemctl enable --now elytraTroubleshooting
If Elytra refuses to start because it cannot create the pyrodactyl system user (you will see logs mentioning failed to create pyrodactyl system user error=exit status 4), you can manually provision the account. Confirm that the user is missing before running the command above (e.g., sudo getent passwd pyrodactyl).
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/sbin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylRetry with sudo if you are prompted for permissions again; the service runs as root before dropping privileges.
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/sbin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylUbuntu keeps nologin under /usr/sbin, matching what the service unit expects.
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/sbin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylUse the same path as Ubuntu since Debian shares the same filesystem layout for administrative binaries.
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/sbin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylRed Hat derivatives keep nologin in /usr/sbin, so this mirrors the Fedora command exactly.
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/sbin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylIf SELinux is enforcing, rerun sudo restorecon /etc/passwd after creating the user to ensure the context is correct.
sudo getent passwd pyrodactyl || sudo useradd --system --create-home --shell /usr/bin/nologin --comment "Elytra/Pterodactyl system user" pyrodactylArch places nologin in /usr/bin, so point the command there to keep systemd happy.