Create an instance; a recommended size is at least e2-standard-2 (2 vCPU, 1 core, 8 GB memory).
Use Debian GNU/Linux 12 (bookworm)
Increase the size of the boot disk to 100 GB.
Allow HTTP traffic.
Allow ingress traffic from source IPv4 ranges 0.0.0.0/0 to TCP ports: 3000, 3002, 3003, 3050, 3051, 3080. These are the ports exposed by the Inkeep services.
Retrieve an external IP address (if applicable, set up a static IP or set up a load balancer).
Nango requires a NANGO_ENCRYPTION_KEY. Once you create this, it cannot be edited.
Here's an overview of the important environment variables when deploying to production. Make sure to review all of these in your .env file.
NANGO_ENCRYPTION_KEY=<nango_encryption_key># Replace these with your <vm_external_ip> in production!NANGO_SERVER_URL=http://<vm_external_ip>:3050NANGO_PUBLIC_CONNECT_URL=http://<vm_external_ip>:3051# Modify these in production environments!NANGO_DASHBOARD_USERNAME=admin@example.comNANGO_DASHBOARD_PASSWORD=adminADMIN!@12
Build and deploy SigNoz, Nango, OTEL Collector, and Jaeger:
Here's an overview of the important environment variables when deploying to production. Make sure to review all of these in your .env file.
ENVIRONMENT=production# (1) AI Provider Keys (you need at least one)ANTHROPIC_API_KEY=OPENAI_API_KEY=GOOGLE_GENERATIVE_AI_API_KEY=AZURE_API_KEY=# (2) From Nango dashboard at http://<vm_external_ip>:3050NANGO_SECRET_KEY=# (3) From SigNoz dashboard at http://<vm_external_ip>:3080SIGNOZ_API_KEY=# (4) Set these for the Manage UI at http://<vm_external_ip>:3000PUBLIC_INKEEP_AGENTS_API_URL=http://<vm_external_ip>:3002PUBLIC_NANGO_SERVER_URL=http://<vm_external_ip>:3050PUBLIC_NANGO_CONNECT_BASE_URL=http://<vm_external_ip>:3051PUBLIC_SIGNOZ_URL=http://<vm_external_ip>:3080# (5) Set these for Agents APIINKEEP_AGENTS_MANAGE_UI_URL=http://<vm_external_ip>:3000INKEEP_AGENTS_API_URL=http://<vm_external_ip>:3002INKEEP_AGENTS_RUN_API_BYPASS_SECRET=<REPLACE_WITH_INKEEP_AGENTS_RUN_API_BYPASS_SECRET>
Tip
For long-running agents or custom deployment requirements, you can override runtime limits like execution timeouts, maximum transfers, and generation steps. See Configure Runtime Limits for examples and the complete list of overridable settings.
Run with Docker:
docker compose up -d
Then open http://<vm_external_ip>:3000 in a browser!