copyparty: Your All-in-One Portable File Server Solution

Summary
copyparty is a versatile, portable file server written in Python, designed to transform almost any device into a powerful file-sharing hub. It offers accelerated resumable uploads, deduplication, and extensive protocol support including WebDAV, FTP, and TFTP. This all-in-one solution comes with media indexing, advanced browser UI, and requires no external dependencies, making it incredibly easy to deploy.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
copyparty is an incredibly versatile and portable file server, meticulously crafted in Python. Designed to transform almost any device into a robust file-sharing hub, it stands out with its comprehensive feature set and minimal dependencies. Whether you need accelerated resumable uploads, intelligent deduplication, or support for various protocols like WebDAV, FTP, and TFTP, copyparty delivers a powerful, all-in-one solution. It even includes a media indexer and advanced thumbnail generation, all packed into a single, dependency-free file.
Explore the project on GitHub: 9001/copyparty
Installation
Getting started with copyparty is straightforward, thanks to its portable nature. Here are some common ways to install and run it:
Quickstart (Recommended)
The easiest way to run copyparty is by using the self-extracting Python script:
python copyparty-sfx.py
You can download copyparty-sfx.py
from the latest releases on GitHub.
Other Installation Methods
- PyPI: If you have Python installed, you can use pip:
python3 -m pip install --user -U copyparty
- Windows Executable: For Windows users without Python,
copyparty.exe
is available: - Arch Linux: Install via pacman:
pacman -S copyparty
- Nix: Use Nix profile install for flake-enabled systems:
nix profile install github:9001/copyparty
- Homebrew (macOS):
brew install copyparty ffmpeg
Optional Dependencies
To unlock all features, such as advanced media indexing and thumbnail generation, consider installing Pillow
and FFmpeg
. For example, on Debian:
apt install --no-install-recommends python3-pil ffmpeg
Examples
copyparty's flexibility allows for a wide range of configurations. Here are a few practical examples to get you started:
- Allow anyone to download or upload files into the current folder:
python copyparty-sfx.py
To also enable searching and music indexing:
python copyparty-sfx.py -e2dsa -e2ts
- Anyone can upload, but nobody can see any files (even the uploader):
python copyparty-sfx.py -e2dsa -v .::w
Block uploads if less than 4 GiB free disk space:
python copyparty-sfx.py -e2dsa -v .::w --df 4
- Anyone can upload and receive "secret" links for each upload:
python copyparty-sfx.py -e2dsa -v .::wG:c,fk=8
- Read-only music server with
kevin
having read-write access to an/inc
folder:python copyparty-sfx.py -v /mnt/nas/music:/music:r -e2dsa -e2ts --no-robots --force-js --theme 2 -a kevin:okgo -v /mnt/nas/inc:/inc:rw,kevin
Why Use copyparty?
copyparty is designed with a unique philosophy: "do all the things, and do an okay job," providing a quick, drop-in service with a wealth of features. Its core strengths include:
- Extreme Portability: Runs on virtually any device with Python, from Windows and Linux to macOS, Android, and iOS, with minimal dependencies.
- Rich Feature Set: Beyond basic file serving, it offers advanced capabilities like accelerated resumable uploads (with no filesize limit), folder downloads as ZIP/TAR, a full-fledged browser-based UI with media players, image galleries, text/markdown viewers, and powerful search.
- Multi-Protocol Support: Integrates seamlessly with WebDAV, FTP, TFTP, and even experimental SMB/CIFS, making it accessible from various clients and operating systems.
- Security and Control: Provides granular access control with per-folder, per-user permissions, IP-based authentication, password hashing, and options for hiding from search engines.
- Performance: Optimized for high-speed transfers, capable of
8 GiB/s
download and1 GiB/s
upload, with various tweaks available for specific environments. - Hackable and Adaptable: No build steps required, allowing for easy modification of JS/Python code, and extensive configuration options via arguments or YAML files.
copyparty is an ideal solution for anyone needing a flexible, powerful, and easy-to-deploy file server for personal use, small teams, or even as an emergency data transfer tool.
Links
- GitHub Repository: 9001/copyparty
- Read-Only Demo Server: https://a.ocv.me/pub/demo/
- Android App (PartyUP!): Get it on F-Droid
- Discord Server: Join the community