---
title: Install OpenRAG
slug: /install
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import PartialOnboarding from '@site/docs/_partial-onboarding.mdx'; 

[Install the OpenRAG Python wheel](#install-python-wheel), and then run the [OpenRAG Terminal User Interface(TUI)](#setup) to start your OpenRAG deployment with a guided setup process.

If you prefer running Docker commands and manually editing `.env` files, see [Install with Docker](/get-started/docker).

## Prerequisites 

- Install [Python Version 3.10 to 3.13](https://www.python.org/downloads/release/python-3100/)
- Install [uv](https://docs.astral.sh/uv/getting-started/installation/)
- Install [Podman](https://podman.io/docs/installation) (recommended) or [Docker](https://docs.docker.com/get-docker/)
- Install [Docker Compose](https://docs.docker.com/compose/install/). If using Podman, use [podman-compose](https://docs.podman.io/en/latest/markdown/podman-compose.1.html) or alias Docker compose commands to Podman commands.
- Create an [OpenAI API key](https://platform.openai.com/api-keys). This key is **required** to start OpenRAG, but you can choose a different model provider during [Application Onboarding](#application-onboarding).
- Optional: Install GPU support with an NVIDIA GPU, [CUDA](https://docs.nvidia.com/cuda/) support, and compatible NVIDIA drivers on the OpenRAG host machine. If you don't have GPU capabilities, OpenRAG provides an alternate CPU-only deployment.

## Install the OpenRAG Python wheel {#install-python-wheel}

:::important
The `.whl` file is currently available as an internal download during public preview, and will be published to PyPI in a future release.
:::

The OpenRAG wheel installs the Terminal User Interface (TUI) for configuring and running OpenRAG.

1. Create a new project with a virtual environment using `uv init`.

   ```bash
   uv init YOUR_PROJECT_NAME
   cd YOUR_PROJECT_NAME
   ```

   The `(venv)` prompt doesn't change, but `uv` commands will automatically use the project's virtual environment.
   For more information on virtual environments, see the [uv documentation](https://docs.astral.sh/uv/pip/environments).

2. Add the local OpenRAG wheel to your project's virtual environment.

   ```bash
   uv add PATH/TO/openrag-VERSION-py3-none-any.whl
   ```
   Replace `PATH/TO/` and `VERSION` with the path and version of your downloaded OpenRAG `.whl` file.

   For example, if your `.whl` file is in the `~/Downloads` directory, the command is `uv add ~/Downloads/openrag-0.1.8-py3-none-any.whl`.

3. Ensure all dependencies are installed and updated in your virtual environment.
   ```bash
   uv sync
   ```

4. Start the OpenRAG TUI.
   ```bash
   uv run openrag
   ```

5. Continue with [Set up OpenRAG with the TUI](#setup).

## Set up OpenRAG with the TUI {#setup}

The TUI creates a `.env` file in your OpenRAG directory root and starts OpenRAG.
If the TUI detects a `.env` file in the OpenRAG root directory, it sources any variables from the `.env` file.
If the TUI detects OAuth credentials, it enforces the **Advanced Setup** path.

<Tabs groupId="Setup method">
  <TabItem value="Basic setup" label="Basic setup" default>

    **Basic Setup** generates all of the required values for OpenRAG except the OpenAI API key.
    **Basic Setup** does not set up OAuth connections for ingestion from cloud providers.
    For OAuth setup, use **Advanced Setup**.
    For information about the difference between basic (no auth) and OAuth in OpenRAG, see [Authentication and document access](/knowledge#auth).

   1. To install OpenRAG with **Basic Setup**, click **Basic Setup** or press <kbd>1</kbd>. 
   2. Click **Generate Passwords** to generate passwords for OpenSearch and Langflow.
   3. Paste your OpenAI API key in the OpenAI API key field.
   4. Click **Save Configuration**.
   Your passwords are saved in the `.env` file used to start OpenRAG.
   5. To start OpenRAG, click **Start Container Services**.
      Startup pulls container images and runs them, so it can take some time.
      When startup is complete, the TUI displays the following:
      ```bash
      Services started successfully
      Command completed successfully
      ```
   6. To open the OpenRAG application, click **Open App**.
   7. Continue with [Application Onboarding](#application-onboarding).
  </TabItem>
  <TabItem value="Advanced setup" label="Advanced setup">

   1. To install OpenRAG with **Advanced Setup**, click **Advanced Setup** or press <kbd>2</kbd>. 
   2. Click **Generate Passwords** to generate passwords for OpenSearch and Langflow.
   3. Paste your OpenAI API key in the OpenAI API key field.
   4. Add your client and secret values for Google or Microsoft OAuth.
   These values can be found with your OAuth provider.
   For more information, see the [Google OAuth client](https://developers.google.com/identity/protocols/oauth2) or [Microsoft Graph OAuth client](https://learn.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/graph-oauth) documentation.
   5. The OpenRAG TUI presents redirect URIs for your OAuth app.
   These are the URLs your OAuth provider will redirect back to after user sign-in.
   Register these redirect values with your OAuth provider as they are presented in the TUI.
   6. Click **Save Configuration**.
   7. To start OpenRAG, click **Start Container Services**.
      Startup pulls container images and runs them, so it can take some time.
      When startup is complete, the TUI displays the following:
      ```bash
      Services started successfully
      Command completed successfully
      ```
   8. To open the OpenRAG application, click **Open App**, press <kbd>6</kbd>, or navigate to `http://localhost:3000`.
   You are presented with your provider's OAuth sign-in screen.
   After sign-in, you are redirected to the redirect URI.

       Two additional variables are available for Advanced Setup:

       The `LANGFLOW_PUBLIC_URL` controls where the Langflow web interface can be accessed. This is where users interact with their flows in a browser.

       The `WEBHOOK_BASE_URL` controls where the endpoint for `/connectors/CONNECTOR_TYPE/webhook` will be available.
       This connection enables real-time document synchronization with external services.
       Supported webhook endpoints:
       - Google Drive: `/connectors/google_drive/webhook`
       - OneDrive: `/connectors/onedrive/webhook`  
       - SharePoint: `/connectors/sharepoint/webhook`
       
   9. Continue with [Application Onboarding](#application-onboarding).
  </TabItem>
</Tabs>

<PartialOnboarding />