A lightweight web server for multi-tenant applications with on-demand process management. Deploy multiple customers or projects from a single configuration file.
- Process management - On-demand startup, auto-restart, graceful shutdown
- Multi-tenant hosting - Isolated databases and processes per customer
- TurboCable WebSockets - Built-in real-time support with 89% memory savings (no Redis needed)
- Static file serving - High-performance direct filesystem access with try-files
- Authentication - htpasswd support with flexible exclusions
- Hot reload - Update configuration without restart
- Regional routing - Smart routing with Fly-Replay
- Machine suspension - Auto-suspend idle machines on Fly.io
- Structured logging - Built-in Vector integration for log aggregation
Docker (recommended):
COPY --from=samruby/navigator:latest /navigator /usr/local/bin/navigator
CMD ["navigator", "config/navigator.yml"]Download Binary:
# Linux (AMD64)
curl -L https://github.com/rubys/navigator/releases/latest/download/navigator-linux-amd64.tar.gz | tar xz
# macOS (ARM64)
curl -L https://github.com/rubys/navigator/releases/latest/download/navigator-darwin-arm64.tar.gz | tar xzBuild from Source:
git clone https://github.com/rubys/navigator.git
cd navigator
make buildCreate config/navigator.yml:
server:
listen: 3000
public_dir: ./public
applications:
tenants:
- name: myapp
path: /
working_dir: /path/to/app# With config file
./bin/navigator config/navigator.yml
# Reload configuration (no restart)
./bin/navigator -s reload- Getting Started - Installation and first app
- Configuration Reference - Complete YAML options
- Examples - Copy-paste configurations
- Use Cases - Real-world patterns
- Features - Detailed feature guides
- Architecture - Technical details
Trusted in production serving 75+ customers across 8 countries with:
- 81.2% test coverage
- Cross-platform support (Linux, macOS, Windows)
- Comprehensive documentation
- Active development
MIT License - see LICENSE file for details.