Home

Awesome

ftpd

FTP Server for 3DS/Switch/Linux.

Features

Dear ImGui

ftpd uses Dear ImGui as its graphical backend.

Standard Dear ImGui controller inputs are supported.

Latest Builds

NDS: https://mtheall.com/~mtheall/ftpd.nds

CIA: https://mtheall.com/~mtheall/ftpd.cia

3DSX: https://mtheall.com/~mtheall/ftpd.3dsx

NRO: https://mtheall.com/~mtheall/ftpd.nro

CIA QR Code

ftpd.cia

Classic Builds

Classic builds use a console instead of Dear ImGui.

CIA: https://mtheall.com/~mtheall/ftpd-classic.cia

3DSX: https://mtheall.com/~mtheall/ftpd-classic.3dsx

NRO: https://mtheall.com/~mtheall/ftpd-classic.nro

CIA QR Code

ftpd-classic.cia

Build and install

You must set up the development environment.

NDS

The following pacman packages are required to build nds/ftpd.nds:

devkitARM
dswifi
libfat-nds
libnds

They are available as part of the nds-dev meta-package.

3DSX

The following pacman packages are required to build 3ds/ftpd.3dsx:

3dstools
devkitARM
libctru

They are available as part of the 3ds-dev meta-package.

Build 3ds/ftpd.3dsx:

make 3dsx

NRO

The following pacman packages are required to build switch/ftpd.nro:

devkitA64
libnx
switch-tools
switch-libzstd

The first three are available as part of the switch-dev meta-package. Additionally, ImageMagick is required for converting assets.

Build switch/ftpd.nro:

make nro

Supported Commands

Planned Commands

SITE commands

Command
SITE HELPShow help
SITE USER <NAME>Set username
SITE PASS <PASS>Set password
SITE PORT <PORT>Set port
SITE HOST <HOSTNAME>Set hostname<sup>1</sup>
SITE DEFLATE [0-9]Set deflate level
SITE MTIME [0|1]Set getMTime<sup>2</sup>
SITE SAVESave config

<sup>1</sup>mDNS hostname not available on NDS

<sup>2</sup>getMTime only on 3DS. Enabling will give timestamps at the expense of slow listings.