2020-07-09 20:01:25 +00:00
|
|
|
|
# datatrash
|
|
|
|
|
|
|
|
|
|
A file and text uploading service with configurable time limit
|
|
|
|
|
|
|
|
|
|
![Application screenshot](./screenshot.png)
|
|
|
|
|
|
2022-04-10 21:45:32 +00:00
|
|
|
|
## running
|
2020-07-12 01:16:17 +00:00
|
|
|
|
|
2022-04-10 21:45:32 +00:00
|
|
|
|
For running on docker, use the provided `docker-compose.yml.sample` and adapt it to your needs.
|
|
|
|
|
To run the software directly, use the compiling instructions below.
|
2020-07-09 20:01:25 +00:00
|
|
|
|
|
2022-04-10 21:45:32 +00:00
|
|
|
|
## config
|
2020-07-09 20:01:25 +00:00
|
|
|
|
|
2021-12-08 17:54:55 +00:00
|
|
|
|
- The `static` files directory needs to be next to the binary.
|
2022-04-10 21:45:32 +00:00
|
|
|
|
- The `static` directory – sadly – needs to be writable
|
2021-12-08 17:54:55 +00:00
|
|
|
|
- On startup the `index.html` will be generated based on the config
|
2021-04-07 22:03:02 +00:00
|
|
|
|
- The maximum filename length is 255
|
|
|
|
|
|
|
|
|
|
### General configuration
|
|
|
|
|
|
2022-08-21 16:44:12 +00:00
|
|
|
|
| environment variable | default value | description |
|
|
|
|
|
| --------------------- | -------------- | ---------------------------------------------- |
|
|
|
|
|
| STATIC_DIR | ./static | directory to generate "static" files into |
|
|
|
|
|
| FILES_DIR | ./files | directory to save uploaded files into |
|
|
|
|
|
| UPLOAD_MAX_BYTES | 8388608 (8MiB) | maximum size for uploaded files |
|
|
|
|
|
| BIND_ADDRESS | 0.0.0.0:8000 | address to bind the server to |
|
|
|
|
|
| RATE_LIMIT | true | whether download rate should be limited |
|
|
|
|
|
| RATE_LIMIT_PROXIED | false | whether rate limit should read x-forwarded-for |
|
|
|
|
|
| RATE_LIMIT_PER_SECOND | 60 | seconds to wait between requests |
|
|
|
|
|
| RATE_LIMIT_BURST | 1440 | allowed request burst |
|
2021-04-07 22:03:02 +00:00
|
|
|
|
|
|
|
|
|
### Database configuration
|
|
|
|
|
|
|
|
|
|
| environment variable | default value |
|
|
|
|
|
| -------------------- | ------------- |
|
|
|
|
|
| DATABASE_URL | |
|
|
|
|
|
| DATABASE_USER | |
|
|
|
|
|
| DATABASE_PASS | |
|
|
|
|
|
| DATABASE_HOST | localhost |
|
|
|
|
|
| DATABASE_NAME | datatrash |
|
|
|
|
|
|
|
|
|
|
### No auth limits configuration
|
|
|
|
|
|
|
|
|
|
Require authentication for certain uploads
|
|
|
|
|
|
|
|
|
|
- The password is provided as plain text
|
|
|
|
|
- Uploads with longer validity than NO_AUTH_MAX_TIME require authentication
|
|
|
|
|
- Uploads larger than NO_AUTH_LARGE_FILE_SIZE require auth when they are valid for longer than
|
|
|
|
|
NO_AUTH_LARGE_FILE_MAX_TIME
|
|
|
|
|
- All times are in seconds, the size is in bytes
|
|
|
|
|
|
|
|
|
|
| environment variable | default value |
|
|
|
|
|
| --------------------------- | ------------- |
|
|
|
|
|
| AUTH_PASSWORD | |
|
|
|
|
|
| NO_AUTH_MAX_TIME | |
|
|
|
|
|
| NO_AUTH_LARGE_FILE_MAX_TIME | |
|
|
|
|
|
| NO_AUTH_LARGE_FILE_SIZE | |
|
2022-04-10 21:45:32 +00:00
|
|
|
|
|
|
|
|
|
## compiling
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
cargo build --release
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
docker build -t datatrash .
|
|
|
|
|
docker cp datatrash:/home/rust/.cargo/bin/datatrash datatrash
|
|
|
|
|
```
|