transbeam/README.md

1.8 KiB

transbeam logo: a laser warning sign in trans flag colors

transbeam

A low-latency file drop web app

features

  • One-to-many transfer of large files
  • Simple web UI for sender and receivers
  • Receivers can begin downloading immediately, without needing to wait for the upload to finish
  • Receivers can also download after the upload is complete and the sender has gone offline
  • Easy to send multiple files at once - they're bundled into a zip file for receivers, with zero compression so extraction is quick
  • Sanitises filenames, using sensible non-obnoxious defaults that should be safe across platforms
  • Fires a laser beam that turns you trans

configuration

transbeam is configured with the following environment variables:

  • STORAGE_DIR: path where uploaded files should be stored (default: ./storage)
  • STATIC_DIR: path where the web app's static files live (default: ./static)
  • PORT: port to listen on localhost for http requests (default: 8080)

It also uses the env_logger crate for logging; log levels are configured via the RUST_LOG variable, see env_logger's documentation for details.

running

nix flakes

nix run git+https://git.xeno.science/xenofem/transbeam?ref=main

(The Nix package is wrapped with STATIC_DIR set automatically to the correct Nix store path, so it'll serve the static files properly no matter what directory you run it from.)

non-nix

git clone https://git.xeno.science/xenofem/transbeam
cd transbeam
cargo run --release

todo

  • uploader auth
  • downloader auth
  • delete uploads after a while
  • configurable maximum file size