Installation
Routerly can be installed with a one-line script on macOS, Linux, and Windows. Docker is also supported for containerised deployments.
One-line Installer (Recommended)
macOS / Linux
curl -fsSL https://www.routerly.ai/install.sh | bash
The installer will:
- Detect your OS and architecture
- Download the latest Routerly release
- Install the service and CLI binaries
- Optionally configure a system daemon (systemd on Linux, launchd on macOS)
- Start the service
Installer flags
You can customise the installation by passing flags after --:
curl -fsSL https://www.routerly.ai/install.sh | bash -s -- \
--yes # Non-interactive; accept all defaults
--scope user # Install for current user only (default)
--scope system # System-wide install (requires sudo)
--port 8080 # Use a custom port (default: 3000)
--public-url https://routerly.example.com # External URL of the service
--no-service # Skip service installation (CLI only)
--no-daemon # Skip auto-start setup
Installation scopes
| Scope | App directory | CLI binary | Config directory |
|---|---|---|---|
user (default) | ~/.routerly/app/ | ~/.local/bin/routerly | ~/.routerly/ |
system | /opt/routerly/ | /usr/local/bin/routerly | ~/.routerly/ |
System scope requires sudo. Config and data always stay in ~/.routerly/ regardless of scope.
Windows
powershell -c "irm https://www.routerly.ai/install.ps1 | iex"
This installs Routerly as a Windows Service and adds the CLI to your PATH.
Docker
The official Docker image is the recommended way to run Routerly in production.
docker-compose (recommended)
Create a docker-compose.yml:
services:
routerly:
image: ghcr.io/inebrio/routerly:latest
ports:
- "3000:3000"
volumes:
- routerly_data:/data
environment:
- ROUTERLY_HOME=/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 5s
retries: 3
volumes:
routerly_data:
Then start it:
docker compose up -d
docker run
docker run -d \
--name routerly \
-p 3000:3000 \
-v routerly_data:/data \
-e ROUTERLY_HOME=/data \
--restart unless-stopped \
ghcr.io/inebrio/routerly:latest
Manual Installation (from source)
Requirements: Node.js ≥ 20, npm ≥ 10
git clone https://github.com/Inebrio/Routerly.git
cd Routerly
npm install
npm run build
npm run start --workspace=packages/service
The CLI is available via:
node packages/cli/dist/index.js
Updating Routerly
Run the installer again — it detects an existing installation and offers an update:
curl -fsSL https://www.routerly.ai/install.sh | bash
Uninstalling
curl -fsSL https://www.routerly.ai/install.sh | bash -s -- --uninstall
This removes the application files and daemon. Your config and usage data in ~/.routerly/ are preserved.
Auto-start Configuration
The installer can configure Routerly to start automatically on boot:
| OS | Scope | Method | Location |
|---|---|---|---|
| Linux | user | systemd user service | ~/.config/systemd/user/routerly.service |
| Linux | system | systemd system service | /etc/systemd/system/routerly.service |
| macOS | user | launchd LaunchAgent | ~/Library/LaunchAgents/ai.routerly.service.plist |
| macOS | system | launchd LaunchDaemon | /Library/LaunchDaemons/ai.routerly.service.plist |
| Windows | — | Windows Service | via sc.exe |
To start/stop manually:
# Linux (user scope)
systemctl --user start routerly
systemctl --user stop routerly
# macOS (user scope)
launchctl load ~/Library/LaunchAgents/ai.routerly.service.plist
launchctl unload ~/Library/LaunchAgents/ai.routerly.service.plist
Verifying the Installation
routerly status
You should see the service URL, version, and a reachability check. Then open the dashboard:
http://localhost:3000/dashboard
→ Continue to Quick Start to set up your first model and project.