A lightweight Node.js command-line application that serves static files from a local directory via HTTP, with support for file uploads and directory browsing.
- 🚀 Serves static files from any directory
- 📁 Directory browsing with file listings
- 📤 File upload support with drag & drop interface
- 🌐 Accessible on local network (LAN)
- ⚙️ Configurable via environment variables or CLI arguments
- 📝 Request logging
- 💾 No external dependencies
npx httpoint
npx httpoint --port 8080 --path /path/to/directory
HTTPOINT_PORT=8080 HTTPOINT_ROOT=/var/www npx httpoint
# Command line arguments (take precedence)
npx httpoint --port 3000 --path ./public --debug --help
# Environment variables
HTTPOINT_PORT=3000
HTTPOINT_ROOT=./public
Option | CLI Argument | Environment Variable | Default | Description |
---|---|---|---|---|
Port | --port <number> |
HTTPOINT_PORT |
3000 |
Port to listen on |
Root Directory | --path <directory> |
HTTPOINT_ROOT |
Current directory | Root directory to serve |
Debug Mode | --debug |
N/A | false |
Enable debug logging |
Help | --help |
N/A | N/A | Show help information |
Once running, the server will be available at:
- Locally:
http://localhost:<port>/
- On LAN:
http://<actual-ip-address>:<port>/
The server automatically detects and displays your local IP address.
When accessing a directory, HTTPoint provides:
- 📁 Browsable directory links
- 📄 Clickable file links for download
- 📊 File sizes
- 🔙 Parent directory navigation
- 📤 Upload button for file uploads (drag & drop supported)
npm install -g httpoint
git clone <repository-url>
cd httpoint
npm install
node src/serve.js [options]
# Start server in one terminal
node src/serve.js --port 3000
# Test in another terminal
curl http://localhost:3000/
- Node.js 14.0.0 or higher
- No external dependencies
Denis Zimin
MIT © 2025