> ## Documentation Index
> Fetch the complete documentation index at: https://dokulabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Self-host Doku in your preferred environment

Doku flexibly adapts to your preferred environment. Select a deployment method that best fits your needs:

> **[Kubernetes](https://dokulabs.mintlify.site/latest/installation.md#kubernetes)**
>
> Deploy Doku on a Kubernetes for scalable LLM Monitoring capabilities.

> **[Docker](https://dokulabs.mintlify.site/latest/installation.md#docker)**
>
> Deploy Doku using Docker for an easy-to-manage LLM Monitoring setup.

## Kubernetes

Deploy Doku on your Kubernetes cluster using the [Doku Helm chart](https://github.com/dokulabs/helm/tree/main/charts/doku) for a reliable and scalable solution.

**1. Helm Repo Setup**

```shell shell
helm repo add dokulabs https://dokulabs.github.io/helm/
helm repo update
```

**2. Installing the Helm Chart**

```shell shell
helm install doku dokulabs/doku --version="0.1.3"
```

## Docker

For a quick and straightforward setup, Docker Compose can be used to deploy Doku.

**1. Create `docker-compose.yml`**

```yaml
version: '3.8'

services:
  clickhouse:
    image: clickhouse/clickhouse-server:24.2.2
    container_name: clickhouse
    environment:
      CLICKHOUSE_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}   
      CLICKHOUSE_USER: ${DOKU_DB_USER:-default}                   
    volumes:
      - clickhouse-data:/var/lib/clickhouse
    ports:
      - "9000:9000" 
      - "8123:8123" 
    restart: always

  doku-ingester:
    image: ghcr.io/dokulabs/doku-ingester:0.1.3
    container_name: doku-ingester
    environment:
      DOKU_DB_HOST: clickhouse   
      DOKU_DB_PORT: 9000 
      DOKU_DB_NAME: ${DOKU_DB_NAME:-default}     
      DOKU_DB_USER: ${DOKU_DB_USER:-default}              
      DOKU_DB_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}
    ports:
      - "9044:9044"           
    depends_on:
      - clickhouse
    restart: always
  
  doku-client:
    image: ghcr.io/dokulabs/doku-client:0.1.3
    container_name: doku-client
    environment:
      INIT_DB_HOST: clickhouse
      INIT_DB_PORT: 8123
      INIT_DB_DATABASE: ${DOKU_DB_NAME:-default}
      INIT_DB_USERNAME: ${DOKU_DB_USER:-default}
      INIT_DB_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}
      SQLITE_DATABASE_URL: file:/app/client/data/data.db
    ports:
      - "3000:3000"
    depends_on:
      - clickhouse
    volumes:
      - doku-client-data:/app/client/data
    restart: always

volumes:
  clickhouse-data:
  doku-client-data:
```

**2. Start Docker Compose**

```shell
docker-compose up -d
```

***

> **[Integrations](https://dokulabs.mintlify.site/latest/integrations/introduction.md)**
>
> Integrate your LLM Provider with Doku

> **[Connections](https://dokulabs.mintlify.site/latest/connections/intro.md)**
>
> Connect to your existing Observablity Platform


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.