Navigator¶
A lightweight, fast Go-based web server for multi-tenant web applications with on-demand process management. Framework-independent with built-in support for Rails, Django, Node.js, and other frameworks.
What is Navigator?¶
Navigator is a modern alternative to nginx + Passenger, designed for multi-tenant web applications across different frameworks. It provides intelligent request routing, dynamic process management, and built-in support for modern deployment patterns like Fly.io, Azure Deployment Stamps, and container orchestration.
-
Fast & Lightweight
Single binary with minimal dependencies. Lower memory footprint than nginx/Passenger.
-
Process Management
Starts web apps on-demand, manages Redis/Sidekiq, automatic cleanup of stale processes. Framework-agnostic with configurable commands.
-
Production Ready
Used in production serving 75+ dance studios across 8 countries.
-
Hot Reload
Update configuration without restart using SIGHUP signal.
Quick Start¶
Simple Example¶
Here's a minimal configuration to serve a Rails application:
server:
listen: 3000
public_dir: ./public
applications:
tenants:
- name: myapp
path: /
working_dir: /path/to/rails/app
Key Features¶
Intelligent Routing¶
- URL rewriting with redirects and rewrites
- Try-files behavior for static content
- WebSocket and Action Cable support
- Fly-Replay for regional routing
Authentication¶
- Full htpasswd support (APR1, bcrypt, SHA)
- Pattern-based exclusions for public paths
- Per-path authentication realms
Static File Serving¶
- Direct filesystem serving bypasses Rails
- Configurable cache headers
- Automatic MIME type detection
- Try multiple file extensions
Cloud Native¶
- Fly.io machine auto-suspend
- Multi-region deployment support
- Health check endpoints
- Graceful shutdown handling
Why Navigator?¶
Compared to nginx + Passenger¶
Feature | Navigator | nginx + Passenger |
---|---|---|
Configuration | Simple YAML | Complex nginx.conf |
Memory Usage | ~20MB base | ~100MB+ base |
Process Management | Built-in | Requires Passenger |
Hot Reload | ✅ Native | ❌ Restart required |
Multi-tenant | ✅ Native | ⚠️ Complex setup |
Perfect For¶
- Multi-tenant SaaS - Each customer gets isolated database/instance
- Regional deployments - Deploy closer to users with Fly.io
- Development environments - Replace complex nginx setups
- Resource-constrained servers - Lower memory footprint
Real-World Use Cases¶
Navigator powers production applications including:
- Dance studio management systems with 75+ tenants
- Regional PDF generation services
- Multi-database Rails applications
- WebSocket-enabled real-time apps
Next Steps¶
-
Install Navigator and deploy your first Rails app in 5 minutes
-
Learn about YAML configuration options and best practices
-
Copy-paste ready configurations for common scenarios
-
Complete CLI options, environment variables, and signals
Community¶
- GitHub Issues - Report bugs or request features
- Discussions - Ask questions and share experiences
- Releases - Download binaries and view changelog