OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

copyparty

Portable Python file server with resumable browser uploads, WebDAV, SFTP, FTP and SMB

Visit copypartyGitHub

Main features

  • Resumable, multithreaded browser uploads with no file size limit
  • WebDAV, SFTP, FTP/FTPS, TFTP and SMB servers
  • Per-folder, per-user permissions through volumes and accounts
  • Share links with password and expiry
  • Thumbnails, media player, image gallery and Markdown viewer
  • Search by name, date, size, file contents and audio tags
  • Duplicate detection and self-destructing uploads
  • Event hooks to run scripts on uploads
  • Login through an identity provider behind a reverse proxy
  • Android upload app

What copyparty does

copyparty turns almost any device into a file server that people reach with a web browser. Its upload engine is the centerpiece: uploads run in parallel, resume after interruptions and have no file size limit, even behind Cloudflare. Downloads work for single files or whole folders as zip or tar archives. The same server can also speak WebDAV, SFTP, FTP/FTPS, TFTP and SMB, so folders can be mounted as network drives or reached from other tools.

The browser interface goes beyond a file list. It includes a file manager with cut, paste, rename and batch rename, thumbnails for images, video and audio, an image gallery, a comic reader, an audio player with playlists and transcoding, a text viewer with syntax highlighting and a Markdown viewer and editor. Users can search by name, path, date, size or audio tags, and dropping a file onto the page shows whether the server already has it. Uploads can be set to delete themselves after a set time, and accidental uploads can be undone.

Access is defined with volumes (folders you expose) and accounts, with read, write, move, delete and other permissions per folder and per user, including write-only drop boxes. Shares create temporary links to files or folders with an optional password and expiry, and can allow visitors to upload. Event hooks run scripts on uploads and other events.

Security

Started without any arguments, copyparty gives everyone read and write access to the current folder, so configuring accounts and volumes is the first job. Passwords in config files can be hashed with argon2. The README recommends putting a reverse proxy in front for HTTPS rather than relying on the built-in TLS. You can also replace copyparty’s own logins with an identity provider such as Authelia or authentik behind the proxy, which adds options like passkeys, LDAP or Active Directory.

There is no encryption at rest. The README describes using external FUSE tools such as rclone, JuiceFS or gocryptfs to put files on S3 or an encrypted volume.

Self-hosting copyparty

The server needs only Python 2 or 3; all other dependencies are optional. The quickest start is to download the self-extracting copyparty-sfx.py and run it. It is also available from PyPI, as a Windows exe, as a Docker image, and through Arch, Fedora, Gentoo, Homebrew and Nix packages, with service files for systemd, OpenRC and FreeBSD. Installing Pillow and FFmpeg adds thumbnails, media indexing and audio transcoding. It runs on Linux, Windows, macOS, FreeBSD, Android (in Termux), iOS (in a-Shell) and many CPU architectures.

Hosted version

There is no hosted service. The developer runs a read-only demo server.

Limitations

copyparty is not a sync platform. Sync is one-way only, using its own u2c.py uploader or rclone, and the README states that full two-way sync like Nextcloud or Syncthing will never be supported. It suggests running copyparty alongside Syncthing for that. There are no desktop sync clients, no built-in office editing and no object storage support without FUSE tools. The insecure default when run without configuration needs care.

Who it suits

copyparty fits home users, NAS owners and admins who want to share or collect files quickly from a folder, with fast uploads and many protocols, without running a database or a full platform. For synced folders across devices pair it with Syncthing or use Nextcloud.

Technical details

Built with

  • Python

GitHub topics

  • copyparty
  • file-server
  • file-sharing
  • file-upload-server
  • ftp-server
  • nas-frontend
  • tftp-server
  • webdav-server

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.