• Stars
    star
    825
  • Rank 55,281 (Top 2 %)
  • Language
    Elm
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sharry is a self-hosted file sharing web application.

Build Status 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.

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

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 ⭐ 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+

More Repositories

1

docspell

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
Elm
1,534
star
2

emil

Emil is a library for dealing with E-Mail in Scala.
Scala
39
star
3

chee

A command line tool for managing photos.
Scala
26
star
4

yamusca

Yet another mustache impl for scala
Scala
22
star
5

sbt-openapi-schema

Generate schema sources for Scala, Java and Elm from an openapi 3.0 spec.
Scala
20
star
6

calev

Work with systemd.time like calendar events in Scala
Scala
11
star
7

org-expenses

track expenses with org
Emacs Lisp
9
star
8

mpc4s

Scala client library for MPD, HTTP interface to MPD via REST/Websockets, finally a Webclient for MPD
Scala
9
star
9

sitebag

"read it later" (server) app in scala; for storing websites
Scala
5
star
10

confnix

my nixos config files
Nix
5
star
11

binny

Scala library for dealing with binaries/blobs in databases
Scala
4
star
12

publet

Template Web application
Scala
4
star
13

meth

Commandline client for mediathekview
Scala
4
star
14

swing-tasks

A small library that aims to help with executing tasks from swing applications.
Java
3
star
15

dotfiles

Shell
3
star
16

sig

simple image gallery -- static site generator for image galleries
Scheme
3
star
17

dlm

download manager for the command line
Common Lisp
2
star
18

scala-steward

Run scala-steward on my repos
Shell
2
star
19

porter

authentication / authorization service in scala
Scala
2
star
20

spray-openid

OpenId 2 support for use with spray
Scala
2
star
21

magnatune.el

Browse magnatune's music collection in emacs.
Emacs Lisp
2
star
22

webact

Run actions from the web. Webact allows to manage scripts on the server and execute them.
Elm
2
star
23

scue

Thin Scala wrapper for Blueprints Graph API.
Scala
2
star
24

publet-plantuml

PlantUML extensio for publet.
Scala
2
star
25

notelog

create a log of notes across multiple org files
Emacs Lisp
1
star
26

init.el

My Emacs configuration
Emacs Lisp
1
star
27

shelter

manage virtual accounts
Clojure
1
star
28

musicpds

Shell
1
star
29

neoswing

A simple swing-based GUI for Bluepints enabled databases, that uses the JUNG library for visuaization.
Java
1
star
30

publet-james

Extension for publet integrating Apache James.
Scala
1
star
31

wicket-quickstart-osgi

Java
1
star
32

swing-uploadfield

A swing component for url inputs.
Java
1
star
33

attentive

A personal scrobble daemon.
Scala
1
star
34

wicket-commons

Java
1
star
35

elv-modules

1
star
36

devshell-tools

A collection of tools for creating dev environments with nix flakes
Nix
1
star
37

htmx4s

Scala
1
star
38

county

Lightweight library for Scala for managing counters.
Scala
1
star
39

keeper

Scala
1
star