Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eikek/sharry
Sharry is a self-hosted file sharing web application.
https://github.com/eikek/sharry
elm file-sharing file-upload filesharing scala web-app web-application webapp
Last synced: 6 days ago
JSON representation
Sharry is a self-hosted file sharing web application.
- Host: GitHub
- URL: https://github.com/eikek/sharry
- Owner: eikek
- License: gpl-3.0
- Created: 2017-05-08T13:05:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T06:34:12.000Z (about 1 month ago)
- Last Synced: 2024-10-30T01:38:26.817Z (about 1 month ago)
- Topics: elm, file-sharing, file-upload, filesharing, scala, web-app, web-application, webapp
- Language: Elm
- Homepage: https://eikek.github.io/sharry
- Size: 25.4 MB
- Stars: 877
- Watchers: 8
- Forks: 56
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: Contributing.md
- License: LICENSE.txt
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-starred - eikek/sharry - Sharry is a self-hosted file sharing web application. (webapp)
- jimsghstars - eikek/sharry - Sharry is a self-hosted file sharing web application. (Elm)
README
[![Scala Steward badge](https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://scala-steward.org)
# 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.## 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
- Install the [provided](https://github.com/eikek/sharry/releases)
`deb` file at your debian based system.
- Download [provided](https://github.com/eikek/sharry/releases) zip
file and run the script in `bin/`, as [described
here](https://eikek.github.io/sharry/doc/quickstart#quickstart).
- Using the [nix](https://nixos.org/nix) package manager as [described
here](https://eikek.github.io/sharry/doc/nix). A a NixOS module is
available, too.
- Using Docker, as [described
here](https://eikek.github.io/sharry/doc/quickstart#quickstart-with-docker).## Documentation
Please see the [documentation site](https://eikek.github.io/sharry).
## Screenshots
![screenshot-1](https://raw.githubusercontent.com/eikek/sharry/master/modules/microsite/docs/screenshots/Selection_226.png)
![screenshot-2](https://raw.githubusercontent.com/eikek/sharry/master/modules/microsite/docs/screenshots/Selection_230.png)
![screenshot-3](https://raw.githubusercontent.com/eikek/sharry/master/modules/microsite/docs/screenshots/Selection_235.png)
## Contributions/Support
Feedback and other contributions are very welcome! You can [open an
issue](https://github.com/eikek/sharry/issues/new) 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](https://liberapay.com/eikek/) or
[paypal](https://paypal.me/eikek0).Thank you so much!
## Technical
Sharry implements the [tus](https://tus.io) 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](https://typelevel.org/) libraries like
[cats](https://typelevel.org/cats/) and
[fs2](https://github.com/typelevel/fs2). The frontend is written in
[elm](https://elm-lang.org).## License
This project is distributed under the
[GPLv3+](https://spdx.org/licenses/GPL-3.0-or-later.html)