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

# Quickstart

> Get up and running on your infrastructure

## Setup your local environment

1. Clone the repository

```
git clone git@github.com:omo-ai/omo.git
```

2. Configure the environment variables

All environment variables are stored in the `envs/` directory.
After cloning the repo, copy the environment variables templates:

```
cp envs/env.development.template envs/.env.development
```

3. Generate an encryption key and add it to `.env.development`

Some columns in the database are encrypted. Generate an encryption key
and set the `ENCRYPTION_KEY` environment variable with this value.

To generate a key, on \*nix machines:

```sh theme={null}
echo "ENCRYPTION_KEY=`dd if=/dev/urandom bs=32 count=1 2>/dev/null | openssl base64`" >> envs/.env.development
```

<Warning>Don't lose this key or commit to a repo. Doing so will mean you can no longer
decrypt values, and if anyone else gains access to it they can decrypt values.</Warning>

<Info>There are utilities to use AWS secrets manager instead of the database.</Info>

4. Starting the UI, API, and required infrastructure

Use `docker compose` to start the environment locally:

```sh theme={null}
ENV=dev ENV_NS=example docker compose up
```

Visit `http://localhost:3000` to load the Omo UI.

<Info>
  The `ENV_NS` is an optional variable. If specified, it should reference a folder name under `envs/`. For example, `ENV_NS=example` will include additional environment variabes under `envs/example/.env` in addition to `.env.development` in the project root.

  It's helpful if you want to test different values of environment variables without constantly
  changing the value.

  For example, if you want to test different values for 2 teams, you can create `envs/team1/.env` and `envs/team2/.env`, then set `ENV_NS=team1` or `ENV_NS=team2`.

  You can check the `env_file` attribute in `docker-compose.yaml` to see how `ENV_NS` is used.
</Info>
