ParsRAG
Persian Install

Guide

Privacy and security

ParsRAG is designed for one person on one workstation. It keeps documents, the index and conversations local, and treats anything that could leave as an explicit choice.

What is never stored by the service

  • Uploaded files: they exist in memory and a RAM-backed temporary folder only while they are processed. What stays is the extracted text, its vectors and a small copy of each image read with OCR, all in Qdrant; SOURCE_IMAGE_PREVIEWS=0 stops keeping the images.
  • Prompts and retrieved excerpts: they are not logged.
  • Conversations: they live in your browser's IndexedDB, not on the server.
  • API keys: process memory or environment variables only.

Network protections

  • Only requests addressed to localhost, 127.0.0.1 or ::1 are accepted, which blocks DNS rebinding. PARSRAG_ALLOWED_HOSTS adds names for LAN use.
  • Requests that change data must come from the app's own address or an allowed origin.
  • Ollama URLs are limited to loopback, the ollama service, host.docker.internal and hosts listed in OLLAMA_ALLOWED_HOSTS. The browser can't widen this list.
  • Settings changed in the app can't touch what guards the trust boundary: ports, allowed hosts and origins, OLLAMA_ALLOWED_HOSTS, the request ceiling, memory limits and model downloads.
  • The app listens on 127.0.0.1 by default, and Qdrant sits on an internal network with no outside access.

Container hardening

  • Read-only file system, a RAM-backed /tmp, no new privileges and every Linux capability dropped.
  • Runs as a non-root user, and pip is removed from the runtime image.
  • Memory ceilings: 6 GB for the app, 2 GB for Qdrant and 12 GB for Ollama in Docker by default.

Putting ParsRAG on a shared or untrusted network needs an authenticated reverse proxy. Ollama itself has no authentication, so keep the computer's Ollama off public networks. Vulnerabilities are reported privately through GitHub's security tab.

Loading…