Back to directory
eikek avatar

sharry

Sharry is a self-hosted file sharing web application.. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/eikek/sharry.git

1,342

Stars

74

Forks

8

Watchers

GPL-3.0

License

icon

Scala Steward badge

Sharry

Sharry allows to share files with others in a simple way. It is a self-hosted web application. The basic concept is: upload files and get a url back that can then be shared.

file transfer

How it works

Authenticated users → others

Authenticated users can upload their files on a web site together with an optional password and a time period. The time period defines how long the file is available for download. Then a public URL is generated that can be shared, e.g. via email.

The download page is hard to guess, but open to everyone.

Others → Authenticated users

Each registered user can maintain alias pages. An alias page is behind a “hard-to-guess” URL (just like the download page) and allows everyone to upload files to the corresponding user. The form does not allow to specify a password or validation period, but a description can be given. The user belonging to the alias can be notified via email. Alias pages can be disabled or deleted any time.

Install

Documentation

Please see the documentation site.

Screenshots

screenshot-1 screenshot-2 screenshot-3

mobile 02 mobile 03 mobile 04

Contributions/Support

Feedback and other contributions are very welcome! You can open an issue for questions, problems and other feedback; or make a mail to eikek [at] posteo.de. I'll try to answer in time.

If you find this project any useful and want to support it via other means, giving a :star: is always encouraging and much appreciated. You can also support activity by donating via liberapay or paypal.

Thank you so much!

Technical

Sharry implements the tus protocol and the webapp uses it to send files to the backend server. This allows to send even large files reliably through http. For example, even if the connection drops in the middle of an upload and you upload the same file again later, it starts the upload process from the last received chunk of data.

The backend is written in Scala using a pure functional style on top of great typelevel libraries like cats and fs2. The frontend is written in elm.

License

This project is distributed under the GPLv3+

Releases

nightly

Pre-release

Aug 21, 2026

Sharry Nightly

Download .zip

Bug Fixes

backend: don't clobber filemeta.length on intermediate PATCH chunks #1837 (carlozanocco)

Styles

apply scalafmt to OShare and chunked-upload test #1837 (carlozanocco)

Tests

backend: add...

Jun 4, 2026

Sharry 1.16.0

Download .zip

What’s Changed 🚀 Features

Download all files as zip @aetasoul (#1814)

🐛 Bug Fixes

Fix redocly cmd in sbt @eikek (#1816) Fix checkbox visibility in dark mode @aetasoul (#1813) Fix invalid syntax i...

Mar 15, 2025

Sharry 1.15.0

Download .zip

What’s Changed NOTE This release is broken for MariaDB and H2 users (see issue #1643). Please wait for an upcoming bugfix release. 🚀 Features

add 24/23/100/1000 Months validity Time @sudo-bencho (#...

Jun 11, 2024

1.14.0

Download .zip

What’s Changed This release includes Czech language and moves the code base from Scala 2 to Scala 3, including many dependency updates. Note updating to 1.14.0 requires to adopt the config file. There...

Mar 11, 2024

Sharry 1.13.2

Download .zip

Fix responses for range requests (#1328) Update nix dev setup