Recommended size is at least t2.large (2 vCPU, 8 GiB Memory).
Click "Edit" in the "Network settings" section. Set up an Inbound Security Group Rules for (TCP, 3000, 0.0.0.0/0), (TCP, 3002-3003, 0.0.0.0/0), (TCP, 3050-3051, 0.0.0.0/0), and (TCP, 3080, 0.0.0.0/0). These are the ports exposed by the Inkeep services.
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 replace all of these in the .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:
From the root directory, create a new project directory for the Docker Compose setup for the Inkeep Agent Framework
mkdir inkeep && cd inkeepwget https://raw.githubusercontent.com/inkeep/agents/refs/heads/main/docker-compose.ymlwget https://raw.githubusercontent.com/inkeep/agents/refs/heads/main/.env.docker.example
Generate a .env file from the example:
cp .env.docker.example .env
Here's an overview of the important environment variables when deploying to production. Make sure to replace all of these in the .env file.
# Change to "production" if deploying to productionENVIRONMENT=production# AI Provider Keys (you need at least one)ANTHROPIC_API_KEY=OPENAI_API_KEY=GOOGLE_GENERATIVE_AI_API_KEY=# NangoNANGO_SECRET_KEY=# SigNozSIGNOZ_API_KEY=# Uncomment and set each of these with (openssl rand -hex 32)INKEEP_AGENTS_MANAGE_API_BYPASS_SECRET=INKEEP_AGENTS_RUN_API_BYPASS_SECRET=INKEEP_AGENTS_JWT_SIGNING_SECRET=# Uncomment and set these for the Manage UI at http://<vm_external_ip>:3000PUBLIC_INKEEP_AGENTS_MANAGE_API_URL=http://<vm_external_ip>:3002PUBLIC_INKEEP_AGENTS_RUN_API_URL=http://<vm_external_ip>:3003PUBLIC_INKEEP_AGENTS_RUN_API_BYPASS_SECRET=<copy INKEEP_AGENTS_RUN_API_BYPASS_SECRET>PUBLIC_NANGO_SERVER_URL=http://<vm_external_ip>:3050PUBLIC_NANGO_CONNECT_BASE_URL=http://<vm_external_ip>:3051PUBLIC_SIGNOZ_URL=http://<vm_external_ip>:3080# Better Auth secret (paste your generated secret)BETTER_AUTH_SECRET=<your-generated-secret># Initial admin credentialsINKEEP_AGENTS_MANAGE_UI_USERNAME=admin@example.comINKEEP_AGENTS_MANAGE_UI_PASSWORD=<secure-password-8-chars-min># SpiceDB connection, localhost. Can replace with cloud endpoint and preshared keySPICEDB_ENDPOINT=localhost:50051SPICEDB_PRESHARED_KEY=dev-secret-key
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!