# Getting Started

**Version: 6.0.0**

Welcome to **EDDI**!

This article will help you to get started with **EDDI**.

## What You're Installing

EDDI is a **middleware orchestration service** for conversational AI. When you run EDDI, you're starting:

1. **The EDDI Service**: A Java/Quarkus application that exposes REST APIs for agent management and conversations
2. **MongoDB**: A database that stores agent configurations, packages, and conversation history
3. **Optional UI**: A web-based dashboard for managing agents (accessible at <http://localhost:7070>)

Once running, you can:

* Create and configure agents through the API or dashboard
* Integrate agents into your applications via REST API
* Connect to LLM services (OpenAI, Claude, Gemini, etc.)
* Build complex conversation flows with behavior rules
* Call external APIs from your agent logic

## Installation Options

### Option 0 - One-Command Install (Recommended)

**Linux / macOS / WSL2:**

```bash
curl -fsSL https://raw.githubusercontent.com/labsai/EDDI/main/install.sh | bash
```

**Windows (PowerShell):**

```powershell
iwr -useb https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1 | iex
```

> **Note:** If your Antivirus blocks this command as "malicious content", securely download and run it instead:
>
> ```powershell
> Invoke-WebRequest -Uri "https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1" -OutFile "install.ps1"
> Unblock-File .\install.ps1
> .\install.ps1
> ```

The wizard guides you through choosing a database (MongoDB or PostgreSQL), optional authentication (Keycloak), and monitoring (Grafana). After setup, Agent Father is deployed automatically to help you create your first AI agent.

### Option 1 - EDDI with Docker (Manual)

There are two ways to use `Docker` with **EDDI**, either with **`docker-compose`** or launch the container manually.

***Prerequisite**: You need an up and running `Docker` environment. (For references, see:* <https://docs.docker.com/learn/>)

### Use docker-compose (recommended)

1. `Checkout` the `docker-compose` file from `Github`:[`https://github.com/labsai/EDDI/blob/main/docker-compose.yml`](https://github.com/labsai/EDDI/blob/main/docker-compose.yml)
2. Run Docker Command:

   ```
    docker-compose up
   ```

### Use launch docker containers manually

1. Create a shared network

   ```
   docker network create eddi-network
   ```
2. Start a `MongoDB` instance using the `MongoDB` `Docker` image:

   ```
   docker run --name mongodb --network=eddi-network -d mongo
   ```
3. Start **EDDI** :

   ```
   docker run --name eddi --network=eddi-network -p 7070:7070 -d labsai/eddi
   ```

## Option 2 - Deploy on Kubernetes

EDDI runs natively on any Kubernetes cluster (minikube, kind, GKE, EKS, AKS).

**Quickstart (all-in-one):**

```bash
kubectl apply -f https://raw.githubusercontent.com/labsai/EDDI/main/k8s/quickstart.yaml
bash k8s/create-secrets.sh  # generate vault key
```

**Using Kustomize overlays:**

```bash
kubectl apply -k k8s/overlays/mongodb/    # MongoDB backend
kubectl apply -k k8s/overlays/postgres/   # PostgreSQL backend
```

**Using Helm:**

```bash
helm install eddi ./helm/eddi --namespace eddi --create-namespace
```

See the [Kubernetes Deployment Guide](https://docs.labs.ai/deployment-and-infrastructure/kubernetes) for full details including auth, monitoring, NATS, Ingress, and production hardening.

## Option 3 - Run from Source

#### *Prerequisites:*

* Java 25
* Maven 3.9+
* MongoDB ≥ 6.0 (or PostgreSQL)

### How to run the project

Setup a local MongoDB (≥ 6.0) or PostgreSQL instance.

> **Note:** If no database instance is available, Quarkus Dev Services will try to start a container automatically (requires Docker running on the host).

On a terminal, under project root folder, run the following command:

```shell
./mvnw compile quarkus:dev
```

1. Go to Browser --> <http://localhost:7070>

### Build App & Docker image

```bash
./mvnw clean package '-Dquarkus.container-image.build=true'
```

### Download from Docker hub registry

```bash
docker pull labsai/eddi
```

<https://hub.docker.com/r/labsai/eddi>

### Run Docker image

For production, launch standalone mongodb and then start an eddi instance as defined in the docker-compose file

```bash
docker-compose up
```

For development, use

```bash
docker-compose -f docker-compose.yml -f docker-compose.local.yml up
```

For integration testing run

```bash
./mvnw verify -DskipITs=false
```

This uses Testcontainers to automatically start EDDI + MongoDB/PostgreSQL in Docker containers for E2E testing. Requires Docker to be running.
