datatrash/README.md

71 lines
2.6 KiB
Markdown
Raw Normal View History

2020-07-09 20:01:25 +00:00
# datatrash
A file and text uploading service with configurable time limit
![Application screenshot](./screenshot.png)
## running
2020-07-12 01:16:17 +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
## config
2020-07-09 20:01:25 +00:00
- 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
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 |
### 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
```