Introduction
"Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file."
This is Part 40 of the "Open Source Project of the Day" series. Today we look at copyparty (GitHub).
Need a file server on a LAN or a temporary machine without installing Nginx, Samba, or a pile of dependencies? copyparty packs a full file server into one file: run copyparty-sfx.py (a self-extracting archive plus a small Python script) or copyparty.pyz (a Python zipapp) on any machine with Python, with zero required dependencies (all deps are optional). It supports accelerated resumable uploads, dedup, WebDAV / SFTP / FTP / TFTP, zeroconf, media indexing, thumbnails, and browser-based cut/paste/rename/batch rename, RSS/OPDS, media playback, Markdown preview, and directory download as ZIP/TAR — and even “download while still uploading” (race the beam). It fits ad-hoc sharing, LAN storage, Raspberry Pi/NAS, or a USB stick.
Why this project?
- 📦 Single-file deployment — One .py or .pyz; no
pip install, just Python - ⚡ Resumable uploads/downloads — Large files and flaky networks are handled better
- 🔄 Dedup — Same content stored once, saving space
- 🌐 Multi-protocol — HTTP(S), WebDAV, SFTP, FTP(S), TFTP, SMB/CIFS
- 🖼️ Media and thumbnails — Indexing, thumbnails, built-in player and playlists
- 📂 Manage in the browser — Cut, paste, rename, batch rename, ZIP/TAR pack, Markdown preview
What You'll Learn
- What copyparty is and its “one file, no deps” design
- Ways to run it: sfx, zipapp, Docker, Windows EXE, mobile
- Core features: resumable transfers, dedup, multi-protocol, zeroconf, media and thumbnails
- Browser features and “race the beam”
- Quick start and configuration ideas
- How it compares to other lightweight file servers
Prerequisites
- Python installed (version 2 or 3 per project docs)
- Basic idea of “file server” and “WebDAV” helps
Project Background
Project Introduction
copyparty is a portable file server whose main idea is “all in one file”: a single executable (self-extracting sfx or Python zipapp) provides full file-serving with no mandatory external dependencies (optional deps for extra features).
Problems it solves:
- You need file sharing on a LAN or ad-hoc setup without complex services or many dependencies
- You want resumable uploads, dedup, and multiple protocols (WebDAV, FTP, SFTP, etc.) in a lightweight stack
- You want something that runs on Raspberry Pi, NAS, USB stick, or any Python-capable environment with no install step
- You want to manage files in the browser (upload, download, rename, pack, preview)
Target users:
- Individuals or small teams doing LAN or ad-hoc file sharing
- Users who like “single-file portable” tools
- Developers who want one service exposing WebDAV/FTP/SFTP
- People running a file server on embedded or resource-limited devices
Author and Resources
- Author/Repo: 9001 (GitHub)
- Mirrors: Codeberg, GitLab
- Site and downloads: copyparty.eu
Project Data
- ⭐ GitHub Stars: ~43k+
- 🍴 Forks: 0 (repo policy; development also on mirrors)
- 📦 Releases: GitHub Releases and copyparty.eu (sfx, zipapp, English-only build, etc.)
- 📄 License: Open source (see repo)
- 🌐 Docs: copyparty.eu, CLI helptext
- 🎬 Demo: Read-only a.ocv.me/pub/demo, feature showcase video
Stack: Python (2 or 3 per version), mostly stdlib; optional deps. Runs as zipapp, self-extracting sfx, Docker, Windows EXE, Android/iOS, etc.
Main Features
Core Purpose
copyparty’s job is to start a full-featured file server from a single file on any Python-capable system, providing:
- HTTP(S) web UI — Browse, upload, download, cut/paste, rename, delete, batch rename, pack directories (ZIP/TAR)
- Resumable uploads and downloads — Better for large files and unstable networks
- Dedup — Same content stored once
- Multi-protocol — WebDAV, SFTP, FTP(S), TFTP, SMB/CIFS on the same storage
- zeroconf — Auto-discovery on the LAN (e.g. mDNS)
- Media and index — Media indexing, thumbnails, built-in player and playlists
- Extras — RSS, OPDS (e-books), Markdown preview, etc.
Use Cases
- Ad-hoc LAN sharing — Move files between devices in a room or at home without USB or cloud
- Dev/test — Quick WebDAV/FTP server on your machine or VM for scripts and tools
- Raspberry Pi / NAS — Copy one file and run; use zeroconf for discovery
- USB / mobile — Run on Android, iOS, or Windows where Python is available
- Read-only demo — Mount read-only and share for browsing (e.g. Demo)
Quick Start
Requirement: Python installed (see project for version).
Option 1: Self-extracting sfx (recommended)
Download copyparty-sfx.py from copyparty.eu or GitHub Releases, then:
chmod +x copyparty-sfx.py
./copyparty-sfx.py
# Or specify share path and options
./copyparty-sfx.py -e2 /path/to/shareOpen the URL shown (e.g. http://0.0.0.0:3923) in a browser. More options: Quickstart, CLI.
Option 2: Python zipapp (.pyz)
Download copyparty.pyz (or copyparty-en.pyz for English-only), then:
python3 copyparty.pyz -e2 /path/to/shareOption 3: Docker / Windows EXE / mobile
- Docker: see scripts/docker in the repo
- Windows EXE, Android, iOS: see GitHub and copyparty.eu
Core Features
- Single file, no required deps — sfx or zipapp runs as-is; all extra deps are optional
- Accelerated resumable transfers — Both upload and download can resume
- Dedup — One copy per unique content
- Multi-protocol — HTTP(S), WebDAV, SFTP, FTP(S), TFTP, SMB/CIFS
- zeroconf — LAN discovery (when enabled)
- Media index and thumbnails — Auto index, thumbnails, player, playlists
- Browser management — Cut/paste, rename, delete, batch rename, RSS, OPDS, Markdown, ZIP/TAR pack
- “Race the beam” — Download while file is still uploading
- Read-only and permissions — Configurable read-only shares and access control (see CLI/docs)
- Multi-platform — Windows EXE, Docker, Android, iOS, etc.
Project Advantages
| Aspect | copyparty | Nginx static/WebDAV | Cloud/NAS apps |
|---|---|---|---|
| Deploy | One file + Python | Install and configure | Account or device |
| Dependencies | None required | Web server, etc. | Vendor service |
| Resumable | ✅ Built-in | Configure yourself | Varies |
| Dedup | ✅ Built-in | No | Some products |
| Multi-protocol | WebDAV/FTP/SFTP/… | Often multiple apps | Varies |
| Portable | ✅ Single file | No | No |
| Media/thumbs | ✅ Built-in | Extra solution | Varies |
Why choose copyparty?
- One file, zero deps — good for temporary or “just run something” setups
- Resumable and dedup out of the box — friendly to large and duplicate files
- One service for Web, WebDAV, FTP, SFTP, etc.
- Manage everything in the browser (or use any protocol client)
- Official demo and video make it easy to try
Project Deep Dive
Architecture and Run Modes
- sfx (self-extracting) — File contains a tar.gz and a small Python script; extracts and starts the server when run.
- zipapp (.pyz) — A zipapp-format zip executed by Python; no extract step.
- Process — Single process serves HTTP(S), WebDAV, etc.; SFTP/FTP/TFTP/SMB can be enabled depending on build/packaging.
Flow: client → HTTP/WebDAV/FTP → copyparty → local filesystem (with optional dedup, thumbnails, index) → response.
Configuration
- Command-line — Share path, port, read-only, auth, zeroconf, protocol toggles, etc.
- Full options: copyparty.eu/cli, GitHub Quickstart.
Security Notes
- Default may be no authentication; fine for LAN or temporary use, but avoid exposing to the internet without reading the docs.
- For production or public use, check auth, HTTPS, and bind address in the documentation.
Links and Resources
Official
- 🌟 GitHub: https://github.com/9001/copyparty
- 🌐 Site and downloads: https://copyparty.eu/
- 📚 Quickstart: GitHub#quickstart
- 📚 CLI: https://copyparty.eu/cli
- 🎬 Read-only demo: https://a.ocv.me/pub/demo/
- 🎬 Showcase video: YouTube
- 🐛 Issues: GitHub Issues
Mirrors and Variants
- Codeberg: codeberg.org/9001/copyparty
- GitLab: gitlab.com/9001/copyparty
- Beta: copyparty.eu/beta/
Who It’s For
- Anyone who needs LAN or ad-hoc file sharing without complex setup
- Users who like single-file, portable tools
- Developers who want WebDAV/FTP/SFTP from one service
- People running a lightweight file server on Raspberry Pi, NAS, USB, or mobile
Visit my homepage for more guides and projects.