High-performance, secure self-hosted file sharing web application written in Rust.
Run the official zero-dependency container on port 4401:
docker run -d --name beam -p 4401:4401 -v /mnt/user/appdata/beam:/config ghcr.io/studio2201/beam:latestOpen your browser to http://localhost:4401 to start uploading and sharing files immediately.
On Debian, Ubuntu, Fedora, or RHEL:
curl -fsSL https://studio2201.github.io/packages/install.sh | sudo bashDeploy via the official Unraid Template:
- Copy
beam.xmlto your Unraid flash drive under/boot/config/plugins/dockerMan/templates-user/. - Open Docker -> Add Container -> Select beam from the template dropdown.
- Click Apply.
The backend service can be customized using the following environment variables:
| Variable | Description | Default |
|---|---|---|
PORT |
Network port the web server binds to | 4401 |
BEAM_PIN |
Security PIN required for upload authentication | (Disabled) |
UPLOAD_DIR |
Directory path for persistent data and uploads | /config |
BEAM_ALLOWED_ORIGINS |
CORS allowed origins list (comma-separated) | * |
TRUST_PROXY |
Honor reverse proxy headers (X-Forwarded-For) |
false |
TRUSTED_PROXY_IPS |
Comma-separated CIDR list of trusted reverse proxies | (None) |
LOG_LEVEL |
Tracing filter (error, warn, info, debug) |
info |
Every container and package includes a built-in administration utility (beam).
Launch interactive TUI dashboard:
docker exec -it beam beam tuiSystem diagnostics and self-healing check:
docker exec -it beam beam doctorCLI Command Reference:
beam tui— Interactive terminal user interface.beam doctor— Diagnoses storage permissions, ports, and database health.beam status— Displays network configuration and security parameters.beam data stats— Shows storage utilization and entry metrics.beam data list— Lists database entries and uploaded records.
- Axum Web Backend: High-concurrency async streaming runtime built on Tokio.
- Yew WebAssembly Frontend: Type-safe client bundle running natively in browser WASM runtime.
- Zero-Copy Chunked Uploads: Direct-to-disk streaming pipeline bypassing heap allocations.
- Strict Stored XSS Defense: Enforces
Content-Disposition: attachmentand overrides dangerous mime-types toapplication/octet-stream.
Distributed under the Apache 2.0 License. See LICENSE for details.