| Crates.io | uplite |
| lib.rs | uplite |
| version | 0.1.0 |
| created_at | 2025-02-27 00:09:59.369158+00 |
| updated_at | 2025-02-27 00:09:59.369158+00 |
| description | a lightweight, self-hosted file upload, browsing, and management tool |
| homepage | https://github.com/gni/uplite-rust |
| repository | https://github.com/gni/uplite-rust |
| max_upload_size | |
| id | 1571046 |
| size | 100,335 |
uplite is a lightweight and secure file server built in Rust.
It lets you upload, download, and manage files from any device including phones, tablets, and desktops using your browser.
uplite is designed to provide a simple, self-contained solution for sharing files across devices. Whether you need to quickly share photos, documents, or other data, uplite offers an intuitive web interface for managing your files securely.
Multi device connectivity: Access your file server from any device (phones, tablets, desktops) using any modern web browser.
Single binary deployment: With embedded templates and assets, uplite requires no additional configuration files just the executable.
File uploads & downloads: Easily upload multiple files at once, view detailed file information, download files, or delete files directly through your browser.
You can install uplite directly using Cargo:
cargo install uplite
(Ensure you have Rust installed via rustup before running this command.)
Clone the Repository:
git clone https://github.com/gni/uplite-rust.git
cd uplite-rust
Build the Project:
cargo build --release
Run the Server:
./target/release/uplite --port 3000 --user admin --password secret --dir ./uploads --max-files 5 --max-size 10485760
This command starts the server on port 3000 with the specified credentials and file upload settings.
Below is a table with the available CLI options that you can use when running uplite:
| Option | Description | Default Value |
|---|---|---|
-P, --port |
Port the server listens on. | 58080 |
-u, --user |
Username for Basic Authentication. | admin |
-p, --password |
Password for Basic Authentication. | password |
-d, --dir |
Directory to store uploaded files. | ./ |
--max-files |
Maximum number of files per upload. | 10 |
--max-size |
Maximum allowed file size (in bytes). | 5 * 1024 * 1024 * 1024 (5 GB) |
--extensions |
Comma-separated list of allowed file extensions (without dots). | "" (No restrictions) |
Run with default options
uplite
Specify a custom port
uplite --port 3000
Set authentication credentials
uplite --user admin --password secret
Define a custom upload directory
uplite --dir ./uploads
Limit uploads (max files and size)
uplite --max-files 5 --max-size 10485760
Allow specific file extensions
uplite --extensions jpg,png,gif,svg
Combined example
uplite --port 3000 --user admin --password secret --dir ./uploads --max-files 5 --max-size 10485760 --extensions jpg,png,gif,svg
Since uplite embeds all its templates and static assets, deploying is as simple as copying the single executable to your target system. There is no need to set up or manage separate asset directories.
A similar project exists as an npm module. Visit the uplite (npm) repository for more details.
This repository specifically hosts the Rust version, and the compiled binary is named uplite.
uplite is open source software licensed under the MIT License.