Simple artifact sharing
Find a file
Armin Friedl 909606a996
Archive Fling
Update README, make Swagger UI page accessible
2021-01-12 04:29:09 +01:00
container Update README, make Swagger UI page accessible 2020-07-29 19:25:41 +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 Archive Fling 2021-01-12 04:29:09 +01:00
VERSION Use valid semver and version update script 2020-07-12 02:06:50 +02:00

12.01.2021: Fling has moved to the attic

Fling was a good learning experiment for a non-trivial React app with a REST backend. However, it never really got any traction and I'm not using it anymore. Other projects are more important to me and maintaining Fling does not make any sense. As of now docker containers are deleted and the artifacts are not distributed anymore. You are free to fork and build your own version but no more work will be done in this repository.

Alternatives:

  • If you are looking for mature self-hosted file sharing solution, ownCloud is in many ways similar to Fling and then some.
  • If you want an even simpler solution for sharing files over http, dirl might meet your needs.

Fling

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

  • Just drop files on a Fling and share the URL
  • Choose your own name for your share-URL
  • Share a direct download link
  • Let others upload files
  • Protect your fling by a password - no registration required
  • Let a fling expire after a date or a number of clicks

API

Fling is distributed as both, a backend service and a web interface. You can use the backend on its own with any HTTP client.

Per default Fling publishes a Swagger UI page and an OpenAPI spec. You can find them here:

http://<host>:<port>/swagger-ui.html
http://<host>:<port>/v3/api-docs

If starting the fling container locally, the default <host>:<port> is http://localhost:3000. You can also find a recent version of it via https://fling.friedl.net/swagger-ui.html and https://fling.friedl.net/v3/api-docs.

Starting Fling from Docker

A Fling container is provided at https://hub.docker.com/repository/docker/arminfriedl/fling.

  1. Run docker run --rm -p3000:3000 arminfriedl/fling
  2. Go to the default http://localhost:3000
  3. Log in with adminName:adminPassword.

Configuring Fling

The Fling container can be configured by environment variables.

The web interface configuration (config.js/config.js.template) will be filled by envsubst when the container starts up.

# The base URL of the Fling API service
FLING_API_BASE=http://localhost:3000
# Log level of the application
FLING_LOG_LEVEL=warn
# Max. upload size in bytes. Checked on client side.
FLING_FILESIZE=209715200

The Fling service configuration is a standard spring configuration. It can be set by environement variables or any other [configuration externalization supported by spring boot] (https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config)). Refer to the application-prod.yml for configuration options.