---
title: Standalone SFTP Server
description: Guide for setting up standalone SFTP server for Pterodactyl Daemon 0.6 (Legacy)
---

<Callout type="error" title="This Software is Abandoned">
This documentation is for **abandoned software** which does not receive any security updates or support
from the community. This documentation has been left accessible for historical reasons.

You should be installing and using [Wings](/wings/installing) in production environments with
[Pterodactyl Panel 1.0](/panel/getting-started).
</Callout>

<Callout type="warn">
Standalone SFTP support was introduced in `Panel@v0.7.11` and `Daemon@v0.6.8` and will not work with prior versions.
</Callout>

Pterodactyl now ships with the option to use a [standalone SFTP server](https://github.com/pterodactyl/sftp-server)
rather than using the one that was built into the Daemon. This provides better compatibility with SFTP clients, improved
transfer speeds, and a more native approach to file handling and server operation.

Because this functionality is new, we've decided to make it an opt-in process, rather than an opt-out process. This page
will cover how to setup your standalone SFTP server.

## Disable Daemon's Server

To disable the Daemon SFTP server, you only need to add `sftp.enabled=false` to your Daemon's `core.json` file.

```json
{
  ...
  "sftp": {
    ...
    "ip": "0.0.0.0",
    "enabled": false,
    "port": 2022,
    ...
  },
  ...
}
```

Once you've done that, restarting the Daemon will apply the change and not boot the built-in server.

## Run the Standalone Server

To download the standalone server, execute the command below in your Daemon's base directory (generally `/srv/daemon`).

```bash
curl -Lo sftp-server https://github.com/pterodactyl/sftp-server/releases/download/v1.0.5/sftp-server
chmod +x sftp-server
```

Excellent, now you've got the server binary. Because we've written this server using [`go`](https://golang.org) there
are no additional dependencies you need to install.

### Start the Server

Finally, start the SFTP server so that you can then use it to access your files.

```bash
./sftp-server
```

By default, this will start the SFTP server on the old port of `2022`. If you want to use a different port it can be
specified by passing the `--port` flag. For more advanced usage, please refer to the [GitHub README](https://github.com/pterodactyl/sftp-server/tree/release/v1.0.4#running)
which includes all of the flags and their default values.

## Daemonize Server

Chances are you'll want to daemonize the SFTP server using something like `systemd` so that it will run in the
background. Place the contents below in a file called `pterosftp.service` in the `/etc/systemd/system` directory.

```text
[Unit]
Description=Pterodactyl Standalone SFTP Server
After=wings.service

[Service]
User=root
WorkingDirectory=/srv/daemon
LimitNOFILE=4096
PIDFile=/var/run/wings/sftp.pid
ExecStart=/srv/daemon/sftp-server
Restart=on-failure
StartLimitInterval=600

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

Then, run the command below to enable it in systemd and start the SFTP server.

```bash
systemctl enable --now pterosftp
```

### Customizing Startup

If you're trying to pass additional arguments to the server when starting it using SystemD you'll want to modify
the `ExecStart` line. Something like `ExecStart=/srv/daemon/sftp-server --port 2022` for example.
