Skip to content

Releases: 9001/copyparty

bing chilling

23 Aug 23:47
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • #94 @ultwcz translated the UI to Chinese (thx!) 92edea1
  • #84 improvements to shares: 8122dde
    • if one or more files are selected for sharing, they are placed into a virtual folder
    • more appropriate password UI for accessing protected shares
    • human-readable timestamps in shares listing
  • u2c (commandline uploader): support multiple exclusion patterns f356faa

bugfixes

  • remove confusing logmessage when downloading a zerobyte file 9f034d9
  • shares: 7ff4696
    • fix crash if the root volume is unmapped
    • log-spam on config reload
    • password coalescing
    • add chrome support

other changes


💾 what to download?

download link is it good? description
copyparty-sfx.py ✅ the best 👍 runs anywhere! only needs python
a docker image it's ok good if you prefer docker 🐋
copyparty.exe ⚠️ acceptable for win8 or later; built-in thumbnailer
u2c.exe ⚠️ acceptable CLI uploader as a win7+ exe (video)
copyparty.pyz ⚠️ acceptable similar to the regular sfx, mostly worse
copyparty32.exe ⛔️ dangerous for win7 -- never expose to the internet!
cpp-winpe64.exe ⛔️ dangerous runs on 64bit WinPE, otherwise useless
  • except for u2c.exe, all of the options above are mostly equivalent
  • the zip and tar.gz files below are just source code
  • python packages are available at PyPI

one step forward

19 Aug 00:26
Compare
Choose a tag to compare

if i turn back now, then this will always follow... one step forward, forward

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • #92 users can change their own passwords 83fb569 00da744
    • this feature is default-disabled; see readme
  • #84 share files/folders by creating a temporary url 7c2beba
    • inspired by other file servers; click the share-button to create a link like example.com/share/enkz8g374o8g
      • primary usecase is to sneak past authentication services (see issue description)
    • the create-share UI has options to accept uploads into the share, and/or set expiration time
    • this feature is default-disabled; see readme

bugfixes

  • #93 fixes for vproxy / location-based / not-vhost-based reverse-proxying 0b46b1a
    • using --rp-loc to reverse-proxy from a subfolder made some UI stuff break
  • listening on unix-sockets: 687df2f
    • fix x-forwarded-for support, and avoid a possible container-specific collision
    • new syntax which allows setting unix-permissions and unix-group
      • -i unix:770:www:/tmp/party.sock (see --help-bind for more examples)
  • using relocation hooks (introduced in previous ver) could cause dedup issues c8f4aea b0af4b3
  • custom fonts using @import css statements 5a62cb4
  • invert volume scrollwheel 7d8d943

other changes

  • changed the button colors in theme 2 (pm-monokai) from red to yellow 5153db6
    • the red buttons look better, but are too confusing because usually red means off

⚠️ not the latest version!

hook into place

13 Aug 00:33
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • #86 intentional side-effects from hooks 6c94a63
    • use hooks (plugins) to conditionally move uploads into another folder depending on filename, extension, uploader ip/name, file contents, ...
    • hooks can create additional files and tell copyparty to index them immediately, or delete an existing file based on some condition
    • only one example so far though, reloc-by-ext which was a feature-request to dodge sharex#3992
  • listen on unix-sockets ee9aad8
    • -i unix:/tmp/party.sock stops listening on TCP ports entirely, and only listens on that unix-socket
    • can be combined with regular sockets, -i 127.0.0.1,unix:/tmp/a.sock
    • kinda buggy for now (need to --xff-src=any and doesn't let you set socket-perms yet), will be fixed in next ver
    • makes it 10% faster, but more importantly offers tighter access control behind reverse-proxies
  • up2k stitching:
    • more optimal stitch sizes for max throughput across connections c862ec1
    • improve fat32 compatibility 373194c
  • new option --js-other to load custom javascript dbd42bc
  • list detected optional dependencies on startup 3db117d
    • hopefully reduces the guesswork / jank factor by a tiny bit

bugfixes

  • up2k stitching:
    • put the request headers on a diet so they fit through more reverse-proxies 0da719f
  • fix deadlock on s390x (IBM mainframes) 250c8c5

other changes


⚠️ not the latest version!

not that big

29 Jul 21:09
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • up2k.js: set clientside timeouts on http connections during upload 85e5498
    • some reverse-proxy setups could cause uploads to hang indefinitely by eating requests; should recover nicely now
  • audio-player shows statustext while loading 662541c
  • bsod theme (live demo) 15ddcf5

bugfixes

  • fix bugs in the long-distance upload optimizations in the previous version:
    • up2k.js didn't necessarily use the expected chunksize when stitching 225bd80
    • u2c (commandline uploader): 8916bce
      • use the correct chunksize instead of overshooting like crazy
      • could crash on exit if -z was enabled (so basically harmless)
      • the "time spent uploading" statustext that was printed on exit could multiply by -j and exceed walltime
  • misc ux 9bb6e0d
    • don't accept hotkeys until it's safe to do so
    • improve messages regarding the firefox crash
    • keep more console logs in memory (easier to debug)
    • fix wordwrap in messageboxes on firefox a19a0fa

other changes

  • changed the xm / "on message" hook examples to reject users without write-access 99edba4
  • docker images were rebuilt on 2024-08-02, 23:30 UTC with new optimizations: 98ffaad
    • 😃 RAM usage decreased by 5-6 MiB for most flavors; 10 MiB for dj/iv
    • 😕 image size grew by 4 MiB (min), 6 MiB (ac/im/iv), 9 MiB (dj)
    • 😃 startup time reduced to about half
    • and avoids a deadlock on IBM mainframes
  • updated comparison to other software 6b54972
    • hfs2 is dead, hfs3 and filebrowser improved

⚠️ not the latest version!

american sized

23 Jul 00:01
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • long-distance uploads are now twice as fast on average 132a835
    • boost tcp windowsize scaling by stitching together smaller chunks into bigger chonks so they fly better across the atlantic
    • i'm not kidding, on the two routes we've tested this on we gained 1.6x / 160% (from US-West to Finland) and 2.6x / 260% (Norway to US-East)
      • files that are between 4 MiB and 256 MiB see the biggest improvement; 70% faster <= 768 MiB, 40% <= 1.5 GiB, 10% <= 6G
    • if this turns out to be buggy, disable it serverside with --u2sz 1,1,1 or clientside in the browser-ui: [⚙️] -> up2k switches -> change 64 to 1
  • u2c.py (CLI uploader): support stitching (☝️) + print a summary with hashing and upload speeds 987bce2
  • video files can play as audio 53f1e3c
    • audio is extracted serverside to avoid wasting bandwidth
    • extraction is lossy (converted to opus or mp3 depending on browser)
    • togglebutton 🎧 in the gridview toolbar to enable/disable
  • new hook: into-the-cache-it-goes.py d26a944
    • avoids a cloudflare bug (race condition?) where it will send truncated files to visitors on the very first load if several people simultaneously access a file that hasn't been viewed before

bugfixes

  • inline markdown/logues rendered black-on-black in firefox 54 and some other browsers from 2017 and older eeef809
  • unintuitive folder thumbnail selection if folder contains both Cover.jpg and cover.jpg f955d2b
  • the gridview toolbar got undocked after viewing a pic/vid dc449bf

other changes

  • #90 recommend rclone in favor of davfs2 ef0ecf8
  • improved some error messages e565ad5
  • added helptext exporters to generate the online html and txt editions 5953399
  • mention that cloudflare is incompatible with uploading files larger than 383.9 GiB

⚠️ not the latest version!

descript.ion

16 Jul 06:20
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • "medialinks"; instead of the usual hotlink, the basic-uploader (as used by sharex and such) can return a link that opens the file in the media viewer c9281f8
    • enable for all uploads with volflag medialinks, or just for one upload by adding ?media to the post url
  • thumbnails are now fully compatible with dirkeys/filekeys 52e0622
  • --th-covers will respect filename order, selecting the first matching filename as the folder thumbnail 1cdb170
  • new hook: bittorrent downloader bd3b386 803e156
  • hooks: d749683
    • can be restricted to only run when user has specific permissions
    • user permissions are also included in the json message to the hook
    • new syntax to prepend args to the hook's command
    • (all this will be better documented after some additional upcoming hook-related features, see --help-hooks for now)
  • support descript.ion usenet metadata; will parse and render into directory listings when possible 927c3bc
    • directory listings are now 2% slower, eh who's keeping count anyways
  • tftp-server: 4525925
    • improved support for buggy clients
    • improved ipv6 support, especially on macos
    • improved robustness on unreliable networks
  • #85 new option --gsel to default-enable the client setting to select files by ctrl-clicking them in the grid 9a87ee2
  • music player: set audio volume by scrollwheel 36d6d29

bugfixes

  • race-the-beam (downloading an unfinished upload) could get interrupted near the end, requiring a manual resume in the browser's download manager to finish f37187a
  • ftp-server: when accessing the root folder of servers without a root folder, it could mention inaccessible folders 84e8e1d
  • ftp-server: uploads will automatically replace existing files if user has delete perms 0a9f4c6
    • windows 2000 expects this behavior, otherwise it'll freak out and delete stuff and then not actually upload it, nice
    • new option --ftp-no-ow restores old default behavior of rejecting upload if target filename exists
  • music player:
    • stop trying to recover from a corrupted file if the user already fixed it manually 55a011b
    • support downloading the currently playing song regardless of current folder c06aa68
  • music player preloader: db6059e
    • stop searching after 5 folders of nothing
    • don't crash playback by walking into error-pages
  • --og (rich discord embeds) was incompatible with viewing markdown docs d75a2c7
  • --cgen (configfile generator) much less jank d5de3f2

other changes

  • mention that HTTP/2 is still usually slower than HTTP/1.1 dfe7f1d
  • give up much sooner if a client is supposed to send a request body but isn't c549f36
  • support running copyparty as a server on windows 2000 and winXP 8c73e0c 2fd12a8
  • updated deps 6e58514
    • copyparty.exe: python 3.12, pillow 10.4, pyinstaller 6.9
    • dompurify 3.1.6

⚠️ not the latest version!

700+

01 Jun 23:59
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • keep tags when transcoding music to opus/mp3 07ea629
    • useful for batch-downloading folders with on-the-fly transcoding
    • excessively large tags will be individually dropped (traktor beatmaps, cover-art, xmp)

bugfixes

  • optimization for large amounts (700+) of tcp connections / clients 07b2bf1
    • select() was used for non-https downloads and mdns/ssdp initialization, which would start spinning at more than 1024 FDs, so now they poll() when possible (so not on windows)
    • default max number of connections on windows was lowered to 486 since windows maxes out at 512 FDs
  • the markdown editor autoindent would duplicate <hr> 692175f

other changes

  • #83: more intuitive behavior for --df and the df volflag 5ad6545
  • print helpful warning if OS restrictions make it impossible to persist config b629d18
  • censor filesystem paths in the download-as-zip error summary 5919607
  • u2c.exe: explain that https is disabled bef9617
  • ux: 60c96f9
    • hide lightbox buttons when a video is playing
    • move audio seekbar text down a bit so it hides less of the waveform and minute-markers
  • updated dompurify to 3.1.5 f00b939
  • updated docker images to alpine 3.20

⚠️ not the latest version!

s3xmodit.zip

10 May 15:19
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • play compressed s3xmodit chiptunes/modules c046627
    • can now read gz/xz/zip-compressed s3m/xm/mod/it songs
    • new filetypes supported: mdz, mdgz, mdxz, s3z, s3gz, s3xz, xmz, xmgz, xmxz, itz, itgz, itxz
    • and if you need to fit even more tracks on the mixtape, try mo3
  • option to batch-convert audio waveforms 38e4fdf
  • volflag to improve audio waveform compression with pngquant 82ce686
  • option to add or change mappings from file-extensions to mimetypes 560d7b6
  • export and publish the --help text for online viewing 560d7b6
    • now available as html and as plaintext, includes many features not documented in the readme
  • another way to add your own UI translations 19d156f

bugfixes

  • ensure OS signals are immediately received and processed 87c60a1
    • things like reload and shutdown signals from systemd could get lost/stuck
  • fix mimetype detection for uppercase file extensions 565daee
  • when clicking a .ts file in the gridview, don't open it as text 925c7f0
    • ...as it's probably an mpeg transport-stream, not a typescript file
  • be less aggressive in dropping volume caches e396c5c
    • very minor performance gain, only really relevant if you're doing something like burning a copyparty volume onto a CD
    • previously, adding or removing any volume at all was enough to drop covers cache for all volumes; now this only happens if an intersecting volume is added/removed

other changes

  • updated dompurify to 3.1.2 566cbb6
  • opengraph: add the full filename as url suffix 5c1e239
    • so discord picks a good filename when saving an image

⚠️ not the latest version!

ctrl-v

06 May 01:22
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • upload files by ctrl-c from OS and ctrl-v into browser c5f7cfc
    • from just about any file manager (windows explorer, thunar on linux, etc.) into the copyparty web-ui
    • only files, not folders, so drag-drop is still the recommended way
  • empty folders show an "empty folder" banner fdda567
  • opengraph / discord embeds ea270ab 36f2c44 48a6789 b15a4ef
    • embeds audio with covers , images , videos , audio without coverart (links to one of the copyparty demoservers where the feature is enabled; link those in discord to test)
    • images are currently not rendering correctly once clicked on android-discord (works on ios and in browser)
    • default-disabled because opengraph disables hotlinking by design
  • add option to support base64-encoded url queries parceled into the url location 69517e4
    • because android-specific discord bugs prevent the use of queries in opengraph tags
  • improve server performance when downloading unfinished uploads, especially on slow storage 70a3cf3
  • add dynamic content into <head> using --html-head which now takes files and/or jinja templates as input b6cf2d3
  • --au-vol (default 50, same as before) sets default audio volume in percent da091ae
  • add copyparty.pyz buildscript 27485a4
  • support ie4 and the version of winzip you'd find on an average windows 3.11 pc 603d0ed

bugfixes

  • when logging in from the 403 page, remember and apply the original url hash f849197
  • the config-reset button in the control-panel didn't clear the dotfiles preference bc2c1e4
  • the search feature could discover and use stale indexes in volumes where indexing was since disabled 95d9e69
  • when in doubt, periodically recheck if filesystems support sparse files f6e693f
    • reduces opportunities for confusion on servers with removable media (usb flashdrives)

this release introduces copyparty.pyz, yet another way to bring copyparty where it's needed -- very limited and with many drawbacks (see readme) but may work when the others don't


⚠️ not the latest version!

race the beam

20 Apr 22:59
Compare
Choose a tag to compare

there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2023-07-23)

new features

  • files can be downloaded before the upload has completed ("almost like peer-to-peer")
    • watch the release trailer 👌
    • if the downloader catches up with the upload, the speed is gradually slowed down so it never runs ahead
    • can be disabled with --no-pipe
  • option --no-db-ip disables storing the uploader IP in the database bf58507
  • u2c (cli uploader): option --ow to overwrite existing files on the server 439cb7f

bugfixes

  • when running on windows, using the web-UI to abort an upload could fail 8c552f1
  • rapidly PUT-uploading and then deleting files could crash the file hasher feecb3e

⚠️ not the latest version!