Overview
Full on-premises deployment runs all Navigara components in your infrastructure. Source code, analysis results, and all metadata stay within your network.Architecture
A full deployment consists of three infrastructure components:- Linux VM — runs the Navigara application (backend, frontend, collector) via Docker Compose
- Managed PostgreSQL — stores all application data including vector embeddings (requires pgvector extension)
- LLM API endpoint — Anthropic, OpenAI, or Google Vertex AI API for AI-powered commit analysis
- Navigara license key — JWT issued by Navigara that unlocks analysis features (see License Key)
Prerequisites
Linux VM
The VM runs all Navigara application containers via Docker Compose. Operating system: Ubuntu 24.04 LTS or Debian 13+ (other systemd-based Linux distributions may work but are not officially supported) Required software:- Docker Engine 24+
- Docker Compose v2+
Managed PostgreSQL
A managed PostgreSQL instance with the pgvector extension enabled. All major cloud providers support this:- AWS: Amazon RDS for PostgreSQL with pgvector
- GCP: Cloud SQL for PostgreSQL with pgvector
- Azure: Azure Database for PostgreSQL with pgvector
- Self-managed: PostgreSQL 18+ with pgvector extension installed
uuidv7())
Required extension: pgvector — vector similarity search for knowledge graph analysis
License Key
A full on-premises deployment requires a license key issued by Navigara. Contact your Navigara account representative with the domain you intend to host Navigara on (e.g.navigara.yourcompany.com) to obtain one. Set it as LICENSE_KEY in your .env.
LLM API Endpoint
Navigara requires an LLM API endpoint for AI-powered commit analysis. Supported providers:
The endpoint must be reachable from the VM. For air-gapped environments, a locally hosted model with an OpenAI-compatible API (e.g. vLLM, Ollama) can be used — contact support for guidance.
- Anthropic (Recommended)
- Google Vertex AI
- OpenAI
- Self-hosted (OpenAI-compatible)
LLM_API_URL to that endpoint instead. Do not include /v1 in the URL — the SDK appends /v1/messages itself.Network Requirements
The VM must have outbound access to the following services. Ensure your firewall rules allow these connections:Hardware Requirements
- Small (up to 500K commits)
- Medium (up to 5M commits)
- Large (up to 50M commits)
Suitable for small to mid-size engineering teams.
Disk requirements are primarily driven by knowledge graph data and vector embeddings. SSD storage is required for acceptable query performance.
Installation
1. Prepare the VM
2. Configure the deployment
Create the deployment directory structure anddocker-compose.yml:
3. Generate Root Private Key
Generate an Ed25519 key pair for admin root access. You will use the private key to generate login links in Product Setup.4. Prepare Environment File
Create a.env file with your configuration (paste the public key from step 3 into ADMIN_PUBLIC_KEY):
Email (SMTP)
Navigara sends transactional email — password resets, organization invitations, and the workspace-ready welcome message — over SMTP, so you can use any provider (Amazon SES, SendGrid, Postmark, Mailgun, Google Workspace, or an internal relay). SetSMTP_HOST, SMTP_USERNAME, and SMTP_PASSWORD and you are ready to go; SMTP_PORT defaults to 587 (STARTTLS) and SMTP_FROM defaults to SMTP_USERNAME. For an IP-allowlisted internal relay that needs no credentials, set SMTP_HOST and leave the username and password empty. Use SMTP_TLS=ssl with SMTP_PORT=465 for providers that require implicit TLS.
Email is optional. If
SMTP_HOST is unset, Navigara runs normally but skips sending email — password resets and invitations will not be delivered, so you’ll need an authentication method that doesn’t depend on email (OAuth/SSO, or sharing the invitation link directly).5. Configure PostgreSQL
Connect to your PostgreSQL instance as a superuser and run the following:DATABASE_URL in your .env to use the navigara user:
6. Start Navigara
7. Configure Reverse Proxy (Caddy)
Navigara ships with Caddy as the reverse proxy. Caddy handles TLS termination, automatic certificate provisioning via Let’s Encrypt, and routing between frontend, backend API, and gRPC services. Create the Caddyfile atdeployment/caddy/Caddyfile:
8. Product Setup
After all services are running, you need to log in as root to create the first organization and invite users. Use theadmin_key.pem you generated in step 3.
Generate a Root Login Link
Use the following Python script to generate a one-time login link. The link expires after 60 seconds.
Requirements: pip install PyJWT cryptography
impersonate.py and run it:
Backup and Restore
Database backup
Back up your PostgreSQL database regularly usingpg_dump:
Database restore
Monitoring and Health Checks
The backend exposes a health check endpoint on the HTTP port:
The frontend container also has a built-in health check via
wget on port 3000.
Use these with your monitoring system (Prometheus, Datadog, etc.) to track service availability.

