1 line
No EOL
50 KiB
JavaScript
1 line
No EOL
50 KiB
JavaScript
"use strict";(globalThis.webpackChunkopenrag_docs=globalThis.webpackChunkopenrag_docs||[]).push([[5750],{3656:(e,n,s)=>{s.d(n,{Ay:()=>p,RM:()=>d});var r=s(4848),i=s(8453),t=s(7733),o=s(1470),l=s(9365);function a(e){const n={a:"a",code:"code",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Using Ollama for your OpenRAG language model provider offers greater flexibility and configuration, but can also be overwhelming to start.\nThese recommendations are a reasonable starting point for users with at least one GPU and experience running LLMs locally."}),"\n",(0,r.jsxs)(n.p,{children:["For best performance, OpenRAG recommends OpenAI's ",(0,r.jsx)(n.code,{children:"gpt-oss:20b"})," language model. However, this model uses 16GB of RAM, so consider using Ollama Cloud or running Ollama on a remote machine."]}),"\n",(0,r.jsxs)(n.p,{children:["For generating embeddings, OpenRAG recommends the ",(0,r.jsx)(n.a,{href:"https://ollama.com/library/nomic-embed-text",children:(0,r.jsx)(n.code,{children:"nomic-embed-text"})})," embedding model, which provides high-quality embeddings optimized for retrieval tasks."]}),"\n",(0,r.jsxs)(n.p,{children:["To run models in ",(0,r.jsx)(n.a,{href:"https://docs.ollama.com/cloud",children:(0,r.jsx)(n.strong,{children:"Ollama Cloud"})}),", follow these steps:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Sign in to Ollama Cloud.\nIn a terminal, enter ",(0,r.jsx)(n.code,{children:"ollama signin"})," to connect your local environment with Ollama Cloud."]}),"\n",(0,r.jsxs)(n.li,{children:["To run the model, in Ollama, select the ",(0,r.jsx)(n.code,{children:"gpt-oss:20b-cloud"})," model, or run ",(0,r.jsx)(n.code,{children:"ollama run gpt-oss:20b-cloud"})," in a terminal.\nOllama Cloud models are run at the same URL as your local Ollama server at ",(0,r.jsx)(n.code,{children:"http://localhost:11434"}),", and automatically offloaded to Ollama's cloud service."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect OpenRAG to the same local Ollama server as you would for local models in onboarding, using the default address of ",(0,r.jsx)(n.code,{children:"http://localhost:11434"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Language model"})," field, select the ",(0,r.jsx)(n.code,{children:"gpt-oss:20b-cloud"})," model."]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsxs)(n.p,{children:["To run models on a ",(0,r.jsx)(n.strong,{children:"remote Ollama server"}),", follow these steps:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Ensure your remote Ollama server is accessible from your OpenRAG instance."}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Ollama Base URL"})," field, enter your remote Ollama server's base URL, such as ",(0,r.jsx)(n.code,{children:"http://your-remote-server:11434"}),".\nOpenRAG connects to the remote Ollama server and populates the lists with the server's available models."]}),"\n",(0,r.jsxs)(n.li,{children:["Select your ",(0,r.jsx)(n.strong,{children:"Embedding model"})," and ",(0,r.jsx)(n.strong,{children:"Language model"})," from the available options."]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}const d=[{value:"Application onboarding",id:"application-onboarding",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"application-onboarding",children:"Application onboarding"}),"\n",(0,r.jsx)(n.p,{children:"The first time you start OpenRAG, regardless of how you installed it, you must complete application onboarding."}),"\n",(0,r.jsxs)(n.p,{children:["Some of these variables, such as the embedding models, can be changed seamlessly after onboarding.\nOthers are immutable and require you to destroy and recreate the OpenRAG containers.\nFor more information, see ",(0,r.jsx)(n.a,{href:"/reference/configuration",children:"Environment variables"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"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.\nAdditionally, you can set multiple embedding models."}),"\n",(0,r.jsx)(n.p,{children:"You only need to complete onboarding for your preferred providers."}),"\n",(0,r.jsxs)(o.A,{groupId:"Provider",children:[(0,r.jsxs)(l.A,{value:"Anthropic",label:"Anthropic",default:!0,children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsx)(n.p,{children:"Anthropic doesn't provide embedding models. If you select Anthropic for your language model, you must select a different provider for embeddings."})}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Enable ",(0,r.jsx)(n.strong,{children:"Use environment Anthropic API key"})," to automatically use your key from the ",(0,r.jsx)(n.code,{children:".env"})," file.\nAlternatively, paste an Anthropic API key into the field."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,r.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the second onboarding panel, select a provider for embeddings and select your ",(0,r.jsx)(n.strong,{children:"Embedding Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,r.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,r.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Continue with the ",(0,r.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})]}),(0,r.jsx)(l.A,{value:"OpenAI",label:"OpenAI",children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Enable ",(0,r.jsx)(n.strong,{children:"Get API key from environment variable"})," to automatically enter your key from the TUI-generated ",(0,r.jsx)(n.code,{children:".env"})," file.\nAlternatively, paste an OpenAI API key into the field."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,r.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the second onboarding panel, select a provider for embeddings and select your ",(0,r.jsx)(n.strong,{children:"Embedding Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,r.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,r.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Continue with the ",(0,r.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,r.jsx)(l.A,{value:"IBM watsonx.ai",label:"IBM watsonx.ai",children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Complete the fields for ",(0,r.jsx)(n.strong,{children:"watsonx.ai API Endpoint"}),", ",(0,r.jsx)(n.strong,{children:"IBM Project ID"}),", and ",(0,r.jsx)(n.strong,{children:"IBM API key"}),".\nThese values are found in your IBM watsonx deployment."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,r.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the second onboarding panel, select a provider for embeddings and select your ",(0,r.jsx)(n.strong,{children:"Embedding Model"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,r.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,r.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Continue with the ",(0,r.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,r.jsxs)(l.A,{value:"Ollama",label:"Ollama",children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["Ollama isn't installed with OpenRAG. To install Ollama, see the ",(0,r.jsx)(n.a,{href:"https://docs.ollama.com/",children:"Ollama documentation"}),"."]})}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["To connect to an Ollama server running on your local machine, enter your Ollama server's base URL address.\nThe default Ollama server address is ",(0,r.jsx)(n.code,{children:"http://localhost:11434"}),".\nOpenRAG connects to the Ollama server and populates the model lists with the server's available models."]}),"\n",(0,r.jsxs)(n.li,{children:["Select the ",(0,r.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,r.jsx)(n.strong,{children:"Language Model"})," your Ollama server is running.","\n",(0,r.jsxs)(s,{closed:!0,children:[(0,r.jsx)("summary",{children:"Ollama model selection and external server configuration"}),(0,r.jsx)(c,{})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,r.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add a Document"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Continue with the ",(0,r.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})]})]})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},3862:(e,n,s)=>{s.d(n,{Ay:()=>l,RM:()=>t});var r=s(4848),i=s(8453);const t=[];function o(e){const n={a:"a",admonition:"admonition",code:"code",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/install",children:"Install WSL"})," with the Ubuntu distribution using WSL 2:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:"wsl --install -d Ubuntu\n"})}),"\n",(0,r.jsxs)(n.p,{children:["For new installations, the ",(0,r.jsx)(n.code,{children:"wsl --install"})," command uses WSL 2 and Ubuntu by default."]}),"\n",(0,r.jsxs)(n.p,{children:["For existing WSL installations, you can ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/install#change-the-default-linux-distribution-installed",children:"change the distribution"})," and ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2",children:"check the WSL version"}),"."]}),"\n",(0,r.jsx)(n.admonition,{title:"Known limitation",type:"warning",children:(0,r.jsx)(n.p,{children:"OpenRAG isn't compatible with nested virtualization, which can cause networking issues.\nDon't install OpenRAG on a WSL distribution that is installed inside a Windows VM.\nInstead, install OpenRAG on your base OS or a non-nested Linux VM."})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/install#ways-to-run-multiple-linux-distributions-with-wsl",children:"Start your WSL Ubuntu distribution"})," if it doesn't start automatically."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/setup/environment#set-up-your-linux-username-and-password",children:"Set up a username and password for your WSL distribution"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers",children:"Install Docker Desktop for Windows with WSL 2"}),". When you reach the Docker Desktop ",(0,r.jsx)(n.strong,{children:"WSL integration"})," settings, make sure your Ubuntu distribution is enabled, and then click ",(0,r.jsx)(n.strong,{children:"Apply & Restart"})," to enable Docker support in WSL."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Install and run OpenRAG from within your WSL Ubuntu distribution."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsxs)(n.p,{children:["If you encounter issues with port forwarding or the Windows Firewall, you might need to adjust the ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall",children:"Hyper-V firewall settings"})," to allow communication between your WSL distribution and the Windows host. For more troubleshooting advice for networking issues, see ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/troubleshooting#common-issues",children:"Troubleshooting WSL common issues"}),"."]})]})}function l(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},4398:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>p,contentTitle:()=>h,default:()=>j,frontMatter:()=>d,metadata:()=>r,toc:()=>u});const r=JSON.parse('{"id":"get-started/install","title":"Install OpenRAG with TUI","description":"Install OpenRAG and then run the OpenRAG Terminal User Interface(TUI) to start your OpenRAG deployment with a guided setup process.","source":"@site/docs/get-started/install.mdx","sourceDirName":"get-started","slug":"/install","permalink":"/install","draft":false,"unlisted":false,"editUrl":"https://github.com/openrag/openrag/tree/main/docs/docs/get-started/install.mdx","tags":[],"version":"current","frontMatter":{"title":"Install OpenRAG with TUI","slug":"/install"},"sidebar":"tutorialSidebar","previous":{"title":"Quickstart","permalink":"/quickstart"},"next":{"title":"Install OpenRAG containers","permalink":"/docker"}}');var i=s(4848),t=s(8453),o=s(1470),l=s(9365),a=s(3656),c=s(3862);const d={title:"Install OpenRAG with TUI",slug:"/install"},h=void 0,p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},...c.RM,{value:"Install OpenRAG",id:"install",level:2},{value:"Set up OpenRAG with the TUI",id:"setup",level:2},...a.RM,{value:"Exit the OpenRAG TUI",id:"exit-the-openrag-tui",level:2},{value:"Manage OpenRAG containers with the TUI",id:"tui-container-management",level:2},{value:"Diagnostics",id:"diagnostics",level:3},{value:"Status",id:"status",level:3},{value:"Reset containers",id:"reset-containers",level:3},{value:"Start all services",id:"start-all-services",level:3},{value:"Upgrade OpenRAG",id:"upgrade",level:2},{value:"Reinstall OpenRAG",id:"reinstall",level:2}];function x(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"#install",children:"Install OpenRAG"})," and then run the ",(0,i.jsx)(n.a,{href:"#setup",children:"OpenRAG Terminal User Interface(TUI)"})," to start your OpenRAG deployment with a guided setup process."]}),"\n",(0,i.jsx)(n.p,{children:"The OpenRAG Terminal User Interface (TUI) allows you to set up, configure, and monitor your OpenRAG deployment directly from the terminal."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"OpenRAG TUI Interface",src:s(5689).A+"",width:"1995",height:"1099"})}),"\n",(0,i.jsxs)(n.p,{children:["Instead of starting OpenRAG using Docker commands and manually editing values in the ",(0,i.jsx)(n.code,{children:".env"})," file, the TUI walks you through the setup. It prompts for variables where required, creates a ",(0,i.jsx)(n.code,{children:".env"})," file for you, and then starts OpenRAG."]}),"\n",(0,i.jsx)(n.p,{children:"Once OpenRAG is running, use the TUI to monitor your application, control your containers, and retrieve logs."}),"\n",(0,i.jsxs)(n.p,{children:["If you prefer running Podman or Docker containers and manually editing ",(0,i.jsx)(n.code,{children:".env"})," files, see ",(0,i.jsx)(n.a,{href:"/docker",children:"Install OpenRAG Containers"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["All OpenRAG installations require ",(0,i.jsx)(n.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python"})," version 3.13 or later."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"If you aren't using the automatic installer script, install the following:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://podman.io/docs/installation",children:"Podman"})," (recommended) or ",(0,i.jsx)(n.a,{href:"https://docs.docker.com/get-docker/",children:"Docker"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://docs.podman.io/en/latest/markdown/podman-compose.1.html",children:(0,i.jsx)(n.code,{children:"podman-compose"})})," or ",(0,i.jsx)(n.a,{href:"https://docs.docker.com/compose/install/",children:"Docker Compose"}),". To use Docker Compose with Podman, you must alias Docker Compose commands to Podman commands."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Microsoft Windows only: To run OpenRAG on Windows, you must use the Windows Subsystem for Linux (WSL)."}),"\n",(0,i.jsxs)(r,{children:[(0,i.jsx)("summary",{children:"Install WSL for OpenRAG"}),(0,i.jsx)(c.Ay,{})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Prepare model providers and credentials."}),"\n",(0,i.jsxs)(n.p,{children:["During ",(0,i.jsx)(n.a,{href:"#application-onboarding",children:"application onboarding"}),", you must select language model and embedding model providers.\nIf your chosen provider offers both types, you can use the same provider for both selections.\nIf your provider offers only one type, such as Anthropic, you must select two providers."]}),"\n",(0,i.jsx)(n.p,{children:"Gather the credentials and connection details for your chosen model providers before starting onboarding:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["OpenAI: Create an ",(0,i.jsx)(n.a,{href:"https://platform.openai.com/api-keys",children:"OpenAI API key"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Anthropic language models: Create an ",(0,i.jsx)(n.a,{href:"https://www.anthropic.com/docs/api/reference",children:"Anthropic API key"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"IBM watsonx.ai: Get your watsonx.ai API endpoint, IBM project ID, and IBM API key from your watsonx deployment."}),"\n",(0,i.jsxs)(n.li,{children:["Ollama: Use the ",(0,i.jsx)(n.a,{href:"https://docs.ollama.com/",children:"Ollama documentation"})," to set up your Ollama instance locally, in the cloud, or on a remote server, and then get your Ollama server's base URL."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Optional: Install GPU support with an NVIDIA GPU, ",(0,i.jsx)(n.a,{href:"https://docs.nvidia.com/cuda/",children:"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."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"install",children:"Install OpenRAG"}),"\n",(0,i.jsx)(n.p,{children:"Choose an installation method based on your needs:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"For new users, the automatic installer script detects and installs prerequisites and then runs OpenRAG."}),"\n",(0,i.jsxs)(n.li,{children:["For a quick test, use ",(0,i.jsx)(n.code,{children:"uvx"})," to run OpenRAG without creating a project or modifying files."]}),"\n",(0,i.jsxs)(n.li,{children:["Use ",(0,i.jsx)(n.code,{children:"uv add"})," to install OpenRAG as a managed dependency in a new or existing Python project."]}),"\n",(0,i.jsxs)(n.li,{children:["Use ",(0,i.jsx)(n.code,{children:"uv pip install"})," to install OpenRAG into an existing virtual environment."]}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"Installation method",children:[(0,i.jsxs)(l.A,{value:"installer",label:"Automatic installer",default:!0,children:[(0,i.jsxs)(n.p,{children:["The script detects and installs uv, Docker/Podman, and Docker Compose prerequisites, then runs OpenRAG with ",(0,i.jsx)(n.code,{children:"uvx"}),"."]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Create a directory to store the OpenRAG configuration files:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir openrag-workspace\ncd openrag-workspace\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run the installer:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"curl -fsSL https://docs.openr.ag/files/run_openrag_with_prereqs.sh | bash\n"})}),"\n"]}),"\n"]}),(0,i.jsxs)(n.p,{children:["The TUI creates a ",(0,i.jsx)(n.code,{children:".env"})," file and docker-compose files in the current working directory."]})]}),(0,i.jsxs)(l.A,{value:"uvx",label:"Quick test with uvx",children:[(0,i.jsxs)(n.p,{children:["Use ",(0,i.jsx)(n.code,{children:"uvx"})," to quickly run OpenRAG without creating a project or modifying any files."]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Create a directory to store the OpenRAG configuration files:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir openrag-workspace\ncd openrag-workspace\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uvx openrag\n"})}),"\n",(0,i.jsx)(n.p,{children:"To run a specific version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uvx --from openrag==0.1.30 openrag\n"})}),"\n"]}),"\n"]}),(0,i.jsxs)(n.p,{children:["The TUI creates a ",(0,i.jsx)(n.code,{children:".env"})," file and docker-compose files in the current working directory."]})]}),(0,i.jsxs)(l.A,{value:"uv-add",label:"Python project with uv add",children:[(0,i.jsxs)(n.p,{children:["Use ",(0,i.jsx)(n.code,{children:"uv add"})," to install OpenRAG as a dependency in your Python project. This adds OpenRAG to your ",(0,i.jsx)(n.code,{children:"pyproject.toml"})," and lockfile, making your installation reproducible and version-controlled."]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Create a new project with a virtual environment:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv init YOUR_PROJECT_NAME\ncd YOUR_PROJECT_NAME\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"(venv)"})," prompt doesn't change, but ",(0,i.jsx)(n.code,{children:"uv"})," commands will automatically use the project's virtual environment."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add OpenRAG to your project:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv add openrag\n"})}),"\n",(0,i.jsx)(n.p,{children:"To add a specific version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv add openrag==0.1.30\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start the OpenRAG TUI:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]}),(0,i.jsxs)(r,{closed:!0,children:[(0,i.jsx)("summary",{children:"Install a local wheel"}),(0,i.jsx)(n.p,{children:"If you downloaded the OpenRAG wheel to your local machine, install it by specifying its path:"}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add the wheel to your project:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv add PATH/TO/openrag-VERSION-py3-none-any.whl\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Replace ",(0,i.jsx)(n.code,{children:"PATH/TO/"})," and ",(0,i.jsx)(n.code,{children:"VERSION"})," with the path and version of your downloaded OpenRAG ",(0,i.jsx)(n.code,{children:".whl"})," file."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]})]})]}),(0,i.jsxs)(l.A,{value:"uv-pip",label:"Existing virtual environment with uv pip install",children:[(0,i.jsxs)(n.p,{children:["Use ",(0,i.jsx)(n.code,{children:"uv pip install"})," to install OpenRAG into an existing virtual environment that isn't managed by ",(0,i.jsx)(n.code,{children:"uv"}),"."]}),(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["For new projects, ",(0,i.jsx)(n.code,{children:"uv add"})," is recommended as it manages dependencies in your project's lockfile."]})}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Activate your virtual environment."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Install OpenRAG:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv pip install openrag\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["Continue with ",(0,i.jsx)(n.a,{href:"#setup",children:"Set up OpenRAG with the TUI"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["If you encounter errors during installation, see ",(0,i.jsx)(n.a,{href:"/support/troubleshoot",children:"Troubleshoot OpenRAG"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"setup",children:"Set up OpenRAG with the TUI"}),"\n",(0,i.jsxs)(n.p,{children:["The OpenRAG setup process creates a ",(0,i.jsx)(n.code,{children:".env"})," file at the root of your OpenRAG directory, and then starts OpenRAG.\nIf it detects a ",(0,i.jsx)(n.code,{children:".env"})," file in the OpenRAG root directory, it sources any variables from the ",(0,i.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,i.jsxs)(n.p,{children:["The TUI offers two setup methods to populate the required values. ",(0,i.jsx)(n.strong,{children:"Basic Setup"})," can generate all minimum required values for OpenRAG. However, ",(0,i.jsx)(n.strong,{children:"Basic Setup"})," doesn't enable ",(0,i.jsx)(n.a,{href:"/knowledge#auth",children:"OAuth connectors for cloud storage"}),". If you want to use OAuth connectors to upload documents from cloud storage, select ",(0,i.jsx)(n.strong,{children:"Advanced Setup"}),".\nIf OpenRAG detects OAuth credentials, it recommends ",(0,i.jsx)(n.strong,{children:"Advanced Setup"}),"."]}),"\n",(0,i.jsxs)(o.A,{groupId:"Setup method",children:[(0,i.jsx)(l.A,{value:"Basic setup",label:"Basic setup",default:!0,children:(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To install OpenRAG with ",(0,i.jsx)(n.strong,{children:"Basic Setup"}),", click ",(0,i.jsx)(n.strong,{children:"Basic Setup"})," or press ",(0,i.jsx)("kbd",{children:"1"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n",(0,i.jsxs)(n.p,{children:["The OpenSearch password is required. The Langflow admin password is optional.\nIf no Langflow admin password is generated, Langflow runs in ",(0,i.jsx)(n.a,{href:"https://docs.langflow.org/api-keys-and-authentication#langflow-auto-login",children:"autologin mode"})," with no password required."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Optional: Paste your OpenAI API key in the OpenAI API key field. You can also provide this during onboarding or choose a different model provider."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.strong,{children:"Save Configuration"}),".\nYour passwords are saved in the ",(0,i.jsx)(n.code,{children:".env"})," file used to start OpenRAG."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To start OpenRAG, click ",(0,i.jsx)(n.strong,{children:"Start All Services"}),".\nStartup pulls container images and runs them, so it can take some time.\nWhen startup is complete, the TUI displays the following:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To start the Docling service, under ",(0,i.jsx)(n.strong,{children:"Native Services"}),", click ",(0,i.jsx)(n.strong,{children:"Start"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To open the OpenRAG application, navigate to the TUI main menu, and then click ",(0,i.jsx)(n.strong,{children:"Open App"}),".\nAlternatively, in your browser, navigate to ",(0,i.jsx)(n.code,{children:"localhost:3000"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Continue with ",(0,i.jsx)(n.a,{href:"#application-onboarding",children:"application onboarding"}),"."]}),"\n"]}),"\n"]})}),(0,i.jsx)(l.A,{value:"Advanced setup",label:"Advanced setup",children:(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To install OpenRAG with ",(0,i.jsx)(n.strong,{children:"Advanced Setup"}),", click ",(0,i.jsx)(n.strong,{children:"Advanced Setup"})," or press ",(0,i.jsx)("kbd",{children:"2"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n",(0,i.jsxs)(n.p,{children:["The OpenSearch password is required. The Langflow admin password is optional.\nIf no Langflow admin password is generated, Langflow runs in ",(0,i.jsx)(n.a,{href:"https://docs.langflow.org/api-keys-and-authentication#langflow-auto-login",children:"autologin mode"})," with no password required."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Paste your OpenAI API key in the OpenAI API key field."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["If you want to upload documents from external storage, such as Google Drive, add the required OAuth credentials for the connectors that you want to use. These settings can be populated automatically if OpenRAG detects these credentials in a ",(0,i.jsx)(n.code,{children:".env"})," file in the OpenRAG installation directory."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Amazon"}),": Provide your AWS Access Key ID and AWS Secret Access Key with access to your S3 instance. For more information, see the AWS documentation on ",(0,i.jsx)(n.a,{href:"https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-applications.html",children:"Configuring access to AWS applications"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Google"}),": Provide your Google OAuth Client ID and Google OAuth Client Secret. You can generate these in the ",(0,i.jsx)(n.a,{href:"https://console.cloud.google.com/apis/credentials",children:"Google Cloud Console"}),". For more information, see the ",(0,i.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2",children:"Google OAuth client documentation"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Microsoft"}),": For the Microsoft OAuth Client ID and Microsoft OAuth Client Secret, provide ",(0,i.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/app-registration?view=odsp-graph-online",children:"Azure application registration credentials for SharePoint and OneDrive"}),". For more information, see the ",(0,i.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/graph-oauth",children:"Microsoft Graph OAuth client documentation"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["You can ",(0,i.jsx)(n.a,{href:"/ingestion#oauth-ingestion",children:"manage OAuth credentials"})," later, but it is recommended to configure them during initial set up."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"The OpenRAG TUI presents redirect URIs for your OAuth app.\nThese are the URLs your OAuth provider will redirect back to after user sign-in.\nRegister these redirect values with your OAuth provider as they are presented in the TUI."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To start OpenRAG, click ",(0,i.jsx)(n.strong,{children:"Start All Services"}),".\nStartup pulls container images and runs them, so it can take some time.\nWhen startup is complete, the TUI displays the following:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To start the Docling service, under ",(0,i.jsx)(n.strong,{children:"Native Services"}),", click ",(0,i.jsx)(n.strong,{children:"Start"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To open the OpenRAG application, navigate to the TUI main menu, and then click ",(0,i.jsx)(n.strong,{children:"Open App"}),".\nAlternatively, in your browser, navigate to ",(0,i.jsx)(n.code,{children:"localhost:3000"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"If you enabled OAuth connectors, you must sign in to your OAuth provider before being redirected to your OpenRAG instance."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Two additional variables are available for ",(0,i.jsx)(n.strong,{children:"Advanced Setup"})," at this point.\nOnly change these variables if you have a non-default network configuration for your deployment, such as using a reverse proxy or custom domain."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"LANGFLOW_PUBLIC_URL"}),": Sets the base address to access the Langflow web interface. This is where users interact with flows in a browser."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"WEBHOOK_BASE_URL"}),": Sets the base address of the OpenRAG OAuth connector endpoint.\nSupported webhook endpoints:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Amazon S3: Not applicable."}),"\n",(0,i.jsxs)(n.li,{children:["Google Drive: ",(0,i.jsx)(n.code,{children:"/connectors/google_drive/webhook"})]}),"\n",(0,i.jsxs)(n.li,{children:["OneDrive: ",(0,i.jsx)(n.code,{children:"/connectors/onedrive/webhook"})]}),"\n",(0,i.jsxs)(n.li,{children:["SharePoint: ",(0,i.jsx)(n.code,{children:"/connectors/sharepoint/webhook"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Continue with ",(0,i.jsx)(n.a,{href:"#application-onboarding",children:"application onboarding"}),"."]}),"\n"]}),"\n"]})})]}),"\n",(0,i.jsx)(a.Ay,{}),"\n",(0,i.jsx)(n.h2,{id:"exit-the-openrag-tui",children:"Exit the OpenRAG TUI"}),"\n",(0,i.jsxs)(n.p,{children:["To exit the OpenRAG TUI, navigate to the main menu, and then press ",(0,i.jsx)("kbd",{children:"q"}),".\nThe OpenRAG containers continue to run until they are stopped.\nFor more information, see ",(0,i.jsx)(n.a,{href:"#tui-container-management",children:"Manage OpenRAG containers with the TUI "}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["To relaunch the TUI, run ",(0,i.jsx)(n.code,{children:"uv run openrag"}),".\nIf you installed OpenRAG with ",(0,i.jsx)(n.code,{children:"uvx"}),", run ",(0,i.jsx)(n.code,{children:"uvx openrag"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"tui-container-management",children:"Manage OpenRAG containers with the TUI"}),"\n",(0,i.jsx)(n.p,{children:"After installation, the TUI can deploy, manage, and upgrade your OpenRAG containers."}),"\n",(0,i.jsx)(n.h3,{id:"diagnostics",children:"Diagnostics"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Diagnostics"})," menu provides health monitoring for your container runtimes and monitoring of your OpenSearch security."]}),"\n",(0,i.jsx)(n.h3,{id:"status",children:"Status"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Status"})," menu displays information on your container deployment.\nHere you can check container health, find your service ports, view logs, and upgrade your containers."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Logs"}),": To view streaming logs, select the container you want to view, and press ",(0,i.jsx)("kbd",{children:"l"}),".\nTo copy the logs, click ",(0,i.jsx)(n.strong,{children:"Copy to Clipboard"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Upgrade"}),": Check for updates. For more information, see ",(0,i.jsx)(n.a,{href:"#upgrade",children:"upgrade OpenRAG"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Reset"}),": This is a destructive action that ",(0,i.jsx)(n.a,{href:"#reset-containers",children:"resets your containers"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Native services"}),": From the ",(0,i.jsx)(n.strong,{children:"Status"})," menu, you can view the status, port, and process ID (PID) of the OpenRAG native services.\nYou can also click ",(0,i.jsx)(n.strong,{children:"Stop"})," or ",(0,i.jsx)(n.strong,{children:"Restart"})," to stop and start OpenRAG native services."]}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.em,{children:"native service"})," in OpenRAG is a service that runs locally on your machine, not within a container. For example, the ",(0,i.jsx)(n.code,{children:"docling serve"})," process is an OpenRAG native service because this document processing service runs on your local machine, separate from the OpenRAG containers."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"reset-containers",children:"Reset containers"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"This is a destructive action that destroys and recreates all of your OpenRAG containers."})}),"\n",(0,i.jsxs)(n.p,{children:["To destroy and recreate your OpenRAG containers, go to the TUI ",(0,i.jsxs)(n.a,{href:"#status",children:[(0,i.jsx)(n.strong,{children:"Status"})," menu"]}),", and then click ",(0,i.jsx)(n.strong,{children:"Reset"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Reset"})," function runs two commands. First, it stops and removes all containers, volumes, and local images:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker compose down --volumes --remove-orphans --rmi local\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Then, it removes any additional Docker objects with ",(0,i.jsx)(n.code,{children:"docker system prune -f"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["If you reset your containers as part of reinstalling OpenRAG, continue the ",(0,i.jsx)(n.a,{href:"#reinstall",children:"reinstallation process"})," after resetting the containers."]}),"\n",(0,i.jsx)(n.h3,{id:"start-all-services",children:"Start all services"}),"\n",(0,i.jsxs)(n.p,{children:["On the TUI main page, click ",(0,i.jsx)(n.strong,{children:"Start All Services"})," to start the OpenRAG containers and launch OpenRAG itself."]}),"\n",(0,i.jsx)(n.p,{children:"When you start all services, the following processes happen:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["OpenRAG automatically detects your container runtime, and then checks if your machine has compatible GPU support by checking for ",(0,i.jsx)(n.code,{children:"CUDA"}),", ",(0,i.jsx)(n.code,{children:"NVIDIA_SMI"}),", and Docker/Podman runtime support. This check determines which Docker Compose file OpenRAG uses."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["OpenRAG pulls the OpenRAG container images with ",(0,i.jsx)(n.code,{children:"docker compose pull"})," if any images are missing."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["OpenRAG deploys the containers with ",(0,i.jsx)(n.code,{children:"docker compose up -d"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"upgrade",children:"Upgrade OpenRAG"}),"\n",(0,i.jsx)(n.p,{children:"To upgrade OpenRAG, upgrade the OpenRAG Python package, and then upgrade the OpenRAG containers."}),"\n",(0,i.jsxs)(n.p,{children:["This is a two part process because upgrading the OpenRAG Python package updates the TUI and Python code, but the container versions are controlled by environment variables in your ",(0,i.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Stop your OpenRAG containers: In the OpenRAG TUI, go to the ",(0,i.jsx)(n.strong,{children:"Status"})," menu, and then click ",(0,i.jsx)(n.strong,{children:"Stop Services"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Upgrade the OpenRAG Python package to the latest version from ",(0,i.jsx)(n.a,{href:"https://pypi.org/project/openrag/",children:"PyPI"}),"."]}),"\n",(0,i.jsxs)(o.A,{groupId:"Installation method",children:[(0,i.jsxs)(l.A,{value:"installer",label:"Automatic installer or uvx",default:!0,children:[(0,i.jsxs)(n.p,{children:["Use these steps to upgrade the Python package if you installed OpenRAG using the automatic installer or ",(0,i.jsx)(n.code,{children:"uvx"}),":"]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Navigate to your OpenRAG workspace directory:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd openrag-workspace\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Upgrade the OpenRAG package:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uvx --from openrag openrag\n"})}),"\n",(0,i.jsx)(n.p,{children:"To upgrade to a specific version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uvx --from openrag==0.1.33 openrag\n"})}),"\n"]}),"\n"]})]}),(0,i.jsxs)(l.A,{value:"uv-add",label:"Python project (uv add)",children:[(0,i.jsxs)(n.p,{children:["Use these steps to upgrade the Python package if you installed OpenRAG in a Python project with ",(0,i.jsx)(n.code,{children:"uv add"}),":"]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Navigate to your project directory:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd YOUR_PROJECT_NAME\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Update OpenRAG to the latest version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv add --upgrade openrag\n"})}),"\n",(0,i.jsx)(n.p,{children:"To upgrade to a specific version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv add --upgrade openrag==0.1.33\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start the OpenRAG TUI:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]})]}),(0,i.jsxs)(l.A,{value:"uv-pip",label:"Virtual environment (uv pip install)",children:[(0,i.jsxs)(n.p,{children:["Use these steps to upgrade the Python package if you installed OpenRAG in a venv with ",(0,i.jsx)(n.code,{children:"uv pip install"}),":"]}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Activate your virtual environment."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Upgrade OpenRAG:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv pip install --upgrade openrag\n"})}),"\n",(0,i.jsx)(n.p,{children:"To upgrade to a specific version:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv pip install --upgrade openrag==0.1.33\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start the OpenRAG TUI:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]})]})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Start the upgraded OpenRAG containers: In the OpenRAG TUI, click ",(0,i.jsx)(n.strong,{children:"Start All Services"}),", and then wait while the containers start."]}),"\n",(0,i.jsxs)(n.p,{children:["After upgrading the Python package, OpenRAG runs ",(0,i.jsx)(n.code,{children:"docker compose pull"})," to get the appropriate container images matching the version specified in your OpenRAG ",(0,i.jsx)(n.code,{children:".env"})," file. Then, it recreates the containers with the new images using ",(0,i.jsx)(n.code,{children:"docker compose up -d --force-recreate"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["In the ",(0,i.jsx)(n.code,{children:".env"})," file, the ",(0,i.jsx)(n.code,{children:"OPENRAG_VERSION"})," ",(0,i.jsx)(n.a,{href:"/reference/configuration#system-settings",children:"environment variable"})," is set to ",(0,i.jsx)(n.code,{children:"latest"})," by default, which it pulls the ",(0,i.jsx)(n.code,{children:"latest"})," available container images.\nTo pin a specific container image version, you can set ",(0,i.jsx)(n.code,{children:"OPENRAG_VERSION"})," to the desired container image version, such as ",(0,i.jsx)(n.code,{children:"OPENRAG_VERSION=0.1.33"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["However, when you upgrade the Python package, OpenRAG automatically attempts to keep the ",(0,i.jsx)(n.code,{children:"OPENRAG_VERSION"})," synchronized with the Python package version.\nYou might need to edit the ",(0,i.jsx)(n.code,{children:".env"})," file after upgrading the Python package to enforce a different container version.\nThe TUI warns you if it detects a version mismatch."]}),"\n",(0,i.jsxs)(n.p,{children:["If you get an error that ",(0,i.jsx)(n.code,{children:"langflow container already exists"})," error during upgrade, see ",(0,i.jsx)(n.a,{href:"/support/troubleshoot#langflow-container-already-exists-during-upgrade",children:"Langflow container already exists during upgrade"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["When the upgrade process is complete, you can close the ",(0,i.jsx)(n.strong,{children:"Status"})," window and continue using OpenRAG."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"reinstall",children:"Reinstall OpenRAG"}),"\n",(0,i.jsx)(n.p,{children:"To reinstall OpenRAG with a completely fresh setup:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["In the TUI ",(0,i.jsx)(n.strong,{children:"Status"})," menu, ",(0,i.jsx)(n.a,{href:"#reset-containers",children:"reset your containers"})," to destroy the existing OpenRAG containers and their data."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Optional: Delete your project's ",(0,i.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,i.jsxs)(n.p,{children:["The Reset operation doesn't remove your project's ",(0,i.jsx)(n.code,{children:".env"})," file, so your passwords, API keys, and OAuth settings can be preserved.\nIf you delete the ",(0,i.jsx)(n.code,{children:".env"})," file, you must run the ",(0,i.jsx)(n.a,{href:"#setup",children:"Set up OpenRAG with the TUI"})," process again to create a new configuration file."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Optional: Delete your OpenSearch knowledge base by deleting the contents of the ",(0,i.jsx)(n.code,{children:"./opensearch-data"})," folder in your OpenRAG installation directory."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["In the TUI ",(0,i.jsx)(n.strong,{children:"Setup"})," menu, repeat the ",(0,i.jsx)(n.a,{href:"#setup",children:"Basic Setup"})," process:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Start All Services"})," to pull container images and start them."]}),"\n",(0,i.jsxs)(n.li,{children:["Under ",(0,i.jsx)(n.strong,{children:"Native Services"}),", click ",(0,i.jsx)(n.strong,{children:"Start"})," to start the Docling service."]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Open App"})," to open the OpenRAG application."]}),"\n",(0,i.jsxs)(n.li,{children:["Continue with ",(0,i.jsx)(n.a,{href:"#application-onboarding",children:"application onboarding"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["If reinstalling OpenRAG and deleting the ",(0,i.jsx)(n.code,{children:".env"})," file doesn't reset setup or onboarding, see ",(0,i.jsx)(n.a,{href:"/support/troubleshoot#reinstalling-openrag-doesnt-reset-onboarding",children:"Reinstalling OpenRAG doesn't reset onboarding"}),"."]})]})}function j(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(x,{...e})}):x(e)}},5689:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/OpenRAG_TUI_2025-09-10T13_04_11_757637-9441c53ba39162a88ac6c11cbeaed0e0.svg"}}]); |