mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
update readmes + fix typo
This commit is contained in:
parent
43ff2e531a
commit
5cb2e33353
14
README.md
14
README.md
|
@ -96,7 +96,7 @@ try the **[read-only demo server](https://a.ocv.me/pub/demo/)** 👀 running fro
|
||||||
* [optional dependencies](#optional-dependencies) - install these to enable bonus features
|
* [optional dependencies](#optional-dependencies) - install these to enable bonus features
|
||||||
* [optional gpl stuff](#optional-gpl-stuff)
|
* [optional gpl stuff](#optional-gpl-stuff)
|
||||||
* [sfx](#sfx) - the self-contained "binary"
|
* [sfx](#sfx) - the self-contained "binary"
|
||||||
* [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) or [copyparty64.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty64.exe)
|
* [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+)
|
||||||
* [install on android](#install-on-android)
|
* [install on android](#install-on-android)
|
||||||
* [reporting bugs](#reporting-bugs) - ideas for context to include in bug reports
|
* [reporting bugs](#reporting-bugs) - ideas for context to include in bug reports
|
||||||
* [devnotes](#devnotes) - for build instructions etc, see [./docs/devnotes.md](./docs/devnotes.md)
|
* [devnotes](#devnotes) - for build instructions etc, see [./docs/devnotes.md](./docs/devnotes.md)
|
||||||
|
@ -1376,15 +1376,19 @@ you can reduce the sfx size by repacking it; see [./docs/devnotes.md#sfx-repack]
|
||||||
|
|
||||||
## copyparty.exe
|
## copyparty.exe
|
||||||
|
|
||||||
download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) or [copyparty64.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty64.exe)
|
download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
can be convenient on old machines where installing python is problematic, however is **not recommended** and should be considered a last resort -- if possible, please use **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py)** instead
|
can be convenient on machines where installing python is problematic, however is **not recommended** -- if possible, please use **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py)** instead
|
||||||
|
|
||||||
* [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) is compatible with 32bit windows7, which means it uses an ancient copy of python (3.7.9) which cannot be upgraded and will definitely become a security hazard at some point
|
* [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) runs on win8 or newer, was compiled on win10, does thumbnails + media tags, and is *currently* safe to use, but any future python/expat/pillow CVEs can only be remedied by downloading a newer version of the exe
|
||||||
|
|
||||||
* [copyparty64.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty64.exe) is identical except 64bit so it [works in WinPE](https://user-images.githubusercontent.com/241032/205454984-e6b550df-3c49-486d-9267-1614078dd0dd.png)
|
* on win8 it needs [vc redist 2015](https://www.microsoft.com/en-us/download/details.aspx?id=48145), on win10 it just works
|
||||||
|
|
||||||
|
* dangerous: [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) is compatible with windows7, which means it uses an ancient copy of python (3.7.9) which cannot be upgraded and should never be exposed to the internet (LAN is fine)
|
||||||
|
|
||||||
|
* dangerous and deprecated: [copyparty64.exe](https://github.com/9001/copyparty/releases/download/v1.6.5/copyparty64.exe) lets you [run copyparty in WinPE](https://user-images.githubusercontent.com/241032/205454984-e6b550df-3c49-486d-9267-1614078dd0dd.png) and is otherwise completely useless
|
||||||
|
|
||||||
meanwhile [copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py) instead relies on your system python which gives better performance and will stay safe as long as you keep your python install up-to-date
|
meanwhile [copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py) instead relies on your system python which gives better performance and will stay safe as long as you keep your python install up-to-date
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,24 @@ standalone programs which are executed by copyparty when an event happens (uploa
|
||||||
|
|
||||||
these programs either take zero arguments, or a filepath (the affected file), or a json message with filepath + additional info
|
these programs either take zero arguments, or a filepath (the affected file), or a json message with filepath + additional info
|
||||||
|
|
||||||
|
run copyparty with `--help-hooks` for usage details / hook type explanations (xbu/xau/xiu/xbr/xar/xbd/xad)
|
||||||
|
|
||||||
> **note:** in addition to event hooks (the stuff described here), copyparty has another api to run your programs/scripts while providing way more information such as audio tags / video codecs / etc and optionally daisychaining data between scripts in a processing pipeline; if that's what you want then see [mtp plugins](../mtag/) instead
|
> **note:** in addition to event hooks (the stuff described here), copyparty has another api to run your programs/scripts while providing way more information such as audio tags / video codecs / etc and optionally daisychaining data between scripts in a processing pipeline; if that's what you want then see [mtp plugins](../mtag/) instead
|
||||||
|
|
||||||
|
|
||||||
# after upload
|
# after upload
|
||||||
* [notify.py](notify.py) shows a desktop notification ([example](https://user-images.githubusercontent.com/241032/215335767-9c91ed24-d36e-4b6b-9766-fb95d12d163f.png))
|
* [notify.py](notify.py) shows a desktop notification ([example](https://user-images.githubusercontent.com/241032/215335767-9c91ed24-d36e-4b6b-9766-fb95d12d163f.png))
|
||||||
|
* [notify2.py](notify2.py) uses the json API to show more context
|
||||||
* [discord-announce.py](discord-announce.py) announces new uploads on discord using webhooks ([example](https://user-images.githubusercontent.com/241032/215304439-1c1cb3c8-ec6f-4c17-9f27-81f969b1811a.png))
|
* [discord-announce.py](discord-announce.py) announces new uploads on discord using webhooks ([example](https://user-images.githubusercontent.com/241032/215304439-1c1cb3c8-ec6f-4c17-9f27-81f969b1811a.png))
|
||||||
* [reject-mimetype.py](reject-mimetype.py) rejects uploads unless the mimetype is acceptable
|
* [reject-mimetype.py](reject-mimetype.py) rejects uploads unless the mimetype is acceptable
|
||||||
|
|
||||||
|
|
||||||
|
# upload batches
|
||||||
|
these are `--xiu` hooks; unlike `xbu` and `xau` (which get executed on every single file), `xiu` hooks are given a list of recent uploads on STDIN after the server has gone idle for N seconds, reducing server load + providing more context
|
||||||
|
* [xiu.py](xiu.py) is a "minimal" example showing a list of filenames + total filesize
|
||||||
|
* [xiu-sha.py](xiu-sha.py) produces a sha512 checksum list in the volume root
|
||||||
|
|
||||||
|
|
||||||
# before upload
|
# before upload
|
||||||
* [reject-extension.py](reject-extension.py) rejects uploads if they match a list of file extensions
|
* [reject-extension.py](reject-extension.py) rejects uploads if they match a list of file extensions
|
||||||
|
|
||||||
|
|
|
@ -452,7 +452,7 @@ var Ls = {
|
||||||
"ur_aun": "All {0} uploads failed, sorry",
|
"ur_aun": "All {0} uploads failed, sorry",
|
||||||
"ur_1sn": "File was NOT found on server",
|
"ur_1sn": "File was NOT found on server",
|
||||||
"ur_asn": "The {0} files were NOT found on server",
|
"ur_asn": "The {0} files were NOT found on server",
|
||||||
"ur_um": "Finished;\n{0} uplads OK,\n{1} uploads failed, sorry",
|
"ur_um": "Finished;\n{0} uploads OK,\n{1} uploads failed, sorry",
|
||||||
"ur_sm": "Finished;\n{0} files found on server,\n{1} files NOT found on server",
|
"ur_sm": "Finished;\n{0} files found on server,\n{1} files NOT found on server",
|
||||||
|
|
||||||
"lang_set": "refresh to make the change take effect?",
|
"lang_set": "refresh to make the change take effect?",
|
||||||
|
|
|
@ -17,6 +17,6 @@ problem: `svchost.exe` is using 100% of a cpu core, and upon further inspection
|
||||||
"solution": create a virtual filesystem which is intentionally slow and trick windows into reading it from there instead
|
"solution": create a virtual filesystem which is intentionally slow and trick windows into reading it from there instead
|
||||||
|
|
||||||
* create a file called `AppxManifest.xml` and put something dumb in it
|
* create a file called `AppxManifest.xml` and put something dumb in it
|
||||||
* serve the file from a copyparty instance with `--rsp-slp=9` so every request will hang for 9 sec
|
* serve the file from a copyparty instance with `--rsp-slp=1` so every request will hang for 1 sec
|
||||||
* `net use m: http://127.0.0.1:3993/` (mount copyparty using the windows-native webdav client)
|
* `net use m: http://127.0.0.1:3993/` (mount copyparty using the windows-native webdav client)
|
||||||
* `mklink /d c:\windows\systemapps\microsoftwindows.client.cbs_cw5n1h2txyewy\AppxManifest.xml m:\AppxManifest.xml`
|
* `mklink /d c:\windows\systemapps\microsoftwindows.client.cbs_cw5n1h2txyewy\AppxManifest.xml m:\AppxManifest.xml`
|
||||||
|
|
|
@ -25,13 +25,15 @@
|
||||||
|
|
||||||
some improvement ideas
|
some improvement ideas
|
||||||
|
|
||||||
* the JS is a mess -- a preact rewrite would be nice
|
* the JS is a mess -- a ~~preact~~ rewrite would be nice
|
||||||
* preferably without build dependencies like webpack/babel/node.js, maybe a python thing to assemble js files into main.js
|
* preferably without build dependencies like webpack/babel/node.js, maybe a python thing to assemble js files into main.js
|
||||||
* good excuse to look at using virtual lists (browsers start to struggle when folders contain over 5000 files)
|
* good excuse to look at using virtual lists (browsers start to struggle when folders contain over 5000 files)
|
||||||
|
* maybe preact / vdom isn't the best choice, could just wait for the Next Big Thing
|
||||||
* the UX is a mess -- a proper design would be nice
|
* the UX is a mess -- a proper design would be nice
|
||||||
* very organic (much like the python/js), everything was an afterthought
|
* very organic (much like the python/js), everything was an afterthought
|
||||||
* true for both the layout and the visual flair
|
* true for both the layout and the visual flair
|
||||||
* something like the tron board-room ui (or most other hollywood ones, like ironman) would be :100:
|
* something like the tron board-room ui (or most other hollywood ones, like ironman) would be :100:
|
||||||
|
* would preferably keep the information density, just more organized yet [not too boring](https://blog.rachelbinx.com/2023/02/unbearable-sameness/)
|
||||||
* some of the python files are way too big
|
* some of the python files are way too big
|
||||||
* `up2k.py` ended up doing all the file indexing / db management
|
* `up2k.py` ended up doing all the file indexing / db management
|
||||||
* `httpcli.py` should be separated into modules in general
|
* `httpcli.py` should be separated into modules in general
|
||||||
|
|
|
@ -7,6 +7,20 @@ there is probably some unintentional bias so please submit corrections
|
||||||
currently up to date with [awesome-selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) but that probably won't last
|
currently up to date with [awesome-selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) but that probably won't last
|
||||||
|
|
||||||
|
|
||||||
|
## symbol legends
|
||||||
|
|
||||||
|
### ...in feature matrices:
|
||||||
|
* `█` = absolutely
|
||||||
|
* `╱` = partially
|
||||||
|
* `•` = maybe?
|
||||||
|
* ` ` = nope
|
||||||
|
|
||||||
|
### ...in reviews:
|
||||||
|
* ✅ = advantages over copyparty
|
||||||
|
* 🔵 = similarities
|
||||||
|
* ⚠️ = disadvantages (something copyparty does "better")
|
||||||
|
|
||||||
|
|
||||||
## toc
|
## toc
|
||||||
|
|
||||||
* top
|
* top
|
||||||
|
@ -37,6 +51,8 @@ currently up to date with [awesome-selfhosted](https://github.com/awesome-selfho
|
||||||
* [gimme-that](#gimme-that)
|
* [gimme-that](#gimme-that)
|
||||||
* [ass](#ass)
|
* [ass](#ass)
|
||||||
* [linx](#linx)
|
* [linx](#linx)
|
||||||
|
* [h5ai](#h5ai)
|
||||||
|
* [autoindex](#autoindex)
|
||||||
* [briefly considered](#briefly-considered)
|
* [briefly considered](#briefly-considered)
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,8 +79,8 @@ the table headers in the matrixes below are the different softwares, with a quic
|
||||||
|
|
||||||
the softwares,
|
the softwares,
|
||||||
* `a` = [copyparty](https://github.com/9001/copyparty)
|
* `a` = [copyparty](https://github.com/9001/copyparty)
|
||||||
* `b` = [hfs2](https://github.com/rejetto/hfs2)
|
* `b` = [hfs2](https://rejetto.com/hfs/)
|
||||||
* `c` = [hfs3](https://www.rejetto.com/hfs/)
|
* `c` = [hfs3](https://github.com/rejetto/hfs)
|
||||||
* `d` = [nextcloud](https://github.com/nextcloud/server)
|
* `d` = [nextcloud](https://github.com/nextcloud/server)
|
||||||
* `e` = [seafile](https://github.com/haiwen/seafile)
|
* `e` = [seafile](https://github.com/haiwen/seafile)
|
||||||
* `f` = [rclone](https://github.com/rclone/rclone), specifically `rclone serve webdav .`
|
* `f` = [rclone](https://github.com/rclone/rclone), specifically `rclone serve webdav .`
|
||||||
|
@ -363,7 +379,8 @@ symbol legend,
|
||||||
# reviews
|
# reviews
|
||||||
|
|
||||||
* ✅ are advantages over copyparty
|
* ✅ are advantages over copyparty
|
||||||
* ⚠️ are disadvantages
|
* 🔵 are similarities
|
||||||
|
* ⚠️ are disadvantages (something copyparty does "better")
|
||||||
|
|
||||||
## [copyparty](https://github.com/9001/copyparty)
|
## [copyparty](https://github.com/9001/copyparty)
|
||||||
* resumable uploads which are verified server-side
|
* resumable uploads which are verified server-side
|
||||||
|
@ -371,7 +388,7 @@ symbol legend,
|
||||||
* both of the above are surprisingly uncommon features
|
* both of the above are surprisingly uncommon features
|
||||||
* very cross-platform (python, no dependencies)
|
* very cross-platform (python, no dependencies)
|
||||||
|
|
||||||
## [hfs2](https://github.com/rejetto/hfs2)
|
## [hfs2](https://rejetto.com/hfs/)
|
||||||
* the OG, the legend
|
* the OG, the legend
|
||||||
* ⚠️ uploads not resumable / accelerated / integrity-checked
|
* ⚠️ uploads not resumable / accelerated / integrity-checked
|
||||||
* ⚠️ on cloudflare: max upload size 100 MiB
|
* ⚠️ on cloudflare: max upload size 100 MiB
|
||||||
|
@ -380,7 +397,7 @@ symbol legend,
|
||||||
* vfs with gui config, per-volume permissions
|
* vfs with gui config, per-volume permissions
|
||||||
* starting to show its age, hence the rewrite:
|
* starting to show its age, hence the rewrite:
|
||||||
|
|
||||||
## [hfs3](https://www.rejetto.com/hfs/)
|
## [hfs3](https://github.com/rejetto/hfs)
|
||||||
* nodejs; cross-platform
|
* nodejs; cross-platform
|
||||||
* vfs with gui config, per-volume permissions
|
* vfs with gui config, per-volume permissions
|
||||||
* still early development, let's revisit later
|
* still early development, let's revisit later
|
||||||
|
@ -434,12 +451,12 @@ symbol legend,
|
||||||
* ⚠️ on cloudflare: max upload size 100 MiB
|
* ⚠️ on cloudflare: max upload size 100 MiB
|
||||||
* ⚠️ doesn't support crazy filenames
|
* ⚠️ doesn't support crazy filenames
|
||||||
* ✅ per-url access control (copyparty is per-volume)
|
* ✅ per-url access control (copyparty is per-volume)
|
||||||
* basic but really snappy ui
|
* 🔵 basic but really snappy ui
|
||||||
* upload, rename, delete, ... see feature matrix
|
* 🔵 upload, rename, delete, ... see feature matrix
|
||||||
|
|
||||||
## [chibisafe](https://github.com/chibisafe/chibisafe)
|
## [chibisafe](https://github.com/chibisafe/chibisafe)
|
||||||
* nodejs; recommends docker
|
* nodejs; recommends docker
|
||||||
* *it has upload segmenting!*
|
* 🔵 *it has upload segmenting!*
|
||||||
* ⚠️ but uploads are still not resumable / accelerated / integrity-checked
|
* ⚠️ but uploads are still not resumable / accelerated / integrity-checked
|
||||||
* ⚠️ not portable
|
* ⚠️ not portable
|
||||||
* ⚠️ isolated on-disk file hierarchy, incompatible with other software
|
* ⚠️ isolated on-disk file hierarchy, incompatible with other software
|
||||||
|
@ -456,7 +473,7 @@ symbol legend,
|
||||||
## [kodbox](https://github.com/kalcaddle/kodbox)
|
## [kodbox](https://github.com/kalcaddle/kodbox)
|
||||||
* this thing is insane
|
* this thing is insane
|
||||||
* php; [docker](https://hub.docker.com/r/kodcloud/kodbox)
|
* php; [docker](https://hub.docker.com/r/kodcloud/kodbox)
|
||||||
* *upload segmenting, acceleration, and integrity checking!*
|
* 🔵 *upload segmenting, acceleration, and integrity checking!*
|
||||||
* ⚠️ but uploads are not resumable(?)
|
* ⚠️ but uploads are not resumable(?)
|
||||||
* ⚠️ not portable
|
* ⚠️ not portable
|
||||||
* ⚠️ isolated on-disk file hierarchy, incompatible with other software
|
* ⚠️ isolated on-disk file hierarchy, incompatible with other software
|
||||||
|
@ -483,17 +500,17 @@ symbol legend,
|
||||||
* ⚠️ but no directory tree for navigation
|
* ⚠️ but no directory tree for navigation
|
||||||
* ✅ user signup
|
* ✅ user signup
|
||||||
* ✅ command runner / remote shell
|
* ✅ command runner / remote shell
|
||||||
* supposed to have write-only folders but couldn't get it to work
|
* 🔵 supposed to have write-only folders but couldn't get it to work
|
||||||
|
|
||||||
## [filegator](https://github.com/filegator/filegator)
|
## [filegator](https://github.com/filegator/filegator)
|
||||||
* go; cross-platform (windows, linux, mac)
|
* 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
|
* ⚠️ http only; no webdav / ftp / zeroconf
|
||||||
* ⚠️ does not support symlinks
|
* ⚠️ does not support symlinks
|
||||||
* ⚠️ expensive download-as-zip feature
|
* ⚠️ expensive download-as-zip feature
|
||||||
* ⚠️ doesn't support crazy filenames
|
* ⚠️ doesn't support crazy filenames
|
||||||
* ⚠️ limited file search
|
* ⚠️ limited file search
|
||||||
* *it has upload segmenting and acceleration*
|
|
||||||
* ⚠️ but uploads are still not integrity-checked
|
|
||||||
|
|
||||||
## [updog](https://github.com/sc0tfree/updog)
|
## [updog](https://github.com/sc0tfree/updog)
|
||||||
* python; cross-platform
|
* python; cross-platform
|
||||||
|
@ -510,8 +527,8 @@ symbol legend,
|
||||||
* ⚠️ on cloudflare: max upload size 100 MiB
|
* ⚠️ on cloudflare: max upload size 100 MiB
|
||||||
* ✅ cool clipboard widget
|
* ✅ cool clipboard widget
|
||||||
* copyparty: the markdown editor is an ok substitute
|
* copyparty: the markdown editor is an ok substitute
|
||||||
* read-only and upload-only modes (same as copyparty's write-only)
|
* 🔵 read-only and upload-only modes (same as copyparty's write-only)
|
||||||
* https, webdav
|
* 🔵 https, webdav, but no ftp
|
||||||
|
|
||||||
## [gimme-that](https://github.com/nejdetckenobi/gimme-that)
|
## [gimme-that](https://github.com/nejdetckenobi/gimme-that)
|
||||||
* python, but with c dependencies
|
* python, but with c dependencies
|
||||||
|
@ -520,7 +537,7 @@ symbol legend,
|
||||||
* ⚠️ on cloudflare: max upload size 100 MiB
|
* ⚠️ on cloudflare: max upload size 100 MiB
|
||||||
* ⚠️ weird folder structure for uploads
|
* ⚠️ weird folder structure for uploads
|
||||||
* ✅ clamav antivirus check on upload! neat
|
* ✅ clamav antivirus check on upload! neat
|
||||||
* optional max-filesize, os-notification on uploads
|
* 🔵 optional max-filesize, os-notification on uploads
|
||||||
* copyparty: os-notification available as [a plugin](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/notify.py)
|
* copyparty: os-notification available as [a plugin](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/notify.py)
|
||||||
|
|
||||||
## [ass](https://github.com/tycrek/ass)
|
## [ass](https://github.com/tycrek/ass)
|
||||||
|
@ -544,7 +561,7 @@ symbol legend,
|
||||||
* originally [andreimarcu/linx-server](https://github.com/andreimarcu/linx-server) but development has ended
|
* originally [andreimarcu/linx-server](https://github.com/andreimarcu/linx-server) but development has ended
|
||||||
* ⚠️ uploads not resumable / accelerated / integrity-checked
|
* ⚠️ uploads not resumable / accelerated / integrity-checked
|
||||||
* ⚠️ on cloudflare: max upload size 100 MiB
|
* ⚠️ on cloudflare: max upload size 100 MiB
|
||||||
* some of its unique features have been added to copyparty as former linx users have migrated
|
* 🔵 some of its unique features have been added to copyparty as former linx users have migrated
|
||||||
* file expiration timers, filename randomization
|
* file expiration timers, filename randomization
|
||||||
* ✅ password-protected files
|
* ✅ password-protected files
|
||||||
* copyparty: password-protected folders + filekeys to skip the folder password seem to cover most usecases
|
* copyparty: password-protected folders + filekeys to skip the folder password seem to cover most usecases
|
||||||
|
@ -554,8 +571,19 @@ symbol legend,
|
||||||
* copyparty: available as [a plugin](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/wget.py)
|
* copyparty: available as [a plugin](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/wget.py)
|
||||||
* ✅ can use S3 as storage backend; copyparty relies on rclone-mount for that
|
* ✅ can use S3 as storage backend; copyparty relies on rclone-mount for that
|
||||||
|
|
||||||
|
## [h5ai](https://larsjung.de/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](https://github.com/nielsAD/autoindex)
|
||||||
|
* ⚠️ read only; no upload/move/delete
|
||||||
|
* ✅ directory cache for faster browsing of cloud storage
|
||||||
|
* copyparty: local index/cache for recursive search (names/attrs/tags), but not for browsing
|
||||||
|
|
||||||
|
|
||||||
# briefly considered
|
# briefly considered
|
||||||
* [pydio](https://github.com/pydio/cells): python/agpl3, looks great, fantastic ux -- but needs mariadb, systemwide install
|
* [pydio](https://github.com/pydio/cells): python/agpl3, looks great, fantastic ux -- but needs mariadb, systemwide install
|
||||||
* [gossa](https://github.com/pldubouilh/gossa): go/mit, minimalistic, basic file upload, text editor, mkdir and rename (no delete/move)
|
* [gossa](https://github.com/pldubouilh/gossa): go/mit, minimalistic, basic file upload, text editor, mkdir and rename (no delete/move)
|
||||||
* [h5ai](https://larsjung.de/h5ai/): php/mit, slick ui, image viewer, directory tree, no upload feature
|
|
||||||
|
|
Loading…
Reference in a new issue