openrag/assets/js/d0314b07.614ea2c4.js
2025-11-10 21:47:29 +00:00

1 line
No EOL
31 KiB
JavaScript

"use strict";(self.webpackChunkopenrag_docs=self.webpackChunkopenrag_docs||[]).push([[5750],{887:(e,n,s)=>{s.d(n,{Ay:()=>d,RM:()=>a});var i=s(4848),r=s(8453),t=s(1610),l=s(1470),o=s(9365);const a=[{value:"Application onboarding",id:"application-onboarding",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"application-onboarding",children:"Application onboarding"}),"\n",(0,i.jsxs)(n.p,{children:["The first time you start OpenRAG, whether using the TUI or a ",(0,i.jsx)(n.code,{children:".env"})," file, you must complete application onboarding."]}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsxs)(n.p,{children:["Most values from onboarding can be changed later in the OpenRAG ",(0,i.jsx)(n.strong,{children:"Settings"})," page, but there are important restrictions."]}),(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"language model provider"})," and ",(0,i.jsx)(n.strong,{children:"embeddings model provider"})," can only be selected at onboarding.\nTo change your provider selection later, you must ",(0,i.jsx)(n.a,{href:"/install#reinstall",children:"reinstall OpenRAG"}),"."]}),(0,i.jsx)(n.p,{children:"You must use the same provider for your language model and embedding model, unless you're using Ollama."})]}),"\n",(0,i.jsx)(n.p,{children:"Choose one LLM provider and complete only those steps:"}),"\n",(0,i.jsxs)(l.A,{groupId:"Provider",children:[(0,i.jsx)(o.A,{value:"OpenAI",label:"OpenAI",default:!0,children:(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Enable ",(0,i.jsx)(n.strong,{children:"Get API key from environment variable"})," to automatically enter your key from the TUI-generated ",(0,i.jsx)(n.code,{children:".env"})," file.\nAlternatively, paste an OpenAI API key into the field."]}),"\n",(0,i.jsxs)(n.li,{children:["Under ",(0,i.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,i.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,i.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,i.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,i.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,i.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,i.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Continue with the ",(0,i.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,i.jsx)(o.A,{value:"IBM watsonx.ai",label:"IBM watsonx.ai",children:(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Complete the fields for ",(0,i.jsx)(n.strong,{children:"watsonx.ai API Endpoint"}),", ",(0,i.jsx)(n.strong,{children:"IBM Project ID"}),", and ",(0,i.jsx)(n.strong,{children:"IBM API key"}),".\nThese values are found in your IBM watsonx deployment."]}),"\n",(0,i.jsxs)(n.li,{children:["Under ",(0,i.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,i.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,i.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,i.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,i.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,i.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,i.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Continue with the ",(0,i.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,i.jsxs)(o.A,{value:"Ollama",label:"Ollama",children:[(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Ollama is not included with OpenRAG. To install Ollama, see the ",(0,i.jsx)(n.a,{href:"https://docs.ollama.com/",children:"Ollama documentation"}),"."]})}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Enter your Ollama server's base URL address.\nThe default Ollama server address is ",(0,i.jsx)(n.code,{children:"http://localhost:11434"}),".\nOpenRAG automatically transforms ",(0,i.jsx)(n.code,{children:"localhost"})," to access services outside of the container, and sends a test connection to your Ollama server to confirm connectivity."]}),"\n",(0,i.jsxs)(n.li,{children:["Select the ",(0,i.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,i.jsx)(n.strong,{children:"Language Model"})," your Ollama server is running.\nOpenRAG retrieves the available models from your Ollama server."]}),"\n",(0,i.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,i.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["To complete the onboarding tasks, click ",(0,i.jsx)(n.strong,{children:"What is OpenRAG"}),", and then click ",(0,i.jsx)(n.strong,{children:"Add a Document"}),".\nAlternatively, click ",(0,i.jsx)(t.A,{name:"ArrowRight","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Skip overview"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Continue with the ",(0,i.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})]})]})]})}function d(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},4398:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>i,toc:()=>p});const i=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 r=s(4848),t=s(8453),l=s(1470),o=s(9365),a=s(887);const c={title:"Install OpenRAG with TUI",slug:"/install"},d=void 0,h={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Install OpenRAG",id:"install",level:2},{value:"Set up OpenRAG with the TUI",id:"setup",level:2},...a.RM,{value:"Close the OpenRAG TUI",id:"close-the-openrag-tui",level:2},{value:"Manage OpenRAG containers with the TUI",id:"tui-container-management",level:2},{value:"Start all services",id:"start-all-services",level:3},{value:"Status",id:"status",level:3},{value:"Native services status",id:"native-services-status",level:3},{value:"Diagnostics",id:"diagnostics",level:2},{value:"Reinstall OpenRAG",id:"reinstall",level:2}];function u(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:i}=n;return i||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.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"#install",children:"Install OpenRAG"})," and then run the ",(0,r.jsx)(n.a,{href:"#setup",children:"OpenRAG Terminal User Interface(TUI)"})," to start your OpenRAG deployment with a guided setup process."]}),"\n",(0,r.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,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"OpenRAG TUI Interface",src:s(5689).A+"",width:"1995",height:"1099"})}),"\n",(0,r.jsxs)(n.p,{children:["Instead of starting OpenRAG using Docker commands and manually editing values in the ",(0,r.jsx)(n.code,{children:".env"})," file, the TUI walks you through the setup. It prompts for variables where required, creates a ",(0,r.jsx)(n.code,{children:".env"})," file for you, and then starts OpenRAG."]}),"\n",(0,r.jsx)(n.p,{children:"Once OpenRAG is running, use the TUI to monitor your application, control your containers, and retrieve logs."}),"\n",(0,r.jsxs)(n.p,{children:["If you prefer running Podman or Docker containers and manually editing ",(0,r.jsx)(n.code,{children:".env"})," files, see ",(0,r.jsx)(n.a,{href:"/docker",children:"Install OpenRAG Containers"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Install ",(0,r.jsx)(n.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python Version 3.10 to 3.13"})]}),"\n",(0,r.jsxs)(n.li,{children:["Install ",(0,r.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"})]}),"\n",(0,r.jsxs)(n.li,{children:["Install ",(0,r.jsx)(n.a,{href:"https://podman.io/docs/installation",children:"Podman"})," (recommended) or ",(0,r.jsx)(n.a,{href:"https://docs.docker.com/get-docker/",children:"Docker"})]}),"\n",(0,r.jsxs)(n.li,{children:["Install ",(0,r.jsx)(n.a,{href:"https://docs.docker.com/compose/install/",children:"Docker Compose"}),". If using Podman, use ",(0,r.jsx)(n.a,{href:"https://docs.podman.io/en/latest/markdown/podman-compose.1.html",children:"podman-compose"})," or alias Docker compose commands to Podman commands."]}),"\n",(0,r.jsxs)(n.li,{children:["Optional: Create an ",(0,r.jsx)(n.a,{href:"https://platform.openai.com/api-keys",children:"OpenAI API key"}),". During ",(0,r.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),", you can provide this key or choose a different model provider."]}),"\n",(0,r.jsxs)(n.li,{children:["Optional: Install GPU support with an NVIDIA GPU, ",(0,r.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",(0,r.jsx)(n.h2,{id:"install",children:"Install OpenRAG"}),"\n",(0,r.jsx)(n.admonition,{title:"Windows users",type:"note",children:(0,r.jsxs)(n.p,{children:["To use OpenRAG on Windows, use ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/windows/wsl/install",children:"WSL (Windows Subsystem for Linux)"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"Choose an installation method based on your needs:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"For new users, the automatic installer script detects and installs prerequisites and then runs OpenRAG."}),"\n",(0,r.jsxs)(n.li,{children:["For a quick test, use ",(0,r.jsx)(n.code,{children:"uvx"})," to run OpenRAG without creating a project or modifying files."]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"uv add"})," to install OpenRAG as a managed dependency in a new or existing Python project."]}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"uv pip install"})," to install OpenRAG into an existing virtual environment."]}),"\n"]}),"\n",(0,r.jsxs)(l.A,{groupId:"Installation method",children:[(0,r.jsxs)(o.A,{value:"installer",label:"Automatic installer",default:!0,children:[(0,r.jsxs)(n.p,{children:["The script detects and installs uv, Docker/Podman, and Docker Compose prerequisites, then runs OpenRAG with ",(0,r.jsx)(n.code,{children:"uvx"}),"."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Create a directory to store the OpenRAG configuration files:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mkdir openrag-workspace\ncd openrag-workspace\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Run the installer:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"curl -fsSL https://docs.openr.ag/files/run_openrag_with_prereqs.sh | bash\n"})}),"\n"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["The TUI creates a ",(0,r.jsx)(n.code,{children:".env"})," file and docker-compose files in the current working directory."]})]}),(0,r.jsxs)(o.A,{value:"uvx",label:"Quick test with uvx",children:[(0,r.jsxs)(n.p,{children:["Use ",(0,r.jsx)(n.code,{children:"uvx"})," to quickly run OpenRAG without creating a project or modifying any files."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Create a directory to store the OpenRAG configuration files:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mkdir openrag-workspace\ncd openrag-workspace\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uvx openrag\n"})}),"\n",(0,r.jsx)(n.p,{children:"To run a specific version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uvx --from openrag==0.1.30 openrag\n"})}),"\n"]}),"\n"]}),(0,r.jsxs)(n.p,{children:["The TUI creates a ",(0,r.jsx)(n.code,{children:".env"})," file and docker-compose files in the current working directory."]})]}),(0,r.jsxs)(o.A,{value:"uv-add",label:"Python project with uv add",children:[(0,r.jsxs)(n.p,{children:["Use ",(0,r.jsx)(n.code,{children:"uv add"})," to install OpenRAG as a dependency in your Python project. This adds OpenRAG to your ",(0,r.jsx)(n.code,{children:"pyproject.toml"})," and lockfile, making your installation reproducible and version-controlled."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Create a new project with a virtual environment:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv init YOUR_PROJECT_NAME\ncd YOUR_PROJECT_NAME\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"(venv)"})," prompt doesn't change, but ",(0,r.jsx)(n.code,{children:"uv"})," commands will automatically use the project's virtual environment."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Add OpenRAG to your project:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv add openrag\n"})}),"\n",(0,r.jsx)(n.p,{children:"To add a specific version:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv add openrag==0.1.30\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Start the OpenRAG TUI:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]}),(0,r.jsxs)(i,{closed:!0,children:[(0,r.jsx)("summary",{children:"Install a local wheel"}),(0,r.jsx)(n.p,{children:"If you downloaded the OpenRAG wheel to your local machine, install it by specifying its path:"}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Add the wheel to your project:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv add PATH/TO/openrag-VERSION-py3-none-any.whl\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Replace ",(0,r.jsx)(n.code,{children:"PATH/TO/"})," and ",(0,r.jsx)(n.code,{children:"VERSION"})," with the path and version of your downloaded OpenRAG ",(0,r.jsx)(n.code,{children:".whl"})," file."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n"]})]})]}),(0,r.jsxs)(o.A,{value:"uv-pip",label:"Existing virtual environment with uv pip install",children:[(0,r.jsxs)(n.p,{children:["Use ",(0,r.jsx)(n.code,{children:"uv pip install"})," to install OpenRAG into an existing virtual environment that isn't managed by ",(0,r.jsx)(n.code,{children:"uv"}),"."]}),(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsxs)(n.p,{children:["For new projects, ",(0,r.jsx)(n.code,{children:"uv add"})," is recommended as it manages dependencies in your project's lockfile."]})}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Activate your virtual environment."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Install OpenRAG:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"uv pip install openrag\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Run OpenRAG:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"openrag\n"})}),"\n"]}),"\n"]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["Continue with ",(0,r.jsx)(n.a,{href:"#setup",children:"Set up OpenRAG with the TUI"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"setup",children:"Set up OpenRAG with the TUI"}),"\n",(0,r.jsxs)(n.p,{children:["The TUI creates a ",(0,r.jsx)(n.code,{children:".env"})," file in your OpenRAG directory root and starts OpenRAG.\nIf the TUI detects a ",(0,r.jsx)(n.code,{children:".env"})," file in the OpenRAG root directory, it sources any variables from the ",(0,r.jsx)(n.code,{children:".env"})," file.\nIf the TUI detects OAuth credentials, it enforces the ",(0,r.jsx)(n.strong,{children:"Advanced Setup"})," path."]}),"\n",(0,r.jsxs)(l.A,{groupId:"Setup method",children:[(0,r.jsxs)(o.A,{value:"Basic setup",label:"Basic setup",default:!0,children:[(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Basic Setup"})," can generate all of the required values for OpenRAG. The OpenAI API key is optional and can be provided during onboarding.\n",(0,r.jsx)(n.strong,{children:"Basic Setup"})," does not set up OAuth connections for ingestion from cloud providers.\nFor OAuth setup, use ",(0,r.jsx)(n.strong,{children:"Advanced Setup"}),".\nFor information about the difference between basic (no auth) and OAuth in OpenRAG, see ",(0,r.jsx)(n.a,{href:"/knowledge#auth",children:"Authentication and document access"}),"."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To install OpenRAG with ",(0,r.jsx)(n.strong,{children:"Basic Setup"}),", click ",(0,r.jsx)(n.strong,{children:"Basic Setup"})," or press ",(0,r.jsx)("kbd",{children:"1"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n",(0,r.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,r.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,r.jsxs)(n.li,{children:["\n",(0,r.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,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Configuration"}),".\nYour passwords are saved in the ",(0,r.jsx)(n.code,{children:".env"})," file used to start OpenRAG."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To start OpenRAG, click ",(0,r.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,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To start the Docling service, under ",(0,r.jsx)(n.strong,{children:"Native Services"}),", click ",(0,r.jsx)(n.strong,{children:"Start"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To open the OpenRAG application, navigate to the TUI main menu, and then click ",(0,r.jsx)(n.strong,{children:"Open App"}),".\nAlternatively, in your browser, navigate to ",(0,r.jsx)(n.code,{children:"localhost:3000"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Continue with ",(0,r.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n"]}),"\n"]})]}),(0,r.jsx)(o.A,{value:"Advanced setup",label:"Advanced setup",children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To install OpenRAG with ",(0,r.jsx)(n.strong,{children:"Advanced Setup"}),", click ",(0,r.jsx)(n.strong,{children:"Advanced Setup"})," or press ",(0,r.jsx)("kbd",{children:"2"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n",(0,r.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,r.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,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Paste your OpenAI API key in the OpenAI API key field."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Add your client and secret values for Google or Microsoft OAuth.\nThese values can be found with your OAuth provider.\nFor more information, see the ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2",children:"Google OAuth client"})," or ",(0,r.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,r.jsxs)(n.li,{children:["\n",(0,r.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,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To start OpenRAG, click ",(0,r.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,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To start the Docling service, under ",(0,r.jsx)(n.strong,{children:"Native Services"}),", click ",(0,r.jsx)(n.strong,{children:"Start"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To open the OpenRAG application, navigate to the TUI main menu, and then click ",(0,r.jsx)(n.strong,{children:"Open App"}),".\nAlternatively, in your browser, navigate to ",(0,r.jsx)(n.code,{children:"localhost:3000"}),".\nYou are presented with your provider's OAuth sign-in screen.\nAfter sign-in, you are redirected to the redirect URI."]}),"\n",(0,r.jsx)(n.p,{children:"Two additional variables are available for Advanced Setup:"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"LANGFLOW_PUBLIC_URL"})," controls where the Langflow web interface can be accessed. This is where users interact with their flows in a browser."]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"WEBHOOK_BASE_URL"})," controls where the endpoint for ",(0,r.jsx)(n.code,{children:"/connectors/CONNECTOR_TYPE/webhook"})," will be available.\nThis connection enables real-time document synchronization with external services.\nSupported webhook endpoints:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Google Drive: ",(0,r.jsx)(n.code,{children:"/connectors/google_drive/webhook"})]}),"\n",(0,r.jsxs)(n.li,{children:["OneDrive: ",(0,r.jsx)(n.code,{children:"/connectors/onedrive/webhook"})]}),"\n",(0,r.jsxs)(n.li,{children:["SharePoint: ",(0,r.jsx)(n.code,{children:"/connectors/sharepoint/webhook"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Continue with ",(0,r.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n"]}),"\n"]})})]}),"\n",(0,r.jsx)(a.Ay,{}),"\n",(0,r.jsx)(n.h2,{id:"close-the-openrag-tui",children:"Close the OpenRAG TUI"}),"\n",(0,r.jsxs)(n.p,{children:["To close the OpenRAG TUI, press ",(0,r.jsx)("kbd",{children:"q"}),".\nThe OpenRAG containers will continue to be served until the containers are stopped.\nFor more information, see ",(0,r.jsx)(n.a,{href:"#tui-container-management",children:"Manage OpenRAG containers with the TUI "}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To start the TUI again, run ",(0,r.jsx)(n.code,{children:"uv run openrag"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"tui-container-management",children:"Manage OpenRAG containers with the TUI"}),"\n",(0,r.jsx)(n.p,{children:"After installation, the TUI can deploy, manage, and upgrade your OpenRAG containers."}),"\n",(0,r.jsx)(n.h3,{id:"start-all-services",children:"Start all services"}),"\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Start All Services"})," to start the OpenRAG containers.\nThe TUI automatically detects your container runtime, and then checks if your machine has compatible GPU support by checking for ",(0,r.jsx)(n.code,{children:"CUDA"}),", ",(0,r.jsx)(n.code,{children:"NVIDIA_SMI"}),", and Docker/Podman runtime support. This check determines which Docker Compose file OpenRAG uses.\nThe TUI then pulls the images and deploys the containers with the following command."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker compose up -d\n"})}),"\n",(0,r.jsxs)(n.p,{children:["If images are missing, the TUI runs ",(0,r.jsx)(n.code,{children:"docker compose pull"}),", then runs ",(0,r.jsx)(n.code,{children:"docker compose up -d"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"status",children:"Status"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.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,r.jsxs)(n.p,{children:["To view streaming logs, select the container you want to view, and press ",(0,r.jsx)("kbd",{children:"l"}),".\nTo copy your logs, click ",(0,r.jsx)(n.strong,{children:"Copy to Clipboard"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To ",(0,r.jsx)(n.strong,{children:"upgrade"})," your containers, click ",(0,r.jsx)(n.strong,{children:"Upgrade"}),".\n",(0,r.jsx)(n.strong,{children:"Upgrade"})," runs ",(0,r.jsx)(n.code,{children:"docker compose pull"})," and then ",(0,r.jsx)(n.code,{children:"docker compose up -d --force-recreate"}),".\nThe first command pulls the latest images of OpenRAG.\nThe second command recreates the containers with your data persisted."]}),"\n",(0,r.jsxs)(n.p,{children:["To ",(0,r.jsx)(n.strong,{children:"reset"})," your containers, click ",(0,r.jsx)(n.strong,{children:"Reset"}),".\nReset gives you a completely fresh start.\nReset deletes all of your data, including OpenSearch data, uploaded documents, and authentication.\n",(0,r.jsx)(n.strong,{children:"Reset"})," runs two commands.\nIt first stops and removes all containers, volumes, and local images."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"docker compose down --volumes --remove-orphans --rmi local\n"})}),"\n",(0,r.jsxs)(n.p,{children:["When the first command is complete, OpenRAG removes any additional Docker objects with ",(0,r.jsx)(n.code,{children:"prune"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"docker system prune -f\n"})}),"\n",(0,r.jsx)(n.h3,{id:"native-services-status",children:"Native services status"}),"\n",(0,r.jsxs)(n.p,{children:["A ",(0,r.jsx)(n.em,{children:"native service"})," in OpenRAG refers to a service run locally on your machine, and not within a container.\nThe ",(0,r.jsx)(n.code,{children:"docling serve"})," process is a native service in OpenRAG, because it's a document processing service that is run on your local machine, and controlled separately from the containers."]}),"\n",(0,r.jsxs)(n.p,{children:["To start or stop ",(0,r.jsx)(n.code,{children:"docling serve"})," or any other native services, in the TUI Status menu, click ",(0,r.jsx)(n.strong,{children:"Stop"})," or ",(0,r.jsx)(n.strong,{children:"Restart"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To view the status, port, or PID of a native service, in the TUI main menu, click ",(0,r.jsx)(n.a,{href:"#status",children:"Status"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"diagnostics",children:"Diagnostics"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"Diagnostics"})," menu provides health monitoring for your container runtimes and monitoring of your OpenSearch security."]}),"\n",(0,r.jsx)(n.h2,{id:"reinstall",children:"Reinstall OpenRAG"}),"\n",(0,r.jsx)(n.p,{children:"To reinstall OpenRAG with a completely fresh setup:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Reset your containers using the ",(0,r.jsx)(n.strong,{children:"Reset"})," button in the ",(0,r.jsx)(n.a,{href:"#status",children:"TUI status"})," menu.\nThis removes all containers, volumes, and data."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optional: Delete your project's ",(0,r.jsx)(n.code,{children:".env"})," file.\nThe Reset operation does not remove your project's ",(0,r.jsx)(n.code,{children:".env"})," file, so your passwords, API keys, and OAuth settings can be preserved.\nIf you delete the ",(0,r.jsx)(n.code,{children:".env"})," file, run the ",(0,r.jsx)(n.a,{href:"#setup",children:"Set up OpenRAG with the TUI"})," process again to create a new configuration."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the TUI Setup menu, follow these steps from ",(0,r.jsx)(n.a,{href:"#setup",children:"Basic Setup"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Start All Services"})," to pull container images and start them."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Native Services"}),", click ",(0,r.jsx)(n.strong,{children:"Start"})," to start the Docling service."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Open App"})," to open the OpenRAG application."]}),"\n",(0,r.jsxs)(n.li,{children:["Continue with ",(0,r.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n"]}),"\n"]}),"\n"]})]})}function x(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},5689:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/OpenRAG_TUI_2025-09-10T13_04_11_757637-9441c53ba39162a88ac6c11cbeaed0e0.svg"}}]);