C

copyparty

SHA-256
44.8k stars·File Management·SHA-256 checksum verified

copyparty turns any device into a file server with resumable uploads/downloads using any web browser. Supports HTTP, WebDAV, SFTP, FTP, TFTP, SMB. Only requires Python (2 or 3).

Turn any device into a multi-protocol file server with just Python.

Core Features

  • Supports HTTP/WebDAV/SFTP/FTP/TFTP/SMB protocols
  • Resumable uploads/downloads via any browser
  • Android app and iOS shortcuts available
  • Built-in file manager, search, thumbnails, media player
  • Share links, RSS feeds, OPDS for e-book readers

What It Can't Do

  • •SFTP is slower (~700MB/s); SMB server is unsafe, not recommended for WAN; no built-in HTTPS, use reverse proxy for encryption.

Use Cases

  • Home network file sharing
  • Ad-hoc file transfer without client software
  • Server file management with multi-protocol access

Detailed Introduction

copyparty is a lightweight, multi-protocol file server that runs on any device with Python (2 or 3). It supports HTTP, WebDAV, SFTP, FTP, TFTP, and SMB, allowing you to share files from a Raspberry Pi, old laptop, or cloud server. Key features include resumable uploads/downloads, a built-in web UI with file management, thumbnails, media player, search, zip/tar downloads, RSS feeds, OPDS for e-readers, and even an Android app and iOS shortcuts. Configuration is minimal — just run a single Python script. It also offers upload deduplication, event hooks, and per-folder permissions.

Troubleshooting & FAQ (1)

Troubleshooting
How can I find which signal is killing copyparty when it exits silently with no traceback?

Run copyparty under strace to capture signal delivery, including uncatchable signals such as SIGKILL:

strace -Tttyyvfesignal -o /home/yourname/strace.strace python3 copyparty-sfx.py -c your.conf

Replace the configuration path/arguments with your normal copyparty command. After the process disappears, inspect the log:

tail -n 100 /home/yourname/strace.strace
grep -E 'SIG(KILL|TERM|INT|HUP|QUIT)' /home/yourname/strace.strace | tail -n 50

The final signal entry shows the terminating signal and may include the sender PID. Python cannot log SIGKILL, so a silent exit with no traceback is expected.

If the whole Raspberry Pi reboots, or no terminating signal is recorded, check external causes first: use a sufficiently powerful official PSU, externally powered USB drives/hubs, and replace suspect USB cables. After an unexpected reboot, inspect the previous kernel log with:

journalctl -b -1 -k --no-pager | tail -n 100
vcgencmd get_throttled

The shutdown-only ProgrammingError: Recursive use of cursors not allowed message is cosmetic and does not cause the exit.

GitHub Issue #1507

Tags

file-serverwebdavsftpftpsmbpythonresumable-uploadself-hosted

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Download copyparty-sfx.py from GitHub Releases

4

Step 2: Run python3 copyparty-sfx.py in terminal

5

Step 3: Open the displayed URL in browser

Install Guide
  1. Step 1: Download copyparty-sfx.py from GitHub Releases
  2. Step 2: Run python3 copyparty-sfx.py in terminal
  3. Step 3: Open the displayed URL in browser
File Integrity

SHA-256 checksum verified

Checksum extracted from GitHub official Release page

SHA256 Checksum

c3b6a32123c8b3df782cf9a35c36bdb91213ad332f17e3144ec5c9f376560dd0

This checksum is extracted from the GitHub Release page. Verify file integrity after download.

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Delete the downloaded file and any configuration; no system traces.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseMIT
Last Updated2026-10-15 07:45:11
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects