A website for temporary file- or text hosting
				https://trash.ctdo.de/
			
		| snippet | ||
| src | ||
| static | ||
| template | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| datatrash-favicon-inkscape.svg | ||
| docker-compose.yml.sample | ||
| Dockerfile | ||
| init-db.sql | ||
| LICENSE | ||
| mime.types | ||
| README.md | ||
| screenshot.png | ||
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 staticfiles directory needs to be next to the binary.
- The staticdirectory – sadly – needs to be writable- On startup the index.htmlwill 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 | 
| ABUSE_MAIL | email address to report abuse to | 
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 | 
Deploying using Docker
# Clone the repository
git clone https://git.ctdo.de/neri/datatrash
cd datatrash
# Copy and update the docker-compose.yml
cp docker-compose.yml.sample docker-compose.yml
$EDITOR docker-compose.yml
# Start the container
docker-compose up -d
Compiling the binary
When you have a rust toolchain installed:
cargo build --release
or when you have docker installed:
docker build -t datatrash .
id=$(docker create datatrash)
docker cp $id:/opt/datatrash/datatrash datatrash
docker rm -v $id
