forked from neri/datatrash
neri 5a4a73108a | ||
---|---|---|
snippet | ||
src | ||
static | ||
template | ||
.dockerignore | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
docker-compose.yml.sample | ||
init-db.sql | ||
mime.types | ||
screenshot.png |
README.md
datatrash
A file and text uploading service with configurable time limit
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
- On startup the
- 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_REPLENISH_SECONDS | 60 | seconds to wait between requests |
RATE_LIMIT_BURST | 480 | 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
cargo build --release
or
docker build -t datatrash .
docker cp datatrash:/home/rust/.cargo/bin/datatrash datatrash