One of the mainstays of self-hosting apps is a solid file server, whether on a purpose-built NAS or a DIY server. But there are all kinds of other situations in which you might want a file-sharing tool or a way to browse the file structure of another device that doesn't need a centralized system, and often, it's tricky to find a tool that will do what you need. Often, they're bloated, require subscriptions, or are more complex than necessary to set up. Enter Copyparty, a one-file, one-language file server that's installed in seconds, and gives you local access to the device it's installed on from any device with a web browser on your home network.
Copyparty is an epic open-source file server
Written in Python, so it works on (almost) every device and any web browser
Copyparty is written completely in Python, so it works on Linux, macOS, Windows, Android, FreeBSD, and Arm-based devices like the Raspberry Pi. Don't let the simplicity of the one-step install fool you into thinking this is a simple file server, because it's got resumable uploads, granular user permissions, tons of customization and control, batch renaming, and inbuilt video and music players.
Some of the things that Copyparty can do:
- WebDAV support on modern browsers
- Upload, navigate, view, play, or listen to your files straight from the server (including on-demand transcoding if necessary)
- Hotkeys for common tasks
- Download all as a ZIP easily
- View and edit markdown files (with two editors to choose from)
- Batch renaming of files
- Drag and drop uploading with speed, with inbuild deduplication
- View your files from any web browser and manage them
- User accounts and permissions structure
- Upload files from ShareX
I'm sure I'm missing a few things, because there's a ton of functionality here to use.
Why Copyparty stands out from the crowd
Okay, so besides the developer saying they coded this all "on my phone, in my spare time, with Termux, Tmux and Vim," which is cool enough. You can set up password-protected links for sharing, connect to a Cloudflare Tunnel for remote access anywhere, command-line uploaders coupled with drag-and-drop ease, and RSS synchronization.
There's an Android app to help send files or links (including anything the Android camera takes a picture of) to the Copyparty server. It can be mounted as a local filesystem so you can use it from Windows Explorer, macOS Finder, etc, password hashing for secrets used in config files and robust user controls. Docker files for the app, or using Authelia (or Authentik) with Traefik for reverse proxy access with authentication, and a how-to for using it with Portainer. Plus guides for how to run it as a systemd service or other on-boot services so you don't have to run the Python file each time.
Copyparty
Copyparty is up and running in minutes
And gives you full file system access
There are many ways you can install Copyparty depending on the device you're using, although the easiest is downloading the Python self-extractor with the server running in seconds (I should note, the Python is all plaintext, so there's no obfuscation of what it's doing). But there are install packages for Alpine, Debian, Fedora, FreeBSD, macOS, Windows, and you can install it on Android through Termux. I've also got it running on my Synology NAS because why not, but it's also easier to move files around that aren't easily shown by DSM.
Once it's running, installing cloudflared on the device running Copyparty and starting it with the following gives you a URL for access anywhere:
cloudflared tunnel --url http://127.0.0.1:3923
With a little bit more setup, you can get a permanent Tunnel with your domain name, and easily get to your file system from wherever, and on whatever device you have handy. And I mean whatever device, because even ancient web browsers can browse, download, and upload files, even if they can't use the web players or the other advanced features.
Cloudflare Tunnels
It's perfect to use on gaming handhelds
I love my Steam Deck, but what I don't love is dealing with files through desktop mode. Plus, it always needs a docking station because that single USB-C port is never enough for a keyboard, mouse, and power. But by putting Copyparty on the Steam Deck, now I can browse the file structure from my desktop's browser, and upload files with ease.
It's fantastic, whether I'm adding mp3 or mkv files, so I've got entertainment when I've not got an Internet connection, or clearing out the Downloads folder of old files. And if you love Emudeck or any other emulator, it's absolutely the easiest way I've found for managing ROM files. It's fast too, with the network upload taking less time than a USB transfer, and without having to find a cable.
- Dimensions
- 11.7 x 4.6 x 1.9 inches (298 x 117 x 49mm)
- Weight
- 1.48 pounds (669 grams)
Copyparty might just be the file server you've been looking for
I'm still digging into the advanced features in Copyparty, like being able to on-the-fly transcode audio files to opus or mp3 while downloading, but I've seen more than enough to know this is staying on my Steam Deck, and I might even use it for managing virtual machines to bypass all the annoying setup for shared clipboards. It's fast for search, can create textfiles and markdown, and has zeroconf via multicast dns and ssdp. I think my next step is to set up a different reverse proxy, because I don't like running Cloudflare Tunnels long-term, and the dev has sample configs for Apache, Caddy, HAProxy, Lighttpd, Nginx, and Traefik ready to go. Oh, and it's got a metrics endpoint for Grafana or Prometheus, in case you want to bring stats into your dashboard.
