Simple artifact sharing
Find a file
Armin Friedl ab005b28e7
Use local URL, add Readme
Use local url in prod config. The local url works if docker is started
on localhost. If the container is deployed to a domain, the base URL
must be specified via REACT_APP_API environment variable.
2020-07-29 01:50:42 +02:00
container Get correct versions for docker image 2020-07-12 12:02:48 +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.