v1.20.21
teamhanko/hankov1.20.21Aug 17, 2026by 9001
Upgrading?
AI Summary
This release introduces custom thumbnail extractors, enhances WOPI support for real-time collaboration, and adds SVG support to the lightbox. It also includes various bug fixes and security hardening measures.
Key Highlights
- Custom thumbnail extractors allow users to define custom image-to-thumbnail conversion logic.
- WOPI protocol improvements enable real-time collaboration via persistent file-IDs.
- Lightbox now supports displaying SVG images directly.
- Python upgraded to version 3.14.7.
New Features
- Custom thumbnail extractors (#1602)
- u2c password provided via env-var `U2C_PW` (#1604)
- WOPI access control option `--wopi-accs`
- WOPI persistent file-ID for real-time collab (#1591)
- Lightbox SVG image support
- Option `--allow-svg-js`
- up2k client detects misconfigured reverseproxy
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/)!
Related Repositories
ollama/ollama★ 184,219
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,057
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,619
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,199
The world’s fastest framework for building websites.
junegunn/fzf★ 83,715
:cherry_blossom: A command-line fuzzy finder