# Standalone SFTP Server | Pterodactyl
Pterodactyl is an open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.

# # Standalone SFTP Server

This Software is Abandoned

This documentation is for abandoned software which does not recieve any security updates or support from the community. This documentation has been left accessible for historial reasons.

You should be installing and using Wings in production environments with Pterodactyl Panel 1.0.

WARNING

Standalone SFTP support was introduced in `Panel@v0.7.11` and `Daemon@v0.6.8` and will not work with prior versions.

Pterodactyl now ships with the option to use a standalone SFTP server
(opens new window) 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.

    {
      ...
      "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`).

    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`
(opens new window) 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.

    ./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
(opens new window) 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.

    [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.

    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.

Help us improve this page.
(opens new window)