# Deploy using Docker (Local Development) (/deployment/docker-local)





## Install Docker

* [Install Docker Desktop](https://www.docker.com/products/docker-desktop/)

## Deploy SigNoz and Nango

For full functionality, the **Inkeep Agent Framework** requires [**SigNoz**](https://signoz.io/) and [**Nango**](https://www.nango.dev/). You can sign up for a cloud hosted account with them directly, or you can self host them. Follow these instructions to self-host both SigNoz and Nango.

Clone this repo, which includes docker files with SigNoz and Nango:

```bash
git clone https://github.com/inkeep/agents-optional-local-dev inkeep-external-services
cd inkeep-external-services
```

Run this command to autogenerate a `.env` file:

```bash
cp .env.example .env && \
  encryption_key=$(openssl rand -base64 32) && \
  tmp_file=$(mktemp) && \
  sed "s|<REPLACE_WITH_BASE64_256BIT_ENCRYPTION_KEY>|$encryption_key|" .env > "$tmp_file" && \
  mv "$tmp_file" .env && \
  echo "Docker environment file created with auto-generated encryption key"
```

Nango requires a `NANGO_ENCRYPTION_KEY`. Once you create this, it cannot be edited.

Build and deploy SigNoz, Nango, OTEL Collector, and Jaeger:

```bash
docker compose up -d
```

This may take up to 5 minutes to start.

### Retrieve your SigNoz and Nango API Keys

To get your SigNoz API key `SIGNOZ_API_KEY`:

* Open SigNoz in a browser at `http://localhost:3080`
* Navigate to Settings → Account Settings → API Keys → New Key
* Choose a role, Viewer is sufficient for observability
* Set the expiration field to "No Expiry" to prevent the key from expiring

To get your Nango secret key `NANGO_SECRET_KEY`:

* Open Nango in a browser at `http://localhost:3050`
* Nango autocreates two environments Prod and Dev, select the one you will use
* Navigate to Environment Settings to find the secret key

## Deploy the Inkeep Agent Framework

From the root directory, create a new project directory for the docker compose setup for Inkeep Agent Framework

```bash
mkdir inkeep && cd inkeep
wget https://raw.githubusercontent.com/inkeep/agents/refs/heads/main/docker-compose.yml
wget https://raw.githubusercontent.com/inkeep/agents/refs/heads/main/.env.docker.example
```

Generate a `.env` file from the example:

```bash
cp .env.docker.example .env
```

Here's an overview of the important environment variables when deploying. Make sure to replace all of these in the `.env` file.

```bash
ENVIRONMENT=development