44 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	alternatives to copyparty
copyparty compared against all similar software i've bumped into
there is probably some unintentional bias so please submit corrections
currently up to date with awesome-selfhosted but that probably won't last
symbol legends
...in feature matrices:
- █= absolutely
- ╱= partially
- •= maybe?
...in reviews:
- ✅ = advantages over copyparty
- 💾 = what copyparty offers as an alternative
 
- 🔵 = similarities
- ⚠️ = disadvantages (something copyparty does "better")
- 🔥 = hazards
toc
recommendations
- kodbox (review) appears to be a fantastic alternative if you're not worried about running chinese software, with several advantages over copyparty
- but anything you want to share must be moved into the kodbox filesystem
 
- seafile (review) and nextcloud (review) could be decent alternatives if you need something heavier than copyparty
- but their license (AGPL) is thorny
- and copyparty is way better at uploads in particular (resumable, accelerated)
- and anything you want to share must be moved into the respective filesystems
 
- filebrowser (review) and dufs (review) are simpler copyparties but with a settings gui
- has some of the same strengths of copyparty, being portable and able to work with an existing folder structure
- ...but copyparty is better at uploads + some other things
 
feature comparisons
<&Kethsar> copyparty is very much bloat ed, so yeah
the table headers in the matrixes below are the different softwares, with a quick review of each software in the next section
the softwares,
- a= copyparty
- b= hfs2 🔥
- c= hfs3
- d= nextcloud
- e= seafile
- f= rclone, specifically- rclone serve webdav .
- g= dufs
- h= chibisafe
- i= kodbox
- j= filebrowser
- k= filegator
- l= sftpgo
- m= arozos
some softwares not in the matrixes,
symbol legend,
- █= absolutely
- ╱= partially
- •= maybe?
general
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| intuitive UX | ╱ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||
| config GUI | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||||
| good documentation | █ | █ | █ | █ | █ | █ | █ | ╱ | ╱ | ||||
| runs on iOS | ╱ | ╱ | |||||||||||
| runs on Android | █ | █ | █ | █ | |||||||||
| runs on WinXP | █ | █ | █ | ||||||||||
| runs on Windows | █ | █ | █ | █ | █ | █ | █ | ╱ | █ | █ | █ | █ | ╱ | 
| runs on Linux | █ | ╱ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | 
| runs on Macos | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||
| runs on FreeBSD | █ | █ | • | █ | █ | █ | • | █ | █ | █ | |||
| runs on Risc-V | █ | █ | █ | █ | • | █ | |||||||
| portable binary | █ | █ | █ | █ | █ | █ | █ | █ | |||||
| zero setup, just go | █ | █ | █ | ╱ | █ | █ | ╱ | █ | |||||
| android app | ╱ | █ | █ | ||||||||||
| iOS app | ╱ | █ | █ | 
- zero setup= you can get a mostly working setup by just launching the app, without having to install any software or configure whatever
- a/copyparty remarks:- no gui for server settings; only for client-side stuff
- runs on iOS / iPads using a-Shell (pretty good) or iSH (very slow) but cannot run in the background and is not able to share all of your phone storage (just a separate dedicated folder)
- android app is for uploading only
- no iOS app but has shortcuts for easy uploading
 
- b/hfs2 runs on linux through wine
- f/rclone must be started with the command- rclone serve webdav .or similar
- h/chibisafe has undocumented windows support
- l/sftpgo:- Must be launched with a command
- On Termux, just run pkg in sftpgo
 
- m/arozos has partial windows support
file transfer
the thing that copyparty is actually kinda good at
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| download folder as zip | █ | █ | █ | █ | ╱ | █ | █ | █ | ╱ | █ | ╱ | ||
| download folder as tar | █ | ||||||||||||
| upload | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | ╱ | █ | █ | 
| parallel uploads | █ | █ | █ | • | █ | █ | █ | █ | |||||
| resumable uploads | █ | █ | █ | █ | █ | ╱ | |||||||
| upload segmenting | █ | █ | █ | █ | █ | █ | █ | ╱ | █ | ||||
| upload acceleration | █ | █ | █ | ||||||||||
| upload verification | █ | █ | █ | █ | |||||||||
| upload deduplication | █ | █ | █ | ||||||||||
| upload a 999 TiB file | █ | █ | █ | • | █ | █ | ╱ | ╱ | |||||
| CTRL-V from device | █ | █ | |||||||||||
| race the beam ("p2p") | █ | ||||||||||||
| "tail -f" streaming | █ | ||||||||||||
| keep last-modified time | █ | █ | █ | █ | █ | █ | |||||||
| upload rules | ╱ | ╱ | ╱ | ╱ | ╱ | ╱ | ╱ | ╱ | ╱ | ╱ | |||
| ┗ max disk usage | █ | █ | █ | █ | █ | █ | █ | ||||||
| ┗ max filesize | █ | █ | █ | █ | █ | ||||||||
| ┗ max items in folder | █ | ╱ | |||||||||||
| ┗ max file age | █ | █ | |||||||||||
| ┗ max uploads over time | █ | ╱ | |||||||||||
| ┗ compress before write | █ | ||||||||||||
| ┗ randomize filename | █ | █ | █ | ||||||||||
| ┗ mimetype reject-list | ╱ | • | ╱ | ╱ | • | ||||||||
| ┗ extension reject-list | ╱ | █ | • | ╱ | ╱ | • | |||||||
| ┗ upload routing | █ | ||||||||||||
| checksums provided | █ | █ | █ | ╱ | |||||||||
| cloud storage backend | ╱ | ╱ | ╱ | █ | █ | █ | ╱ | ╱ | █ | █ | ╱ | 
- 
upload segmenting= files are sliced into chunks, making it possible to upload files larger than 100 MiB on cloudflare for example
- 
upload acceleration= each file can be uploaded using several TCP connections, which can offer a huge speed boost over huge distances / on flaky connections -- like the good old download accelerators except in reverse
- 
upload verification= uploads are checksummed or otherwise confirmed to have been transferred correctly
- 
CTRL-V from device= press CTRL-C in Windows Explorer (or whatever) and paste into the webbrowser to upload it
- 
race the beam= files can be downloaded while they're still uploading; downloaders are slowed down such that the uploader is always ahead
- 
tail -f= when viewing or downloading a logfile, the connection can remain open to keep showing new lines as they are added in real time
- 
upload routing= depending on filetype / contents / uploader etc., the file can be redirected to another location or otherwise transformed; mitigates limitations such as sharex#3992- copyparty example: reloc-by-ext
 
- 
checksums provided= when downloading a file from the server, the file's checksum is provided for verification client-side
- 
cloud storage backend= able to serve files from (and write to) s3 or similar cloud services;╱means the software can do this with some help fromrclone mountas a bridge
- 
a/copyparty can reject uploaded files (based on complex conditions), for example by extension or mimetype
- 
e/seafile download-as-zip is not streaming; it creates the full zipfile before download can start, and fails on big folders
- 
j/filebrowser remarks:- can provide checksums for single files on request
- can probably do extension/mimetype rejection similar to copyparty
 
- 
k/filegator download-as-zip is not streaming; it creates the full zipfile before download can start
- 
l/sftpgo:- resumable/segmented uploads only over SFTP, not over HTTP
- upload rules are totals only, not over time
- can probably do extension/mimetype rejection similar to copyparty
 
- 
m/arozos download-as-zip is not streaming; it creates the full zipfile before download can start, and fails on big folders
protocols and client support
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| serve https | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | |
| serve webdav | █ | █ | █ | █ | █ | █ | █ | █ | |||||
| serve ftp (tcp) | █ | █ | █ | █ | |||||||||
| serve ftps (tls) | █ | █ | █ | ||||||||||
| serve tftp (udp) | █ | ||||||||||||
| serve sftp (ssh) | █ | █ | █ | ||||||||||
| serve smb/cifs | ╱ | █ | |||||||||||
| serve dlna | █ | ||||||||||||
| listen on unix-socket | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||||
| zeroconf | █ | █ | |||||||||||
| supports netscape 4 | ╱ | █ | • | ╱ | |||||||||
| ...internet explorer 6 | ╱ | █ | █ | █ | • | ╱ | |||||||
| mojibake filenames | █ | • | • | █ | █ | • | █ | • | ╱ | ||||
| undecodable filenames | █ | • | • | █ | • | ╱ | 
- webdav= protocol convenient for mounting a remote server as a local filesystem; see zeroconf:
- zeroconf= the server announces itself on the LAN, automatically appearing on other zeroconf-capable devices
- mojibake filenames= filenames decoded with the wrong codec and then reencoded (usually to utf-8), so- 宇多田ヒカルmight look like- ëFæ╜ôcâqâJâï
- undecodable filenames= pure binary garbage which cannot be parsed as utf-8- you can successfully play $'\355\221'with mpv through mounting a remote copyparty server with rclone, pog
 
- you can successfully play 
- a/copyparty remarks:- extremely minimal samba/cifs server
- netscape 4 / ie6 support is mostly listed as a joke altho some people have actually found it useful (ie4 tho)
 
- l/sftpgo translates mojibake filenames into valid utf-8 (information loss)
- m/arozos has readonly-support for older browsers; no uploading
server configuration
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| config from cmd args | █ | █ | █ | █ | █ | ╱ | ╱ | ||||||
| config files | █ | █ | █ | ╱ | ╱ | █ | █ | █ | • | ╱ | ╱ | ||
| runtime config reload | █ | █ | █ | █ | █ | █ | █ | █ | |||||
| same-port http / https | █ | ||||||||||||
| listen multiple ports | █ | █ | |||||||||||
| virtual file system | █ | █ | █ | █ | █ | ||||||||
| reverse-proxy ok | █ | █ | █ | █ | █ | █ | █ | • | • | • | █ | ╱ | |
| folder-rproxy ok | █ | █ | █ | █ | • | • | █ | • | • | 
- folder-rproxy= reverse-proxying without dedicating an entire (sub)domain, using a subfolder instead
- l/sftpgo:- config: user can be added by cmd command in Portable mode; if not in Portable mode users must be added through gui / api calls
 
- m/arozos:- configuration is primarily through GUI
- reverse-proxy is not guaranteed to see the correct client IP
 
server capabilities
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| accounts | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | 
| per-account chroot | █ | ||||||||||||
| single-sign-on | ╱ | █ | █ | • | |||||||||
| token auth | ╱ | █ | █ | █ | █ | ||||||||
| 2fa | ╱ | / | █ | █ | █ | ╱ | |||||||
| per-volume permissions | █ | █ | █ | █ | █ | █ | █ | █ | █ | ╱ | █ | █ | |
| per-folder permissions | ╱ | █ | █ | █ | █ | █ | █ | ╱ | █ | █ | |||
| per-file permissions | █ | █ | █ | █ | █ | █ | |||||||
| per-file passwords | █ | █ | █ | █ | █ | █ | █ | ||||||
| unmap subfolders | █ | █ | █ | █ | ╱ | • | |||||||
| index.html blocks list | ╱ | █ | • | ||||||||||
| write-only folders | █ | █ | █ | █ | █ | ||||||||
| files stored as-is | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | |||
| file versioning | █ | █ | |||||||||||
| file encryption | █ | █ | █ | █ | |||||||||
| file indexing | █ | █ | █ | █ | █ | █ | █ | ||||||
| ┗ per-volume db | █ | • | • | • | • | • | |||||||
| ┗ db stored in folder | █ | • | • | █ | |||||||||
| ┗ db stored out-of-tree | █ | █ | █ | █ | • | • | █ | ||||||
| ┗ existing file tree | █ | █ | █ | ||||||||||
| file action event hooks | █ | █ | █ | • | |||||||||
| one-way folder sync | █ | █ | █ | █ | |||||||||
| full sync | █ | █ | |||||||||||
| speed throttle | █ | █ | █ | █ | █ | ||||||||
| anti-bruteforce | █ | █ | █ | █ | █ | • | █ | • | |||||
| dyndns updater | █ | █ | |||||||||||
| self-updater | █ | █ | |||||||||||
| log rotation | █ | █ | █ | █ | • | █ | █ | • | |||||
| upload tracking / log | █ | █ | • | █ | █ | █ | █ | ╱ | █ | ||||
| prometheus metrics | █ | █ | █ | ||||||||||
| curl-friendly ls | █ | ||||||||||||
| curl-friendly upload | █ | █ | █ | █ | • | 
- unmap subfolders= "shadowing"; mounting a local folder in the middle of an existing filesystem tree in order to disable access below that path
- files stored as-is= uploaded files are trivially readable from the server HDD, not sliced into chunks or in weird folder structures or anything like that
- db stored in folder= filesystem index can be written to a database file inside the folder itself
- db stored out-of-tree= filesystem index can be stored some place else, not necessarily inside the shared folders
- existing file tree= will index any existing files it finds
- file action event hooks= run script before/after upload, move, rename, ...
- one-way folder sync= like rsync, optionally deleting unexpected files at target
- full sync= stateful, dropbox-like sync
- speed throttle= rate limiting (per ip, per user, per connection, anything like that)
- curl-friendly ls= returns a sortable plaintext folder listing when curled
- curl-friendly upload= uploading with curl is just- curl -T some.bin http://.../
- a/copyparty remarks:- single-sign-on, token-auth, and 2fa is possible through authelia/authentik or similar, but nobody's made an example yet
- one-way folder sync from local to server can be done efficiently with u2c.py, or with webdav and conventional rsync
- can hot-reload config files (with just a few exceptions)
- can set per-folder permissions if that folder is made into a separate volume, so there is configuration overhead
- index.htmlon its own does not prevent directory listing, but permission- h(instead of- r) enforces index.html to be returned instead of folder contents
- event hooks (discord, desktop) inspired by filebrowser, as well as the more complex media parser alternative
- upload history can be visualized using partyjournal
 
- k/filegator remarks:- per-* permissions-- can limit a user to one folder and its subfolders
- unmap subfolders-- can globally filter a list of paths
 
- l/sftpgo:- file action event hooksalso include on-download triggers
- upload tracking / login main logfile
 
- m/arozos:- 2famaybe possible through LDAP/Oauth
 
- c/hfs3- 2faavailable by installing a plugin
 
client features
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| single-page app | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||||
| themes | █ | █ | █ | █ | █ | ||||||||
| directory tree nav | █ | ╱ | █ | █ | ╱ | ||||||||
| multi-column sorting | █ | █ | |||||||||||
| thumbnails | █ | / | ╱ | ╱ | █ | █ | ╱ | █ | |||||
| ┗ image thumbnails | █ | / | █ | █ | █ | █ | █ | █ | |||||
| ┗ video thumbnails | █ | █ | █ | █ | █ | ||||||||
| ┗ audio spectrograms | █ | ||||||||||||
| audio player | █ | ╱ | █ | █ | █ | ╱ | ╱ | █ | |||||
| ┗ gapless playback | █ | • | |||||||||||
| ┗ audio equalizer | █ | ||||||||||||
| ┗ waveform seekbar | █ | ||||||||||||
| ┗ OS integration | █ | █ | |||||||||||
| ┗ transcode to lossy | █ | ||||||||||||
| video player | █ | █ | █ | █ | █ | █ | ╱ | █ | |||||
| ┗ video transcoding | / | █ | |||||||||||
| audio BPM detector | █ | ||||||||||||
| audio key detector | █ | ||||||||||||
| search by path / name | █ | █ | █ | █ | █ | █ | █ | █ | ╱ | ||||
| search by date / size | █ | █ | █ | █ | |||||||||
| search by bpm / key | █ | ||||||||||||
| search by custom tags | █ | █ | |||||||||||
| search in file contents | █ | █ | █ | ||||||||||
| search by custom parser | █ | ||||||||||||
| find local file | █ | ||||||||||||
| undo recent uploads | █ | ||||||||||||
| create directories | █ | █ | █ | █ | ╱ | █ | █ | █ | █ | █ | █ | █ | |
| image viewer | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||||
| markdown viewer | █ | / | █ | █ | ╱ | ╱ | █ | ||||||
| markdown editor | █ | █ | █ | ╱ | ╱ | ╱ | █ | ||||||
| readme.md in listing | █ | / | █ | ||||||||||
| rename files | █ | █ | █ | █ | █ | ╱ | █ | █ | █ | █ | █ | █ | |
| batch rename | █ | █ | |||||||||||
| cut / paste files | █ | █ | █ | █ | █ | █ | █ | ||||||
| move files | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | ||
| delete files | █ | █ | █ | █ | █ | ╱ | █ | █ | █ | █ | █ | █ | █ | 
| copy files | / | █ | █ | █ | █ | █ | █ | 
- single-page app= multitasking; possible to continue navigating while uploading
- audio player » os-integration= use the lockscreen or media hotkeys to play/pause, prev/next song
- search by custom tags= ability to tag files through the UI and search by those
- find local file= drop a file into the browser to see if it exists on the server
- undo recent uploads= accounts without delete permissions have a time window where they can undo their own uploads
- a/copyparty has teeny-tiny skips playing gapless albums depending on audio codec (opus best)
- b/hfs2 has a very basic directory tree view, not showing sibling folders
- f/rclone can do some file management (mkdir, rename, delete) when hosting througn webdav
- j/filebrowser remarks:- audio playback does not continue into next song
- plaintext viewer/editor
 
- k/filegator directory tree is a modal window
- l/sftpgo remarks:- audio/video playback does not continue into next song/video
- plaintext viewer/editor
 
integration
| feature / software | a | b | c | d | e | f | g | h | i | j | k | l | m | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OS alert on upload | ╱ | ╱ | ╱ | ||||||||||
| discord | ╱ | ╱ | ╱ | ||||||||||
| ┗ announce uploads | ╱ | ╱ | |||||||||||
| ┗ custom embeds | ╱ | ||||||||||||
| sharex | █ | █ | █ | ╱ | █ | ||||||||
| flameshot | █ | 
- sharex ╱= yes, but does not provide example sharex config
- a/copyparty remarks:
- j/filebrowser can probably pull those off with command runners similar to copyparty
- l/sftpgo has nothing built-in but is very extensible
another matrix
| software / feature | lang | lic | size | 
|---|---|---|---|
| copyparty | python | █ mit | 0.6 MB | 
| hfs2 | delphi | ░ gpl3 | 2 MB | 
| hfs3 | ts | ░ gpl3 | 36 MB | 
| nextcloud | php | ‼ agpl | • | 
| seafile | c | ‼ agpl | • | 
| rclone | c | █ mit | 45 MB | 
| dufs | rust | █ apl2 | 2.5 MB | 
| chibisafe | ts | █ mit | • | 
| kodbox | php | ░ gpl3 | 92 MB | 
| filebrowser | go | █ apl2 | 20 MB | 
| filegator | php | █ mit | • | 
| sftpgo | go | ‼ agpl | 44 MB | 
| arozos | go | ░ gpl3 | 531 MB | 
| updog | python | █ mit | 17 MB | 
| goshs | go | █ mit | 11 MB | 
| gimme-that | python | █ mit | 4.8 MB | 
| ass | ts | █ isc | • | 
| linx | go | ░ gpl3 | 20 MB | 
| h5ai | php | █ mit | • | 
| autoindex | go | █ mpl2 | 11 MB | 
| miniserve | rust | █ mit | 2 MB | 
| pingvin-share | go | █ bsd2 | 487 MB | 
- size= binary (if available) or installed size of program and its dependencies- copyparty size is for the standalone python file; the windows exe is 6 MiB
 
reviews
- ✅ are advantages over copyparty
- 💾 are what copyparty offers as an alternative
 
- 🔵 are similarities
- ⚠️ are disadvantages (something copyparty does "better")
- 🔥 are hazards
copyparty
- resumable uploads which are verified server-side
- upload segmenting allows for potentially much faster uploads on some connections, and terabyte-sized files even on cloudflare
- both of the above are surprisingly uncommon features
 
- very cross-platform (python, no dependencies)
hfs2
- the OG, the legend (now replaced by hfs3)
- 🔥 hfs2 is dead and dangerous! unfixed RCE: info, info, info
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ windows-only
- ✅ config GUI
- vfs with gui config, per-volume permissions
- starting to show its age, hence the rewrite:
hfs3
- nodejs; cross-platform
- vfs with gui config, per-volume permissions
- tested locally, v0.53.2 on archlinux
- 🔵 uploads are resumable
- ⚠️ uploads are not accelerated (copyparty is 3x faster across the atlantic)
- ⚠️ uploads are not integrity-checked
- ⚠️ uploading small files is decent; 107files per sec (copyparty does670/sec, 6x faster)
- ⚠️ doesn't support crazy filenames
- ✅ config GUI
- ✅ download counter
- ✅ watch active connections
- ✅ plugins
nextcloud
- php, mariadb
- tested locally, linuxserver/nextcloud v30.0.2 (sqlite)
- ⚠️ [isolated on-disk file hierarchy] in per-user folders
- not that bad, can probably be remedied with bindmounts or maybe symlinks
 
- ⚠️ uploads not resumable / accelerated / integrity-checked
- 🔵 uploads are segmented; no filesize limit, even on cloudflare
 
- ⚠️ uploading small files is slow; 4files per sec (copyparty does670/sec, 160x faster)
- ⚠️ no write-only / upload-only folders
- ⚠️ http/webdav only; no ftp, zeroconf
- ⚠️ less awesome music player
- ⚠️ doesn't run on android or ipads
- ⚠️ AGPL licensed
- ✅ great ui/ux
- ✅ config gui
- ✅ apps (android / iphone)
- 💾 android upload-only app + iPhone upload shortcut
 
- ✅ more granular permissions (per-file)
- ✅ search: fulltext indexing of file contents
- ✅ webauthn passwordless authentication
seafile
- c, mariadb
- tested locally, official container v11.0.13
- ⚠️ isolated on-disk file hierarchy, incompatible with other software
- much worse than nextcloud in that regard
 
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ uploading small files is slow; 4.7files per sec (copyparty does670/sec, 140x faster)
- ⚠️ big folders cannot be zip-downloaded
- ⚠️ http/webdav only; no ftp, zeroconf
- ⚠️ less awesome music player
- ⚠️ doesn't run on android or ipads
- ⚠️ AGPL licensed
- ✅ great ui/ux
- ✅ config gui
- ✅ apps (android / iphone)
- 💾 android upload-only app + iPhone upload shortcut
 
- ✅ more granular permissions (per-file)
- ✅ search: fulltext indexing of file contents
rclone
- nice standalone c program
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ no web-ui, just a server / downloader / uploader utility
- ✅ works with almost any protocol, cloud provider
- ⚠️ copyparty's webdav server is slightly faster
 
dufs
- rust; cross-platform (windows, linux, macos)
- tested locally, v0.43.0 on archlinux (plain binary)
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
- ⚠️ across the atlantic, copyparty is 3x faster
 
- ⚠️ uploading small files is decent; 97files per sec (copyparty does670/sec, 7x faster)
- ⚠️ doesn't support crazy filenames
- ✅ per-url access control (copyparty is per-volume)
- 🔵 basic but really snappy ui
- 🔵 upload, rename, delete, ... see feature matrix
chibisafe
- nodejs; recommends docker
- 🔵 it has upload segmenting!
- ⚠️ but uploads are still not resumable / accelerated / integrity-checked
 
- ⚠️ not portable
- ⚠️ isolated on-disk file hierarchy, incompatible with other software
- ⚠️ http/webdav only; no ftp or zeroconf
- ✅ pretty ui
- ✅ control panel for server settings and user management
- ✅ user registration
- ✅ searchable image tags; delete by tag
- ✅ browser extension to upload files to the server
- ✅ reject uploads by file extension
- 💾 can reject uploads by extension or mimetype using plugins
 
- ✅ token auth (api keys)
kodbox
- this thing is insane (but is getting competition from arozos)
- php; docker
- 🔵 upload segmenting, acceleration, and integrity checking!
- ⚠️ but uploads are not resumable(?)
 
- ⚠️ not portable
- ⚠️ isolated on-disk file hierarchy, incompatible with other software
- ⚠️ uploading small files to copyparty is 16x faster
- ⚠️ uploading large files to copyparty is 3x faster
- ⚠️ http/webdav only; no ftp or zeroconf
- ⚠️ some parts of the GUI are in chinese
- ✅ fantastic ui/ux
- ✅ control panel for server settings and user management
- ✅ file tags; file discussions!?
- ✅ video transcoding
- ✅ unzip uploaded archives
- ✅ IDE with syntax highlighting
- ✅ wysiwyg editor for openoffice files
filebrowser
- go; cross-platform (windows, linux, mac)
- tested locally, v2.31.2 on archlinux (plain binary)
- 🔵 uploads are resumable and segmented
- 🔵 multiple files are uploaded in parallel, but...
- ⚠️ big files are not accelerated (copyparty is 5x faster across the atlantic)
 
- ⚠️ uploads are not integrity-checked
- ⚠️ uploading small files is decent; 69files per sec (copyparty does670/sec, 9x faster)
- ⚠️ http only; no webdav / ftp / zeroconf
- ⚠️ doesn't support crazy filenames
- ⚠️ no directory tree nav
- ⚠️ limited file search
- ✅ settings gui
- ✅ good ui/ux
- ⚠️ but no directory tree for navigation
 
- ✅ user signup
- ✅ command runner / remote shell
- ✅ more efficient; can handle around twice as much simultaneous traffic
- note: keep an eye on gtsteffaniak's fork
filegator
- php; cross-platform (windows, linux, mac)
- 🔵 it has upload segmenting and acceleration
- ⚠️ but uploads are still not integrity-checked
- ⚠️ on copyparty, uploads are 40x faster
- compared to the official filegator docker example which might be bad
 
 
- ⚠️ http only; no webdav / ftp / zeroconf
- ⚠️ does not support symlinks
- ⚠️ expensive download-as-zip feature
- ⚠️ doesn't support crazy filenames
- ⚠️ limited file search
sftpgo
- go; cross-platform (windows, linux, mac)
- ⚠️ http uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
- ⚠️ across the atlantic, copyparty is 2.5x faster
- 🔵 sftp uploads are resumable
 
- ⚠️ web UI is very minimal + a bit slow
- ⚠️ no thumbnails
 
- ⚠️ no filesystem indexing / search
- ⚠️ no zeroconf (mdns/ssdp)
- ⚠️ impractical directory URLs
- ⚠️ AGPL licensed
- 🔵 uploading small files is fast; 340files per sec (copyparty does670/sec)
- 🔵 ftp, ftps, webdav
- ✅ sftp server
- ✅ settings gui
- ✅ acme (automatic tls certs)
- 💾 relies on caddy/certbot/acme.sh
 
- ✅ at-rest encryption
- 💾 relies on LUKS/BitLocker
 
- ✅ can use S3/GCS as storage backend
- 💾 relies on rclone-mount
 
- ✅ on-download event hook (otherwise same as copyparty)
- ✅ more extensive permissions control
arozos
- big suite of applications similar to kodbox, copyparty is better at downloading/uploading/music/indexing but arozos has other advantages
- go; primarily linux (limited support for windows)
- ⚠️ needs root
- ⚠️ uploads not resumable / integrity-checked
- ⚠️ uploading small files to copyparty is 2.7x faster
- ⚠️ uploading large files to copyparty is at least 10% faster
- arozos is websocket-based, 512 KiB chunks; writes each chunk to separate files and then merges
- copyparty splices directly into the final file; faster and better for the HDD and filesystem
 
- ⚠️ across the atlantic, uploading to copyparty is 6x faster
- ⚠️ no directory tree navpane; not as easy to navigate
- ⚠️ download-as-zip is not streaming; creates a temp.file on the server
- ⚠️ not self-contained (pulls from jsdelivr)
- ⚠️ has an audio player, but supports less filetypes
- ⚠️ limited support for configuring real-ip detection
- ✅ sftp server
- ✅ settings gui
- ✅ good-looking gui
- ✅ an IDE, msoffice viewer, rich host integration, much more
updog
- python; cross-platform
- basic directory listing with upload feature
- ⚠️ less portable
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ no vfs; single folder, single account
goshs
- go; cross-platform (windows, linux, mac)
- ⚠️ no vfs; single folder, single account
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ✅ cool clipboard widget
- 💾 the markdown editor is an ok substitute
 
- 🔵 read-only and upload-only modes (same as copyparty's write-only)
- 🔵 https, webdav, but no ftp
gimme-that
- python, but with c dependencies
- ⚠️ no vfs; single folder, multiple accounts
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ weird folder structure for uploads
- ✅ clamav antivirus check on upload! neat
- 🔵 optional max-filesize, os-notification on uploads
- 💾 os-notification available as a plugin
 
ass
- nodejs; recommends docker
- ⚠️ not portable
- ⚠️ upload only; no browser
- ⚠️ upload through sharex only; no web-ui
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ✅ token auth
- ✅ gps metadata stripping
- 💾 possible with a plugin
 
- ✅ discord integration (custom embeds, upload webhook)
- ✅ reject uploads by mimetype
- 💾 can reject uploads by extension or mimetype using plugins
 
- ✅ can use S3 as storage backend
- 💾 relies on rclone-mount
 
- ✅ custom 404 pages
linx
- originally andreimarcu/linx-server but development has ended
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- 🔵 some of its unique features have been added to copyparty as former linx users have migrated
- file expiration timers, filename randomization
 
- ✅ password-protected files
- 💾 password-protected folders + filekeys to skip the folder password seem to cover most usecases
 
- ✅ file deletion keys
- ✅ download files as torrents
- ✅ remote uploads (send a link to the server and it downloads it)
- 💾 available as a plugin
 
- ✅ can use S3 as storage backend
- 💾 relies on rclone-mount
 
h5ai
- ⚠️ read only; no upload/move/delete
- ⚠️ search hits the filesystem directly; not indexed/cached
- ✅ slick ui
- ✅ in-browser qr generator to share URLs
- 🔵 directory tree, image viewer, thumbnails, download-as-tar
autoindex
- ⚠️ read only; no upload/move/delete
- ✅ directory cache for faster browsing of cloud storage
- 💾 local index/cache for recursive search (names/attrs/tags), but not for browsing
 
miniserve
- rust; cross-platform (windows, linux, mac)
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
 
- ⚠️ no thumbnails / image viewer / audio player / file manager
- ⚠️ no filesystem indexing / search
- 🔵 upload, tar/zip download, qr-code
- ✅ faster at loading huge folders
pingvin-share
- node; linux (docker)
- mainly for uploads, not a general file server
- 🔵 uploads are segmented (avoids cloudflare size limit)
- 🔵 segments are written directly to target file (HDD-friendly)
- ⚠️ uploads not resumable after a browser or laptop crash
- ⚠️ uploads are not accelerated / integrity-checked
- ⚠️ across the atlantic, copyparty is 3x faster
- measured with chunksize 96 MiB; pingvin's default 10 MiB is much slower
 
 
- ⚠️ across the atlantic, copyparty is 3x faster
- ⚠️ can't upload folders with subfolders
- ⚠️ no upload ETA
- 🔵 expiration times, shares, upload-undo
- ✅ config + user-registration gui
- ✅ built-in OpenID and LDAP support
- 💾 IdP middleware and config-files
 
- ✅ probably more than one person who understands the code
briefly considered
- pydio: python/agpl3, looks great, fantastic ux -- but needs mariadb, systemwide install
- gossa: go/mit, minimalistic, basic file upload, text editor, mkdir and rename (no delete/move)
notes
- high-latency connections (cross-atlantic uploads) can be accurately simulated with tc qdisc add dev eth0 root netem delay 100ms