71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
# 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
|
||
```
|