Simple artifact sharing
Find a file
Armin Friedl 5c6bd1b1ad
All checks were successful
continuous-integration/drone/push Build is passing
Merge branch 'master' of git.friedl.net:incubator/fling
2020-07-29 01:53:31 +02:00
container Read configuration from environment 2020-07-29 00:59:59 +02:00
examples Use new API in DirectDownload, improve redirection 2020-07-26 01:33:32 +02:00
scripts Use scoped npm package 2020-07-12 12:53:50 +02:00
service Tag master with latest 2020-07-26 19:17:28 +02:00
web Use local URL, add Readme 2020-07-29 01:50:42 +02:00
.drone.yml Tag master with latest 2020-07-26 19:17:28 +02:00
.editorconfig Add Codestyle definition, editorconfig 2020-06-21 20:21:08 +02:00
.gitignore Add test zips 2020-07-05 20:16:59 +02:00
fling-java-codestyle.xml Simplified API, refactoring 2020-07-03 20:53:04 +02:00
LICENSE Try client generator 2020-07-03 21:02:48 +02:00
README.md Use local URL, add Readme 2020-07-29 01:50:42 +02:00
VERSION Use valid semver and version update script 2020-07-12 02:06:50 +02:00

Build Status

Fling

Have you ever missed the simplicity of an USB Stick when sharing data over the net?

Zero-friction sharing is a surprisingly unsolved problem. There's no reasonably ubiquitous solution installed on everybody's machine. Online providers are often packed with features, but miss out on things like direct download urls, a space for others to easily upload to you, or require registration from all participants. I don't remember any of these things being a problem with USB 🤔.

Fling is a self-hosted file share. It is simple like USB without missing out on the good parts of the web:

  • Drop files on a fling and share the URL. That's it. The fling way of life.

Other features include:

  • Choose your own, meaningful name for your sharing URL
  • Share a direct download link
  • Choose to let others upload files just as simple
  • Protect your fling by a password - no registration required
  • Let a fling expire after a date or a number of clicks (or keep it forever)

Fling is a API

It gets even better!

Fling is a backend service and a web interface. But you can use anything else that speaks HTTP if you prefer. In fact, we generate and publish a javascript and python client for the Fling API on every build. If you like it bare-bones there is also a querysheet in the examples folder with raw HTTP calls.

Fling also has a code-first OpenAPI compliant spec. O mon Dieu, it just checks all the boxes!

Fling as a container

It gets even even better better!

Fling is self-hosted. But it is packaged up in a container for easy deployment. Run docker run --rm -p3000:3000 arminfriedl/fling and go to http://localhost:3000. The default admin user is adminName:adminPassword.

Configuring Fling

The Fling container can be configured by environment variables.

Web interface configuration (config.js/config.js.template; will be replaced by envsubst when the container starts up):

# The base URL of the Fling API service
FLING_API_BASE=http://localhost:3000
FLING_LOG_LEVEL=warn
# Max. upload size in bytes
FLING_FILESIZE=209715200

Fling service configuration (application-prod.yml). Standard spring configuration, can be set by environement variables or any other externalization facilities of spring boot). Please refer to application-prod.yml for configuration possibilites.