• v2.1.0 eb25631799

    v2.1.0
    linter / quality (push) Successful in 1m4s
    tests / ci (8.5) (push) Successful in 3m24s
    docker / build-and-push (push) Successful in 7m6s
    docker / test (8.5) (push) Successful in 3m30s
    docker / release (push) Successful in 4s
    Stable

    gitea-actions released this 2026-09-16 19:52:10 +00:00 | 17 commits to main since this release

    Added

    • A password generator for share passwords, with a copy button. The password is shown once more beside the new link. Admins can turn it off, or switch between random characters and a passphrase, in Admin settings.
    • AUTO_HTTPS for the Docker image: set it to "true" with SERVER_NAME to get a Let's Encrypt certificate and serve HTTPS. Without it the container serves plain HTTP on port 80, as before.
    • UPLOAD_CHUNK_SIZE_MB sets the size of each upload chunk (default 16).

    Changed

    • Breaking: uploads need HTTPS. Files are now encrypted in the browser and uploaded in chunks, which browsers only allow over HTTPS or on localhost. Over plain HTTP downloads still work, but uploads don't. Use AUTO_HTTPS or a reverse proxy that terminates TLS.
    • Large uploads are much faster: each chunk is written to disk once, already encrypted, and a failed chunk is retried.
    • Each share has its own random key; with a share password it is protected with Argon2id instead of PBKDF2. Existing shares keep working.
    • PHP's upload limits no longer cap the share file size. PHP_UPLOAD_MAX_FILESIZE and PHP_POST_MAX_SIZE default to 64M, and LIVEWIRE_MAX_UPLOAD_TIME is no longer needed.
    • Unfinished uploads count towards the storage quota and are deleted after 4 hours.
    • The interface moves to Livewire Material 2.1.0 and no longer ships Tailwind CSS. Every page uses the same single-column layout of cards, and the admin dashboard lists shares instead of a table. Colour profiles and light/dark choices carry over.

    Fixed

    • "Download all" works for large shares: the ZIP is streamed instead of being built in memory and written unencrypted to a temporary file.
    • Unencrypted copies of uploads no longer stay behind in Livewire's temporary folder; the hourly cleanup removes old ones.
    • Removed the unused docker/Caddyfile.

    Security

    • An encrypted file with missing or reordered chunks now fails to decrypt.
    Downloads