TL;DR — Quick Summary
miniserve is a tiny, self-contained HTTP server. Serve any directory over HTTP instantly — with uploads, directory listing, auth, and QR codes — all from one command.
miniserve turns any directory into a web server instantly. One command, no config, beautiful listing.
Installation
# macOS
brew install miniserve
# Arch Linux
sudo pacman -S miniserve
# Cargo
cargo install miniserve
Usage
# Serve current directory
miniserve .
miniserve /path/to/files
# Custom port
miniserve -p 3000 .
# Enable uploads
miniserve --upload-files .
miniserve -u . # Short flag
# QR code for mobile
miniserve --qrcode .
# Authentication
miniserve --auth user:password .
# Serve a single file
miniserve document.pdf
# Directory listing options
miniserve --title "My Files" .
miniserve --color-scheme monokai .
miniserve --hide-theme-selector .
# HTTPS
miniserve --tls-cert cert.pem --tls-key key.pem .
# Bind to all interfaces (LAN access)
miniserve -i 0.0.0.0 .
# Compress files on the fly
miniserve --compress-response .
# Hide hidden files
miniserve --hidden .
Comparison
| Feature | miniserve | python http.server | http-server (Node) | darkhttpd |
|---|---|---|---|---|
| Uploads | Yes | No | No | No |
| Auth | Yes | No | No | No |
| HTTPS | Yes | No | Yes | No |
| QR code | Yes | No | No | No |
| Themes | Yes | No | No | No |
| Speed | Fast | Slow | Medium | Fast |
Summary
- miniserve serves files via HTTP with zero configuration
- File uploads, authentication, HTTPS, QR codes out of the box
- Beautiful directory listing with theme support
- Single binary, no dependencies — perfect for quick file sharing
- Bind to 0.0.0.0 for LAN access, compress responses on the fly