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

# Initial Setup

> Configure LLM providers, embeddings, and connectors after deploying Omni

After deploying Omni via [Docker Compose](/deployment/docker-compose) or [AWS Terraform](/deployment/aws-terraform), follow these steps to get your instance fully operational.

## Step 1: Access the Web UI and Create Your Admin Account

Navigate to your Omni URL (e.g., `https://<your_domain_name>`) and sign up. The first user to register automatically becomes the admin.

<Note>
  Admin users have access to **Settings** in the sidebar, where you can configure LLM providers, manage connectors, and invite users.
</Note>

## Step 2: Configure an LLM Provider

LLM providers are configured through the admin panel at **Settings > LLM Providers**. You can add multiple providers and users can select which model to use per chat.

### Add a Provider

1. Go to **Settings > LLM Providers**
2. Click **Connect** against the provider you wish to, well, connect
3. Enter the API key/credentials
4. Omni validates the provider by making a lightweight test call before saving
5. Click **Connect** to save; the provider's predefined or discovered models become available automatically

<Tip>
  You can add multiple providers simultaneously. For example, use Anthropic for complex reasoning and a local `llama.cpp` model (via the OpenAI-compatible provider) for sensitive queries.
</Tip>

### AWS Bedrock Notes

Bedrock calls are made by the `omni-ai` service. When running Omni on EC2 or ECS, attach an IAM role to the EC2 instance or ECS task that runs `omni-ai`; do not use long-lived access keys unless you cannot use an IAM role.

Set the Bedrock region explicitly on `omni-ai`:

```bash theme={null}
AWS_REGION=us-east-1
AWS_DEFAULT_REGION=us-east-1
```

EC2 instance metadata provides IAM role credentials, but it does not automatically export `AWS_REGION` inside your host or containers. `AWS_REGION` is required for Bedrock embeddings and is used as the fallback LLM region when the provider's AWS Region field is left blank in **Settings > LLM Providers**.

The `omni-ai` role needs permission to use the models you configure:

```json theme={null}
{
  "Effect": "Allow",
  "Action": [
    "bedrock:InvokeModel",
    "bedrock:InvokeModelWithResponseStream",
    "bedrock:ListFoundationModels"
  ],
  "Resource": "*"
}
```

Before testing the provider in Omni, enable access to the selected Bedrock models in the AWS console for the same region. If you run Docker containers on EC2 with an instance profile, ensure containers can reach the EC2 metadata service; for IMDSv2 this may require setting the instance metadata response hop limit to `2`.

If you are not using an IAM role, set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` on `omni-ai` instead. Add `AWS_SESSION_TOKEN` too when using temporary credentials.

### Vertex AI Notes

Vertex AI uses Google Cloud Application Default Credentials (ADC). In the admin panel, configure the GCP `region` and `project_id`. When running on GCP (GKE, Cloud Run, Compute Engine) with an attached service account, authentication is automatic. For other environments, set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable pointing to a service account key JSON file.

### Azure AI Foundry Notes

Azure AI Foundry uses `DefaultAzureCredential` (Managed Identity). In the admin panel, configure the `endpoint_url` of your Azure AI Foundry deployment. When running on Azure (AKS, Container Apps) with Managed Identity, authentication is automatic.

### Self-hosted Models (OpenAI-compatible)

Omni ships an `docker-compose.local-inference.yml` overlay that starts a local `llama.cpp` server for LLMs and, optionally, a HuggingFace TEI server for embeddings. Start them with:

```bash theme={null}
omni-compose -f docker/docker-compose.local-inference.yml up -d
```

Then in the admin panel:

* Add an **OpenAI-compatible** LLM provider pointing to `http://llama-cpp:${LOCAL_INFERENCE_MODEL_PORT}`
* (Optional) Add the **Local** embedding provider pointing to `http://embeddings:${LOCAL_EMBEDDINGS_PORT}/v1`

The local LLM and embedding containers can be enabled independently — you can mix cloud LLMs with a local embedding model, or vice versa.

See [LLM Provider Configuration](/deployment/configuration#llm-provider-configuration) for all environment variable details.

## Step 3: Configure an Embedding Provider

Embeddings power Omni's semantic search. Like LLM providers, embedding providers are configured through the admin panel.

### Add a Provider

1. Go to **Settings > Embedding Providers**
2. Click **Connect** against the provider you wish to use
3. Enter the API key/credentials
4. Click **Connect** to save

<Warning>
  Changing the embedding provider after documents have been indexed will require a full re-index, since different providers produce incompatible vector representations.
</Warning>

## Step 4: Configure Web Providers (Optional)

If you want the AI assistant and background agents to search or fetch public web pages, configure web providers from **Settings > Web Providers**.

| Provider kind | Supported providers       | Used by                     |
| ------------- | ------------------------- | --------------------------- |
| **Search**    | Exa, Serper, Brave Search | `web_search` agent tool     |
| **Fetch**     | Exa, Firecrawl            | `fetch_web_page` agent tool |

You can connect multiple providers and mark one search provider and one fetch provider as current. The same page includes a URL blocklist for domains or URL prefixes that agents should never fetch.

<Note>
  These web providers are separate from the [Web Connector](/connectors/web). The connector indexes a configured website into Omni's internal search index; web providers let agents query or fetch public web content live during a chat or agent run.
</Note>

## Step 5: Enable and Configure Connectors

Connectors sync data from your external tools into Omni.

### Enable Connectors

Set the `ENABLED_CONNECTORS` environment variable to a comma-separated list of the connectors you want to run:

```bash theme={null}
# Example: enable Google Workspace, Slack, and Atlassian
ENABLED_CONNECTORS=google,slack,atlassian
```

Available connector names: `google`, `google_ads`, `slack`, `atlassian`, `github`, `hubspot`, `notion`, `filesystem`, `fireflies`, `web`, `microsoft`, `imap`, `clickup`, `linear`, `nextcloud`, `paperless`, `darwinbox`

Restart services after changing this variable (`omni-compose up -d`).

### Configure Each Connector

Once enabled, connectors are configured in the admin panel:

1. Go to **Settings > Integrations**
2. Select the connector you want to configure
3. Follow the setup instructions (typically involves providing service credentials or API keys)
4. Start the initial sync

<CardGroup cols={2}>
  <Card title="Google Workspace" icon="https://mintcdn.com/omni-32b875be/snhpxkbpe8cM_QhI/images/icons/google.svg?fit=max&auto=format&n=snhpxkbpe8cM_QhI&q=85&s=d3c6670068c77edd18a52bcd4256886f" href="/connectors/google-workspace" width="800" height="800" data-path="images/icons/google.svg">
    Drive, Docs, Sheets, Gmail
  </Card>

  <Card title="Microsoft 365" icon="https://mintcdn.com/omni-32b875be/snhpxkbpe8cM_QhI/images/icons/microsoft.svg?fit=max&auto=format&n=snhpxkbpe8cM_QhI&q=85&s=b007ef7dd57c7d235c07fb5bc19bd0de" href="/connectors/microsoft365" width="23" height="23" data-path="images/icons/microsoft.svg">
    OneDrive, SharePoint, Outlook, Calendar
  </Card>

  <Card title="Slack" icon="https://mintcdn.com/omni-32b875be/snhpxkbpe8cM_QhI/images/icons/slack.svg?fit=max&auto=format&n=snhpxkbpe8cM_QhI&q=85&s=d8e5372b07be114aab5fb0a0f4a4fae3" href="/connectors/slack" width="127" height="127" data-path="images/icons/slack.svg">
    Messages, threads, files
  </Card>

  <Card title="Atlassian" icon="https://mintcdn.com/omni-32b875be/snhpxkbpe8cM_QhI/images/icons/atlassian.svg?fit=max&auto=format&n=snhpxkbpe8cM_QhI&q=85&s=6add7869b873ed75b3282894b5e2edfc" href="/connectors/atlassian" width="800" height="800" data-path="images/icons/atlassian.svg">
    Jira issues, Confluence pages
  </Card>

  <Card title="All Connectors" icon="plug" href="/connectors/overview">
    Full list and setup guides
  </Card>
</CardGroup>

## Step 6: Verify Your Setup

Once you've configured at least one LLM provider, an embedding provider, and a connector, verify everything is working.

### Check Connector Sync Status

Go to **Settings > Integrations** and confirm your connectors show a successful sync status. The initial sync may take a few minutes depending on the volume of data.

### Test Search

1. Navigate to the **Search** page
2. Enter a query related to content from your connected sources
3. Verify that results appear and are relevant

### Test the AI Assistant

1. Navigate to the **Chat** page
2. Ask a question about information in your connected sources
3. Verify the assistant responds with an answer that cites your documents

<Tip>
  If search returns results but the AI assistant doesn't work, double-check your LLM provider configuration in **Settings > LLM Providers**.
</Tip>

## Next Steps

* [Configuration Reference](/deployment/configuration) — Full list of environment variables and options
* [User Management](/admin/user-management) — Invite team members and manage roles
* [Connector Management](/admin/connector-management) — Monitor sync status and schedules
