features which should be good to go: * user groups * assigning permissions by group * dynamically created volumes based on username/groupname * rebuild vfs when new users/groups appear but several important features still pending; * detect dangerous configurations * dynamic vol below readable path * remember volumes created during previous runs * helps prevent unintended access * correct filesystem-scan on startup
36 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")
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 is problematic
- 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
= copypartyb
= hfs2c
= hfs3d
= nextcloude
= seafilef
= rclone, specificallyrclone serve webdav .
g
= dufsh
= chibisafei
= kodboxj
= filebrowserk
= filegatorl
= sftpgo
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | █ | • | █ | █ | █ | • | █ | █ | █ | |||
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 whatevera
/copyparty remarks:- no gui for server settings; only for client-side stuff
- can theoretically run on iOS / iPads using iSH, but only the iPad will offer sufficient multitasking i think
- android app is for uploading only
- no iOS app but has shortcuts for easy uploading
b
/hfs2 runs on linux through winef
/rclone must be started with the commandrclone serve webdav .
or similarh
/chibisafe has undocumented windows supporti
/sftpgo must be launched with a command
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | █ | █ | █ | • | █ | █ | ╱ | |||||
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 | ╱ | █ | • | ╱ | ╱ | |||||||
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 -
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 mount
as 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
protocols and client support
feature / software | a | b | c | d | e | f | g | h | i | j | k | l |
---|---|---|---|---|---|---|---|---|---|---|---|---|
serve https | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | █ | |
serve webdav | █ | █ | █ | █ | █ | █ | █ | |||||
serve ftp | █ | █ | █ | |||||||||
serve ftps | █ | █ | █ | |||||||||
serve sftp | █ | █ | ||||||||||
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 devicesmojibake 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)
server configuration
feature / software | a | b | c | d | e | f | g | h | i | j | k | l |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 insteadl
/sftpgo:- config: users must be added through gui / api calls
server capabilities
feature / software | a | b | c | d | e | f | g | h | i | j | k | l |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | █ | █ | • | █ | █ | █ | █ | ╱ | ||||
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 pathfiles stored as-is
= uploaded files are trivially readable from the server HDD, not sliced into chunks or in weird folder structures or anything like thatdb stored in folder
= filesystem index can be written to a database file inside the folder itselfdb stored out-of-tree
= filesystem index can be stored some place else, not necessarily inside the shared foldersexisting file tree
= will index any existing files it findsfile action event hooks
= run script before/after upload, move, rename, ...one-way folder sync
= like rsync, optionally deleting unexpected files at targetfull sync
= stateful, dropbox-like synccurl-friendly ls
= returns a sortable plaintext folder listing when curledcurl-friendly upload
= uploading with curl is justcurl -T some.bin http://.../
a
/copyparty remarks:- single-sign-on, token-auth, and 2fa is possible through authelia/authentik or similar; see TODO:example
- 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.html
on its own does not prevent directory listing, but permissionh
(instead ofr
) 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 subfoldersunmap subfolders
-- can globally filter a list of paths
l
/sftpgo:file action event hooks
also include on-download triggersupload tracking / log
in main logfile
client features
feature / software | a | b | c | d | e | f | g | h | i | j | k | l |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 uploadingaudio player » os-integration
= use the lockscreen or media hotkeys to play/pause, prev/next songsearch by custom tags
= ability to tag files through the UI and search by thosefind local file
= drop a file into the browser to see if it exists on the serverundo recent uploads
= accounts without delete permissions have a time window where they can undo their own uploadsa
/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 foldersf
/rclone can do some file management (mkdir, rename, delete) when hosting througn webdavj
/filebrowser has a plaintext viewer/editork
/filegator directory tree is a modal window
integration
feature / software | a | b | c | d | e | f | g | h | i | j | k | l |
---|---|---|---|---|---|---|---|---|---|---|---|---|
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 copypartyl
/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 |
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 |
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")
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
- ⚠️ 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
- still early development, let's revisit later
nextcloud
- php, mariadb
- ⚠️ [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
- ⚠️ on cloudflare: max upload size 100 MiB
- ⚠️ uploading small files is slow;
2.2
files per sec (copyparty does87
/sec), tested locally with linuxserver/nextcloud (sqlite) - ⚠️ 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
- ⚠️ 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;
2.7
files per sec (copyparty does87
/sec), tested locally with official container - ⚠️ no write-only / upload-only folders
- ⚠️ 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)
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
- ⚠️ 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
- php; docker
- 🔵 upload segmenting, acceleration, and integrity checking!
- ⚠️ but uploads are not resumable(?)
- ⚠️ not portable
- ⚠️ isolated on-disk file hierarchy, incompatible with other software
- ⚠️ 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 hilighting
- ✅ wysiwyg editor for openoffice files
filebrowser
- go; cross-platform (windows, linux, mac)
- ⚠️ uploads not resumable / accelerated / integrity-checked
- ⚠️ on cloudflare: max upload size 100 MiB
- ⚠️ 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
- 🔵 supposed to have write-only folders but couldn't get it to work
filegator
- go; cross-platform (windows, linux, mac)
- 🔵 it has upload segmenting and acceleration
- ⚠️ but uploads are still not integrity-checked
- ⚠️ 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
- 🔵 sftp uploads are resumable
- ⚠️ web UI is very minimal + a bit slow
- ⚠️ no thumbnails / image viewer / audio player
- ⚠️ basic file manager (no cut/paste/move)
- ⚠️ no filesystem indexing / search
- ⚠️ doesn't run on phones, tablets
- ⚠️ no zeroconf (mdns/ssdp)
- ⚠️ AGPL licensed
- 🔵 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
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