openrag/docker/index.html
2025-12-03 19:20:11 +00:00

354 lines
No EOL
59 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-get-started/docker" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Install OpenRAG containers | OpenRAG</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="robots" content="noindex, nofollow"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.openr.ag/docker"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Install OpenRAG containers | OpenRAG"><meta data-rh="true" name="description" content="OpenRAG has two Docker Compose files. Both files deploy the same applications and containers locally, but they are for different environments:"><meta data-rh="true" property="og:description" content="OpenRAG has two Docker Compose files. Both files deploy the same applications and containers locally, but they are for different environments:"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.openr.ag/docker"><link data-rh="true" rel="alternate" href="https://docs.openr.ag/docker" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openr.ag/docker" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Install OpenRAG containers","item":"https://docs.openr.ag/docker"}]}</script><link rel="stylesheet" href="/assets/css/styles.66669ecc.css">
<script src="/assets/js/runtime~main.a3cb74e9.js" defer="defer"></script>
<script src="/assets/js/main.86159c47.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo-openrag-light.svg"><link rel="preload" as="image" href="/img/logo-openrag-dark.svg"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo-openrag-light.svg" alt="OpenRAG Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/logo-openrag-dark.svg" alt="OpenRAG Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/openrag" target="_blank" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/"><span title="About OpenRAG" class="linkLabel_WmDU">About OpenRAG</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/quickstart"><span title="Quickstart" class="linkLabel_WmDU">Quickstart</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/install"><span title="Install OpenRAG with TUI" class="linkLabel_WmDU">Install OpenRAG with TUI</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/docker"><span title="Install OpenRAG containers" class="linkLabel_WmDU">Install OpenRAG containers</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/agents"><span title="Flows" class="linkLabel_WmDU">Flows</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/knowledge"><span title="Knowledge" class="categoryLinkLabel_W154">Knowledge</span></a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/chat"><span title="Chat" class="linkLabel_WmDU">Chat</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/configuration"><span title="Environment variables" class="linkLabel_WmDU">Environment variables</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/support/troubleshoot"><span title="Troubleshoot OpenRAG" class="linkLabel_WmDU">Troubleshoot OpenRAG</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Install OpenRAG containers</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Install OpenRAG containers</h1></header><p>OpenRAG has two Docker Compose files. Both files deploy the same applications and containers locally, but they are for different environments:</p>
<ul>
<li class="">
<p><a href="https://github.com/langflow-ai/openrag/blob/main/docker-compose.yml" target="_blank" rel="noopener noreferrer" class=""><code>docker-compose.yml</code></a> is an OpenRAG deployment with GPU support for accelerated AI processing. This Docker Compose file requires an NVIDIA GPU with <a href="https://docs.nvidia.com/cuda/" target="_blank" rel="noopener noreferrer" class="">CUDA</a> support.</p>
</li>
<li class="">
<p><a href="https://github.com/langflow-ai/openrag/blob/main/docker-compose-cpu.yml" target="_blank" rel="noopener noreferrer" class=""><code>docker-compose-cpu.yml</code></a> is a CPU-only version of OpenRAG for systems without NVIDIA GPU support. Use this Docker Compose file for environments where GPU drivers aren&#x27;t available.</p>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no"></a></h2>
<ul>
<li class="">
<p>Install the following:</p>
<ul>
<li class=""><a href="https://www.python.org/downloads/release/python-3100/" target="_blank" rel="noopener noreferrer" class="">Python</a> version 3.13 or later.</li>
<li class=""><a href="https://docs.astral.sh/uv/getting-started/installation/" target="_blank" rel="noopener noreferrer" class="">uv</a>.</li>
<li class=""><a href="https://podman.io/docs/installation" target="_blank" rel="noopener noreferrer" class="">Podman</a> (recommended) or <a href="https://docs.docker.com/get-docker/" target="_blank" rel="noopener noreferrer" class="">Docker</a>.</li>
<li class=""><a href="https://docs.podman.io/en/latest/markdown/podman-compose.1.html" target="_blank" rel="noopener noreferrer" class=""><code>podman-compose</code></a> or <a href="https://docs.docker.com/compose/install/" target="_blank" rel="noopener noreferrer" class="">Docker Compose</a>. To use Docker Compose with Podman, you must alias Docker Compose commands to Podman commands.</li>
</ul>
</li>
<li class="">
<p>Microsoft Windows only: To run OpenRAG on Windows, you must use the Windows Subsystem for Linux (WSL).</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Install WSL for OpenRAG</summary><div><div class="collapsibleContent_i85q"><ol>
<li class="">
<p><a href="https://learn.microsoft.com/en-us/windows/wsl/install" target="_blank" rel="noopener noreferrer" class="">Install WSL</a> with the Ubuntu distribution using WSL 2:</p>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">wsl --install -d Ubuntu</span><br></span></code></pre></div></div>
<p>For new installations, the <code>wsl --install</code> command uses WSL 2 and Ubuntu by default.</p>
<p>For existing WSL installations, you can <a href="https://learn.microsoft.com/en-us/windows/wsl/install#change-the-default-linux-distribution-installed" target="_blank" rel="noopener noreferrer" class="">change the distribution</a> and <a href="https://learn.microsoft.com/en-us/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2" target="_blank" rel="noopener noreferrer" class="">check the WSL version</a>.</p>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Known limitation</div><div class="admonitionContent_BuS1"><p>OpenRAG isn&#x27;t compatible with nested virtualization, which can cause networking issues.
Don&#x27;t install OpenRAG on a WSL distribution that is installed inside a Windows VM.
Instead, install OpenRAG on your base OS or a non-nested Linux VM.</p></div></div>
</li>
<li class="">
<p><a href="https://learn.microsoft.com/en-us/windows/wsl/install#ways-to-run-multiple-linux-distributions-with-wsl" target="_blank" rel="noopener noreferrer" class="">Start your WSL Ubuntu distribution</a> if it doesn&#x27;t start automatically.</p>
</li>
<li class="">
<p><a href="https://learn.microsoft.com/en-us/windows/wsl/setup/environment#set-up-your-linux-username-and-password" target="_blank" rel="noopener noreferrer" class="">Set up a username and password for your WSL distribution</a>.</p>
</li>
<li class="">
<p><a href="https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers" target="_blank" rel="noopener noreferrer" class="">Install Docker Desktop for Windows with WSL 2</a>. When you reach the Docker Desktop <strong>WSL integration</strong> settings, make sure your Ubuntu distribution is enabled, and then click <strong>Apply &amp; Restart</strong> to enable Docker support in WSL.</p>
</li>
<li class="">
<p>Install and run OpenRAG from within your WSL Ubuntu distribution.</p>
</li>
</ol>
<br>
<p>If you encounter issues with port forwarding or the Windows Firewall, you might need to adjust the <a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall" target="_blank" rel="noopener noreferrer" class="">Hyper-V firewall settings</a> to allow communication between your WSL distribution and the Windows host. For more troubleshooting advice for networking issues, see <a href="https://learn.microsoft.com/en-us/windows/wsl/troubleshooting#common-issues" target="_blank" rel="noopener noreferrer" class="">Troubleshooting WSL common issues</a>.</p></div></div></details>
</li>
<li class="">
<p>Prepare model providers and credentials.</p>
<p>During <a href="#application-onboarding" class="">application onboarding</a>, you must select language model and embedding model providers.
If your chosen provider offers both types, you can use the same provider for both selections.
If your provider offers only one type, such as Anthropic, you must select two providers.</p>
<p>Gather the credentials and connection details for your chosen model providers before starting onboarding:</p>
<ul>
<li class="">OpenAI: Create an <a href="https://platform.openai.com/api-keys" target="_blank" rel="noopener noreferrer" class="">OpenAI API key</a>.</li>
<li class="">Anthropic language models: Create an <a href="https://www.anthropic.com/docs/api/reference" target="_blank" rel="noopener noreferrer" class="">Anthropic API key</a>.</li>
<li class="">IBM watsonx.ai: Get your watsonx.ai API endpoint, IBM project ID, and IBM API key from your watsonx deployment.</li>
<li class="">Ollama: Use the <a href="https://docs.ollama.com/" target="_blank" rel="noopener noreferrer" class="">Ollama documentation</a> to set up your Ollama instance locally, in the cloud, or on a remote server, and then get your Ollama server&#x27;s base URL.</li>
</ul>
</li>
<li class="">
<p>Optional: Install GPU support with an NVIDIA GPU, <a href="https://docs.nvidia.com/cuda/" target="_blank" rel="noopener noreferrer" class="">CUDA</a> support, and compatible NVIDIA drivers on the OpenRAG host machine. This is required to use the GPU-accelerated Docker Compose file. If you choose not to use GPU support, you must use the CPU-only Docker Compose file instead.</p>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-openrag-with-docker-compose">Install OpenRAG with Docker Compose<a href="#install-openrag-with-docker-compose" class="hash-link" aria-label="Direct link to Install OpenRAG with Docker Compose" title="Direct link to Install OpenRAG with Docker Compose" translate="no"></a></h2>
<p>To install OpenRAG with Docker Compose, do the following:</p>
<ol>
<li class="">
<p>Clone the OpenRAG repository.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">git clone https://github.com/langflow-ai/openrag.git</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cd openrag</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Install dependencies.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">uv sync</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Copy the example <code>.env</code> file included in the repository root.
The example file includes all environment variables with comments to guide you in finding and setting their values.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">cp .env.example .env</span><br></span></code></pre></div></div>
<p>Alternatively, create a new <code>.env</code> file in the repository root.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">touch .env</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>The Docker Compose files are populated with the values from your <code>.env</code> file.
The <code>OPENSEARCH_PASSWORD</code> value must be set.
<code>OPENSEARCH_PASSWORD</code> can be automatically generated when using the TUI, but for a Docker Compose installation, you can set it manually instead. To generate an OpenSearch admin password, see the <a href="https://docs.opensearch.org/latest/security/configuration/demo-configuration/#setting-up-a-custom-admin-password" target="_blank" rel="noopener noreferrer" class="">OpenSearch documentation</a>.</p>
<p>The following values are optional:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">OPENAI_API_KEY=your_openai_api_key</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LANGFLOW_SECRET_KEY=your_secret_key</span><br></span></code></pre></div></div>
<p><code>OPENAI_API_KEY</code> is optional. You can provide it during <a href="#application-onboarding" class="">application onboarding</a> or choose a different model provider. If you want to set it in your <code>.env</code> file, you can find your OpenAI API key in your <a href="https://platform.openai.com/api-keys" target="_blank" rel="noopener noreferrer" class="">OpenAI account</a>.</p>
<p><code>LANGFLOW_SECRET_KEY</code> is optional. Langflow will auto-generate it if not set. For more information, see the <a href="https://docs.langflow.org/api-keys-and-authentication#langflow-secret-key" target="_blank" rel="noopener noreferrer" class="">Langflow documentation</a>.</p>
<p>The following Langflow configuration values are optional but important to consider:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">LANGFLOW_SUPERUSER=admin</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LANGFLOW_SUPERUSER_PASSWORD=your_langflow_password</span><br></span></code></pre></div></div>
<p><code>LANGFLOW_SUPERUSER</code> defaults to <code>admin</code>. You can omit it or set it to a different username. <code>LANGFLOW_SUPERUSER_PASSWORD</code> is optional. If omitted, Langflow runs in <a href="https://docs.langflow.org/api-keys-and-authentication#langflow-auto-login" target="_blank" rel="noopener noreferrer" class="">autologin mode</a> with no password required. If set, Langflow requires password authentication.</p>
<p>For more information on configuring OpenRAG with environment variables, see <a class="" href="/reference/configuration">Environment variables</a>.</p>
</li>
<li class="">
<p>Start <code>docling serve</code> on the host machine.
OpenRAG Docker installations require that <code>docling serve</code> is running on port 5001 on the host machine.
This enables <a href="https://opensource.apple.com/projects/mlx/" target="_blank" rel="noopener noreferrer" class="">Mac MLX</a> support for document processing.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">uv run python scripts/docling_ctl.py start --port 5001</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Confirm <code>docling serve</code> is running.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">uv run python scripts/docling_ctl.py status</span><br></span></code></pre></div></div>
<p>Make sure the response shows that <code>docling serve</code> is running, for example:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Status: running</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Endpoint: http://127.0.0.1:5001</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Docs: http://127.0.0.1:5001/docs</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">PID: 27746</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Deploy OpenRAG locally with Docker Compose based on your deployment type.</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">docker-compose.yml</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">docker-compose-cpu.yml</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose build</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">docker compose up -d</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose -f docker-compose-cpu.yml up -d</span><br></span></code></pre></div></div></div></div></div>
<p>The OpenRAG Docker Compose file starts five containers:</p>
<table><thead><tr><th>Container Name</th><th>Default Address</th><th>Purpose</th></tr></thead><tbody><tr><td>OpenRAG Backend</td><td><a href="http://localhost:8000" target="_blank" rel="noopener noreferrer" class="">http://localhost:8000</a></td><td>FastAPI server and core functionality.</td></tr><tr><td>OpenRAG Frontend</td><td><a href="http://localhost:3000" target="_blank" rel="noopener noreferrer" class="">http://localhost:3000</a></td><td>React web interface for users.</td></tr><tr><td>Langflow</td><td><a href="http://localhost:7860" target="_blank" rel="noopener noreferrer" class="">http://localhost:7860</a></td><td>AI workflow engine and flow management.</td></tr><tr><td>OpenSearch</td><td><a href="http://localhost:9200" target="_blank" rel="noopener noreferrer" class="">http://localhost:9200</a></td><td>Vector database for document storage.</td></tr><tr><td>OpenSearch Dashboards</td><td><a href="http://localhost:5601" target="_blank" rel="noopener noreferrer" class="">http://localhost:5601</a></td><td>Database administration interface.</td></tr></tbody></table>
</li>
<li class="">
<p>Verify installation by confirming all services are running.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose ps</span><br></span></code></pre></div></div>
<p>You can now access OpenRAG at the following endpoints:</p>
<ul>
<li class=""><strong>Frontend</strong>: <a href="http://localhost:3000" target="_blank" rel="noopener noreferrer" class="">http://localhost:3000</a></li>
<li class=""><strong>Backend API</strong>: <a href="http://localhost:8000" target="_blank" rel="noopener noreferrer" class="">http://localhost:8000</a></li>
<li class=""><strong>Langflow</strong>: <a href="http://localhost:7860" target="_blank" rel="noopener noreferrer" class="">http://localhost:7860</a></li>
</ul>
</li>
<li class="">
<p>Continue with <a href="#application-onboarding" class="">application onboarding</a>.</p>
</li>
</ol>
<p>To stop <code>docling serve</code> when you&#x27;re done with your OpenRAG deployment, run:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">uv run python scripts/docling_ctl.py stop</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="application-onboarding">Application onboarding<a href="#application-onboarding" class="hash-link" aria-label="Direct link to Application onboarding" title="Direct link to Application onboarding" translate="no"></a></h2>
<p>The first time you start OpenRAG, regardless of how you installed it, you must complete application onboarding.</p>
<p>Some of these variables, such as the embedding models, can be changed seamlessly after onboarding.
Others are immutable and require you to destroy and recreate the OpenRAG containers.
For more information, see <a class="" href="/reference/configuration">Environment variables</a>.</p>
<p>You can use different providers for your language model and embedding model, such as Anthropic for the language model and OpenAI for the embeddings model.
Additionally, you can set multiple embedding models.</p>
<p>You only need to complete onboarding for your preferred providers.</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Anthropic</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">OpenAI</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">IBM watsonx.ai</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Ollama</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Anthropic doesn&#x27;t provide embedding models. If you select Anthropic for your language model, you must select a different provider for embeddings.</p></div></div><ol>
<li class="">Enable <strong>Use environment Anthropic API key</strong> to automatically use your key from the <code>.env</code> file.
Alternatively, paste an Anthropic API key into the field.</li>
<li class="">Under <strong>Advanced settings</strong>, select your <strong>Language Model</strong>.</li>
<li class="">Click <strong>Complete</strong>.</li>
<li class="">In the second onboarding panel, select a provider for embeddings and select your <strong>Embedding Model</strong>.</li>
<li class="">To complete the onboarding tasks, click <strong>What is OpenRAG</strong>, and then click <strong>Add a Document</strong>.
Alternatively, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> <strong>Skip overview</strong>.</li>
<li class="">Continue with the <a class="" href="/quickstart">Quickstart</a>.</li>
</ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ol>
<li class="">Enable <strong>Get API key from environment variable</strong> to automatically enter your key from the TUI-generated <code>.env</code> file.
Alternatively, paste an OpenAI API key into the field.</li>
<li class="">Under <strong>Advanced settings</strong>, select your <strong>Language Model</strong>.</li>
<li class="">Click <strong>Complete</strong>.</li>
<li class="">In the second onboarding panel, select a provider for embeddings and select your <strong>Embedding Model</strong>.</li>
<li class="">To complete the onboarding tasks, click <strong>What is OpenRAG</strong>, and then click <strong>Add a Document</strong>.
Alternatively, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> <strong>Skip overview</strong>.</li>
<li class="">Continue with the <a class="" href="/quickstart">Quickstart</a>.</li>
</ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ol>
<li class="">Complete the fields for <strong>watsonx.ai API Endpoint</strong>, <strong>IBM Project ID</strong>, and <strong>IBM API key</strong>.
These values are found in your IBM watsonx deployment.</li>
<li class="">Under <strong>Advanced settings</strong>, select your <strong>Language Model</strong>.</li>
<li class="">Click <strong>Complete</strong>.</li>
<li class="">In the second onboarding panel, select a provider for embeddings and select your <strong>Embedding Model</strong>.</li>
<li class="">To complete the onboarding tasks, click <strong>What is OpenRAG</strong>, and then click <strong>Add a Document</strong>.
Alternatively, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg> <strong>Skip overview</strong>.</li>
<li class="">Continue with the <a class="" href="/quickstart">Quickstart</a>.</li>
</ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Ollama isn&#x27;t installed with OpenRAG. To install Ollama, see the <a href="https://docs.ollama.com/" target="_blank" rel="noopener noreferrer" class="">Ollama documentation</a>.</p></div></div><ol>
<li class="">To connect to an Ollama server running on your local machine, enter your Ollama server&#x27;s base URL address.
The default Ollama server address is <code>http://localhost:11434</code>.
OpenRAG connects to the Ollama server and populates the model lists with the server&#x27;s available models.</li>
<li class="">Select the <strong>Embedding Model</strong> and <strong>Language Model</strong> your Ollama server is running.<!-- -->
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Ollama model selection and external server configuration</summary><div><div class="collapsibleContent_i85q"><p>Using Ollama for your OpenRAG language model provider offers greater flexibility and configuration, but can also be overwhelming to start.
These recommendations are a reasonable starting point for users with at least one GPU and experience running LLMs locally.</p>
<p>For best performance, OpenRAG recommends OpenAI&#x27;s <code>gpt-oss:20b</code> language model. However, this model uses 16GB of RAM, so consider using Ollama Cloud or running Ollama on a remote machine.</p>
<p>For generating embeddings, OpenRAG recommends the <a href="https://ollama.com/library/nomic-embed-text" target="_blank" rel="noopener noreferrer" class=""><code>nomic-embed-text</code></a> embedding model, which provides high-quality embeddings optimized for retrieval tasks.</p>
<p>To run models in <a href="https://docs.ollama.com/cloud" target="_blank" rel="noopener noreferrer" class=""><strong>Ollama Cloud</strong></a>, follow these steps:</p>
<ol>
<li class="">Sign in to Ollama Cloud.
In a terminal, enter <code>ollama signin</code> to connect your local environment with Ollama Cloud.</li>
<li class="">To run the model, in Ollama, select the <code>gpt-oss:20b-cloud</code> model, or run <code>ollama run gpt-oss:20b-cloud</code> in a terminal.
Ollama Cloud models are run at the same URL as your local Ollama server at <code>http://localhost:11434</code>, and automatically offloaded to Ollama&#x27;s cloud service.</li>
<li class="">Connect OpenRAG to the same local Ollama server as you would for local models in onboarding, using the default address of <code>http://localhost:11434</code>.</li>
<li class="">In the <strong>Language model</strong> field, select the <code>gpt-oss:20b-cloud</code> model.</li>
</ol>
<br>
<p>To run models on a <strong>remote Ollama server</strong>, follow these steps:</p>
<ol>
<li class="">Ensure your remote Ollama server is accessible from your OpenRAG instance.</li>
<li class="">In the <strong>Ollama Base URL</strong> field, enter your remote Ollama server&#x27;s base URL, such as <code>http://your-remote-server:11434</code>.
OpenRAG connects to the remote Ollama server and populates the lists with the server&#x27;s available models.</li>
<li class="">Select your <strong>Embedding model</strong> and <strong>Language model</strong> from the available options.</li>
</ol></div></div></details>
</li>
<li class="">Click <strong>Complete</strong>.</li>
<li class="">To complete the onboarding tasks, click <strong>What is OpenRAG</strong>, and then click <strong>Add a Document</strong>.</li>
<li class="">Continue with the <a class="" href="/quickstart">Quickstart</a>.</li>
</ol></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="container-management-commands">Container management commands<a href="#container-management-commands" class="hash-link" aria-label="Direct link to Container management commands" title="Direct link to Container management commands" translate="no"></a></h2>
<p>Manage your OpenRAG containers with the following commands.
These commands are also available in the TUI&#x27;s <a class="" href="/install#status">Status menu</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade-containers">Upgrade containers<a href="#upgrade-containers" class="hash-link" aria-label="Direct link to Upgrade containers" title="Direct link to Upgrade containers" translate="no"></a></h3>
<p>Upgrade your containers to the latest version while preserving your data.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose pull</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">docker compose up -d --force-recreate</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="reset-containers">Reset containers (destructive)<a href="#reset-containers" class="hash-link" aria-label="Direct link to Reset containers (destructive)" title="Direct link to Reset containers (destructive)" translate="no"></a></h3>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_BuS1"><p>These are destructive operations that reset your OpenRAG deployment to an initial state.
Be aware that data is lost and cannot be recovered after running these commands.</p></div></div>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Docker Compose</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Podman Compose</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Docker</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Podman</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><ul>
<li class="">
<p>Rebuild containers: This command destroys and recreates the containers. Data stored exclusively on the containers is lost, such as Langflow flows.
The <code>.env</code> file, <code>config</code> directory, <code>./openrag-documents</code> directory, <code>./opensearch-data</code> directory, and the <code>conversations.json</code> file are preserved.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose up --build --force-recreate --remove-orphans</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Destroy and recreate containers with the option for additional data removal: These commands destroy the containers, and then recreate them.
This allows you to delete other OpenRAG data before recreating the containers.</p>
<ol>
<li class="">
<p>Destroy the containers, volumes, and local images, and then remove (prune) any additional Docker objects:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose down --volumes --remove-orphans --rmi local</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">docker system prune -f</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Optional: Remove data that wasn&#x27;t deleted by the previous commands:</p>
<ul>
<li class="">OpenRAG&#x27;s <code>.env</code> file</li>
<li class="">The contents of OpenRAG&#x27;s <code>config</code> directory</li>
<li class="">The contents of the <code>./openrag-documents</code> directory</li>
<li class="">The contents of the <code>./opensearch-data</code> directory</li>
<li class="">The <code>conversations.json</code> file</li>
</ul>
</li>
<li class="">
<p>Recreate the containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker compose up -d</span><br></span></code></pre></div></div>
</li>
</ol>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ul>
<li class="">
<p>Rebuild containers: This command destroys and recreates the containers. Data stored exclusively on the containers is lost, such as Langflow flows.
The <code>.env</code> file, <code>config</code> directory, <code>./openrag-documents</code> directory, <code>./opensearch-data</code> directory, and the <code>conversations.json</code> file are preserved.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman-compose up --build --force-recreate --remove-orphans</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Destroy and recreate containers with the option for additional data removal: These commands destroy the containers, and then recreate them.
This allows you to delete other OpenRAG data before recreating the containers.</p>
<ol>
<li class="">
<p>Destroy the containers, volumes, and local images, and then remove (prune) any additional Podman objects:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman-compose down --volumes --remove-orphans --rmi local</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">podman system prune -f</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Optional: Remove data that wasn&#x27;t deleted by the previous commands:</p>
<ul>
<li class="">OpenRAG&#x27;s <code>.env</code> file</li>
<li class="">The contents of OpenRAG&#x27;s <code>config</code> directory</li>
<li class="">The contents of the <code>./openrag-documents</code> directory</li>
<li class="">The contents of the <code>./opensearch-data</code> directory</li>
<li class="">The <code>conversations.json</code> file</li>
</ul>
</li>
<li class="">
<p>Recreate the containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman-compose up -d</span><br></span></code></pre></div></div>
</li>
</ol>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ol>
<li class="">
<p>Stop all running containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker stop $(docker ps -q)</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all containers, including stopped containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker rm --force $(docker ps -aq)</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all images:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker rmi --force $(docker images -q)</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all volumes:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker volume prune --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all networks except the default network:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker network prune --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Clean up any leftover data:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker system prune --all --force --volumes</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Optional: Remove data that wasn&#x27;t deleted by the previous commands:</p>
<ul>
<li class="">OpenRAG&#x27;s <code>.env</code> file</li>
<li class="">The contents of OpenRAG&#x27;s <code>config</code> directory</li>
<li class="">The contents of the <code>./openrag-documents</code> directory</li>
<li class="">The contents of the <code>./opensearch-data</code> directory</li>
<li class="">The <code>conversations.json</code> file</li>
</ul>
</li>
</ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ol>
<li class="">
<p>Stop all running containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman stop --all</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all containers, including stopped containers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman rm --all --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all images:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman rmi --all --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all volumes:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman volume prune --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Remove all networks except the default network:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman network prune --force</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Clean up any leftover data:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">podman system prune --all --force --volumes</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Optional: Remove data that wasn&#x27;t deleted by the previous commands:</p>
<ul>
<li class="">OpenRAG&#x27;s <code>.env</code> file</li>
<li class="">The contents of OpenRAG&#x27;s <code>config</code> directory</li>
<li class="">The contents of the <code>./openrag-documents</code> directory</li>
<li class="">The contents of the <code>./opensearch-data</code> directory</li>
<li class="">The <code>conversations.json</code> file</li>
</ul>
</li>
</ol></div></div></div>
<p>After resetting your containers, you must repeat <a href="#application-onboarding" class="">application onboarding</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/openrag/openrag/tree/main/docs/docs/get-started/docker.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/install"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Install OpenRAG with TUI</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/agents"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Flows</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#install-openrag-with-docker-compose" class="table-of-contents__link toc-highlight">Install OpenRAG with Docker Compose</a></li><li><a href="#application-onboarding" class="table-of-contents__link toc-highlight">Application onboarding</a></li><li><a href="#container-management-commands" class="table-of-contents__link toc-highlight">Container management commands</a><ul><li><a href="#upgrade-containers" class="table-of-contents__link toc-highlight">Upgrade containers</a></li><li><a href="#reset-containers" class="table-of-contents__link toc-highlight">Reset containers (destructive)</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
<span>© 2025 OpenRAG</span>
</div></li></ul></div></div></div></footer></div>
</body>
</html>