# Migrating to Wings

This guide is for people looking to migrate from the old Node.JS daemon to Wings. Please see the install guide if you are trying to install Wings for the first time on a new node.

Panel Version Requirement

You must be running Pterodactyl Panel 1.X in order to use Wings.

You'll have a brief offline period as you perform this process, however no running game processes will be affected. Plus, chances are your Panel will be offline (or in maintenance mode) during this so your users should not notice anything out of the ordinary.

# Install Wings

The first step for installing the daemon is to make sure we have the required directory structure setup. To do so, run the commands below which will create the base directory and download the wings executable.

mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
chmod u+x /usr/local/bin/wings

# Copy New Configuration File

Once you have installed Wings, you'll need to copy over a new configuration file from the Panel. This file is in a new format, and should be easier for you to manage and edit in the future.

Simply copy and paste the code block and paste it into a file called config.yml within the /etc/pterodactyl directory and save it.

WARNING

Please note that any modifications you previously made to the configuration will be lost with this. If you have modifications to our default settings, the best option is to start Wings once with the copied configuration which will then populate all of the other configuration settings.

From there you can make any adjustments as necessary.

# Remove Old Daemon

Now that Wings is installed, we need to remove all of the old daemon code from the server since it is not being used anymore. To do this, simply execute the following commands — assuming your old daemon is in the default /srv/daemon directory.

# Stop the old daemon.
systemctl stop wings

# Delete the entire directory. There is nothing stored in here that we actually need for the
# purposes of this migration. Remember, server data is stored in /srv/daemon-data.
rm -rf /srv/daemon

# Optionally, remove NodeJS from your system if it was not used for anything else.
apt -y remove nodejs # or: yum remove nodejs

# Remove Standalone SFTP

If you've used the standalone SFTP server with the old daemon, we need to remove it's systemd service as well, as it's no longer needed. You can do so using the following commands.

# stop and disable the standalone sftp
systemctl disable --now pterosftp

# delete the systemd service
rm /etc/systemd/system/pterosftp.service

# Daemonize Wings

You'll then need to edit your existing systemd service file for Wings to point to the new control software. To do this, open /etc/systemd/system/wings.service and replace the entire contents of the file with the following:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=600

[Install]
WantedBy=multi-user.target

Then, start wings.

systemctl daemon-reload
systemctl enable --now wings

What if Wings doesn't start?

If you encounter issues starting Wings at this point, run the following command to start Wings directly and check for any specific error output.

sudo wings --debug