Skip to main content

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:
  1. Linux VM — runs the Navigara application (backend, frontend, collector) via Docker Compose
  2. Managed PostgreSQL — stores all application data including vector embeddings (requires pgvector extension)
  3. LLM API endpoint — Anthropic, OpenAI, or Google Vertex AI API for AI-powered commit analysis
  4. 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
PostgreSQL version: 18 (required for native UUIDv7 support via 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.
Treat LICENSE_KEY as a secret. Store it alongside your other credentials (vault or secret manager) and do not commit it to source control.

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.

Network Requirements

The VM must have outbound access to the following services. Ensure your firewall rules allow these connections:
If any of these services are unreachable, the corresponding Navigara features will not function. Git provider access is required for core functionality.

Hardware Requirements

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 and docker-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.
The admin_key.pem file is a credential for root access to your Navigara instance. Store it in a secure location (e.g. a vault or password manager) and restrict access to authorized administrators only.

4. Prepare Environment File

Create a .env file with your configuration (paste the public key from step 3 into ADMIN_PUBLIC_KEY):
At least one authentication method must be configured for users to log in to Navigara. Enable one or more of: password auth (ENABLE_PASSWORD_AUTH=true), Google OAuth (GOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET), or Microsoft OAuth (MICROSOFT_CLIENT_ID + MICROSOFT_CLIENT_SECRET). Without at least one of these, only the root admin can access the instance via the impersonation link in Product Setup.

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). Set SMTP_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:
Then set DATABASE_URL in your .env to use the navigara user:
Navigara runs database migrations automatically on startup — no manual schema setup is needed.

6. Start Navigara

Verify all services are running:

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 at deployment/caddy/Caddyfile:
Caddy automatically provisions and renews TLS certificates via Let’s Encrypt. No manual certificate management is required.

8. Product Setup

After all services are running, you need to log in as root to create the first organization and invite users. Use the admin_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
Save this as impersonate.py and run it:
Open the printed URL in your browser within 60 seconds. You will be logged in as the root admin and can create your first organization and invite users.
You can re-run this script anytime you need root access — for example, to create additional organizations or manage platform settings.

Backup and Restore

Database backup

Back up your PostgreSQL database regularly using pg_dump:

Database restore

The database contains all application state. Ensure backups are stored securely and tested regularly.

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.

Upgrades

To upgrade Navigara:
Database migrations run automatically on startup. Always back up your database before upgrading.

Troubleshooting