v1.20.21

9001/copypartyv1.20.21Aug 17, 2026by 9001

AI Summary

Introduces custom thumbnail extractors and significant improvements to WOPI (Web Office Protocol Integration).

Key Highlights

  • Custom thumbnail extractors with documentation and examples
  • WOPI persistent file-ID for real-time collaboration
  • WOPI access control option to limit usage
  • SVG image support in the lightbox viewer

New Features

  • Custom thumbnail extractors
  • WOPI persistent file-ID
  • WOPI access control (--wopi-accs)
  • SVG support in lightbox
  • u2c password via U2C_PW environment variable

Full Release Notes

<img src="https://github.com/9001/copyparty/raw/hovudstraum/docs/logo.svg" width="250" align="right"/>

* read-only demo server at https://a.ocv.me/pub/demo/
* [docker image](https://github.com/9001/copyparty/tree/hovudstraum/scripts/docker) ╱ [similar software](https://github.com/9001/copyparty/blob/hovudstraum/docs/versus.md) ╱ [client testbed](https://cd.ocv.me/b/)

there is a [discord server](https://discord.gg/25J8CdTT6G) with an `@everyone` in case of future important updates, such as [vulnerabilities](https://github.com/9001/copyparty/security) (most recently 2026-07-27)

## recent important news

* [v1.20.19 (2026-07-27)](https://github.com/9001/copyparty/releases/tag/v1.20.19) fixed an FTP-server vuln (upload outside defined volumes)
* [v1.20.17 (2026-07-06)](https://github.com/9001/copyparty/releases/tag/v1.20.17) fixed a vuln when a volume has both filekeys and dirkeys enabled
* [v1.20.17 (2026-07-06)](https://github.com/9001/copyparty/releases/tag/v1.20.17) introduced csp nonces, possibly breaking some javascript-based plugins

## 🧪 new features

* #1602 custom thumbnail extractors; [docs/example](https://github.com/9001/copyparty/tree/hovudstraum/bin/thumbs) (thx @kamaeff!) 18648050 dbc6df81
* #1604 [u2c](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy): password can be provided in env-var `U2C_PW` (thx @shermanhlc!) 47297475
* wopi: option [--wopi-accs](https://copyparty.eu/cli/#g-wopi-accs) to limit who's able to use the feature 78a4ee49
  * also fixes wopi on servers where user does not have read/write-access to root volume
  * also restricts the token to just that one file; good if the wopi-client is some cloud thing that shouldn't be trusted
* #1591 wopi: use persistent file-ID which is necessary for real-time collab (thx @kamaeff!) efcf96e3
* #1605 the lightbox can show svg images now 825f1c94

## 🩹 bugfixes

* up2k: client could waste a little bandwidth while recovering from a network glitch 18791c57
* if `PRTY_CONFIG` is set to a config-file that is also autodetected, then explain the misconfiguration instead of crashing like before 14e2d79b
* wopi: fix session-timeout hint to clients (thx @kamaeff!) 92c3f32e
* js: fix chance of duplicate prologue on very first page visit eeb399e3
* js: fix panic on image dragdrop out of the browser window dcc0abd6

## 🔧 other changes

* up2k: client now detects when server or reverseproxy is incorrectly configured with an impractically small request-body-size-limit, crashing the website with [an explanation](https://github.com/9001/copyparty/#u2sz) how to fix it f19ef033
  * also allows setting the chunksize all the way down to 1 megabyte when absolutely necessary (bad idea, slow)
* new option [--allow-svg-js](https://copyparty.eu/cli/#g-allow-svg-js) if you really want that 566de65f
* shares: harden single-file shares some more 21c2c728 9ff6a71a
  * just removing footguns (motivated by a bug-report that was a false-positive)
* copyparty.exe: upgrade to python 3.14.7 from 3.13.14 8b6e8972
  * larger and slightly faster (compensated for the size bloat by making the text-image-generator more shitty)

## 🌠 fun facts

* the [thumbex example](https://github.com/9001/copyparty/blob/hovudstraum/bin/thumbs/randomcolor.py) is also a cool example how relevant the "pseudo" in PRNG can be; with `random.randrange` instead of `os.urandom`, [first run](https://a.ocv.me/pub/g/2026/08/Screenshot_2026-08-15_19-56-35.png?cache) followed by restarting copyparty and [another run](https://a.ocv.me/pub/g/2026/08/Screenshot_2026-08-15_19-56-38.png?cache)...heh

----

## ⚠️ not the [latest version](https://github.com/9001/copyparty/releases/latest/)!