Skip to content

Navigator

A lightweight web server for multi-tenant applications with on-demand process management. Deploy multiple customers or projects from a single configuration file.

Latest Release: v0.12.0

Configuration Modernization Release - Reorganized configuration structure for better clarity and discoverability.

⚠️ Breaking Changes: Configuration files must be updated to new format.

View Release Notes | Migration Guide

Features

  • Serve multiple tenants with isolated processes and databases
  • Automatic machine suspension when idle (Fly.io)
  • Built-in WebSocket support for Rails Action Cable
  • Regional routing with automatic fallback

Used in production serving 75+ customers across 8 countries.

Quick Start

# Download latest release
curl -L https://github.com/rubys/navigator/releases/latest/download/navigator-linux-amd64.tar.gz | tar xz

# Run with your config
./navigator config/navigator.yml
# Clone and build
git clone https://github.com/rubys/navigator.git
cd navigator
make build

# Run Navigator
./bin/navigator-refactored config/navigator.yml
# Run with Docker
docker run -v $(pwd)/config:/config \
           -v $(pwd)/app:/app \
           -p 3000:3000 \
           rubys/navigator /config/navigator.yml

Simple Example

Here's a minimal configuration to serve a Rails application:

config/navigator.yml
server:
  listen: 3000
  public_dir: ./public

applications:
  tenants:
    - name: myapp
      path: /
      working_dir: /path/to/rails/app

Common Use Cases

Learn More

  • 📚 Use Cases


    Real-world examples and configuration patterns

  • 🏗 Architecture


    Technical details and design decisions

  • 🔍 Features


    Complete feature documentation

Get Started