> For the complete documentation index, see [llms.txt](https://docs.reviactyl.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.reviactyl.app/project/agent/migrating-from-wings.md).

# Migrating From Wings

This guide is for people looking to migrate from the Pterodactyl Wings to Reviactyl Agent. Please see the install guide if you are trying to install Agent for the first time on a new node.

{% hint style="warning" %}
You should only install Agent if you are running **Reviactyl v26.x**.

For older versions like **v2.2.x**, staying on Wings is sufficient.
{% endhint %}

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.

{% stepper %}
{% step %}

## Installing Agent

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

```bash
sudo mkdir -p /etc/reviactyl
curl -L -o /usr/local/bin/agent "https://github.com/reviactyl/agent/releases/latest/download/agent_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/agent
```

{% endstep %}

{% step %}

## Copy the Configuration Files

```bash
cp /etc/pterodactyl/config.yml /etc/reviactyl/config.yml
```

{% endstep %}

{% step %}

## Remove Pterodactyl Wings

Now that Agent is installed, we need to remove all of the old wings code from the server since it is not being used anymore.

```bash
# Disable old Wings Service
systemctl disable --now wings

# Remove the old Wings Service
rm /etc/systemd/system/wings.service

# Remove the old wings configuration
rm /etc/pterodactyl/config.yml
```

{% endstep %}

{% step %}

## Daemonizing Agent

Running Agent in the background is a simple task, just make sure that it runs without errors before doing this. Place the contents below in a file called `agent.service` in the `/etc/systemd/system` directory.

{% code title="agent.service" %}

```ini
[Unit]
Description=Reviactyl Agent
After=docker.service
Requires=docker.service
PartOf=docker.service

[Service]
User=root
WorkingDirectory=/etc/reviactyl
LimitNOFILE=4096
PIDFile=/var/run/agent/daemon.pid
ExecStart=/usr/local/bin/agent
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
```

{% endcode %}

Then, run the commands below to reload systemd and start Agent.

```bash
sudo systemctl enable --now agent
```

{% endstep %}

{% step %}

## Restart Process

Finally, restart the agent process. Your running servers will not be affected and any open connections to the instance will re-connect automatically.

```bash
systemctl restart agent
```

*Told ya! It's easy and straight forward*!
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.reviactyl.app/project/agent/migrating-from-wings.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
