Compare commits
No commits in common. "master" and "dynamic-config" have entirely different histories.
master
...
dynamic-co
2 changed files with 29 additions and 76 deletions
88
README.md
88
README.md
|
@ -1,68 +1,38 @@
|
|||
**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](https://owncloud.com/) is in many ways similar to Fling and then
|
||||
some.
|
||||
- If you want an even simpler solution for sharing files over http,
|
||||
[dirl](https://github.com/arminfriedl/dirl) might meet your needs.
|
||||
|
||||
# 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 a web app:
|
||||
- Just drop files on a Fling and share the URL
|
||||
- Choose your own name for your share-URL
|
||||
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
|
||||
- Let others upload files
|
||||
- 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
|
||||
- Let a fling expire after a date or a number of clicks (or keep it forever)
|
||||
|
||||
# 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](examples).
|
||||
# Fling is a API
|
||||
It gets even better!
|
||||
|
||||
Per default Fling publishes a Swagger UI page and an OpenAPI spec. You can find
|
||||
them here:
|
||||
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.
|
||||
|
||||
``` http
|
||||
http://<host>:<port>/swagger-ui.html
|
||||
http://<host>:<port>/v3/api-docs
|
||||
```
|
||||
Fling also has a code-first OpenAPI compliant spec. O mon Dieu, it just checks
|
||||
_all_ the boxes!
|
||||
|
||||
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.
|
||||
# Fling as a container
|
||||
It gets even even better better!
|
||||
|
||||
# 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](web/fling/public/config.js)/[config.js.template](container/var/www/fling/config.js.template)) will be
|
||||
filled by `envsubst` when the container starts up.
|
||||
``` sh
|
||||
# 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](service/fling/src/main/resources/application-prod.yml) for configuration options.
|
||||
Fling is self-hosted. But it is packaged up in a docker container for easy
|
||||
deployment. Run `docker run --rm -p3000:3000 arminfriedl/fling` and go to
|
||||
http://localhost:3000. Admin user is `adminName:adminPassword`.
|
||||
|
|
|
@ -61,23 +61,6 @@ server {
|
|||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# handle openapi requests by openapi servlet
|
||||
location /swagger-ui {
|
||||
proxy_pass http://localhost:8080;
|
||||
|
||||
proxy_set_header X-Forwarded-Host $host:$server_port;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Required for web sockets to function
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# always respond with index.html for unknown paths
|
||||
# (routing is client side)
|
||||
location / {
|
||||
|
|
Loading…
Reference in a new issue