datatrash/README.md

71 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# datatrash
A file and text uploading service with configurable time limit
![Application screenshot](./screenshot.png)
## running
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.
## config
- The `static` files directory needs to be next to the binary.
- The `static` directory sadly needs to be writable
- On startup the `index.html` will be generated based on the config
- The maximum filename length is 255
### General configuration
| 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 |
### 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 | |
## compiling
```sh
cargo build --release
```
or
```sh
docker build -t datatrash .
docker cp datatrash:/home/rust/.cargo/bin/datatrash datatrash
```