Deployment
Install EasyRag wherever you choose, with full knowledge of the facts
The platform is made of Docker containers you can run on your own servers or in your cloud. Here are the components, the external dependencies and what they mean in practice.
Installation
Six containers, one coherent stack
The API, RAG service and web interface images are published on Docker Hub; the databases rely on official images.
Node.js (NestJS)Accounts, roles, assistants, corpora, channels, workflows, monitoring.Python (FastAPI, Haystack)Extraction, chunking, embedding, search, agent and citations.Flutter Web (nginx)Administration, chat portal, public pages.PostgreSQL 16Configuration, conversations, logs.PostgreSQL + pgvectorIndex of document chunks.Redis 7Asynchronous processing, rate limiting.Optional profiles: observability (OpenTelemetry collector, Prometheus, Grafana). Resources and sizing depend on document volume and traffic: we do not publish figures we have not measured.
Configuration
External services to plan for
EasyRag is not 100% self-sufficient: some processing relies on third-party services. Here they are, with nothing left out.
| Service | Purpose | Requirement |
|---|---|---|
| OpenAI or Mistral key | Document embedding, enrichment, configuration assistants, transcription. | Required |
| Generation model | Cloud provider of your choice, or a self-hosted Ollama / vLLM / OpenAI-compatible server. | Required |
| SMTP server | Sign-up verification, password resets, alerts. | Optional |
| Mistral OCR key | Images and scanned PDFs. | Optional |
| Serper key | Web search alongside your documents. | Optional |
| Identity provider | OpenID Connect SSO, Google or FranceConnect+. | Optional |
| License | Beyond the free mode (1 corpus, 5 documents); Pro for advanced features. | Depends on usage |
Operations
What you control day to day
Data
Documents, indexes and conversations stay in your databases and volumes. Questions and relevant excerpts go to the model provider you chose; embedding goes through OpenAI or Mistral.
Updates
New versions are released as Docker images: update by replacing the containers, after backing up the databases.
Environments
The migration module exports assistants, corpora and settings from one instance to another, with a dry run and rollback within 30 days.
Operations
/health and /ready probes, Prometheus metrics, OpenTelemetry traces, a bundled Grafana dashboard and technical alerts by email.
Secrets
Keys and passwords set through environment variables; provider credentials encrypted in the database (AES-256-GCM).
License
Signed key verified offline; optional daily revalidation, with a 7-day grace period if the service is unavailable.
Before going live
What to settle before exposing an instance
A few configuration settings determine the security of an instance reachable from the Internet.
- Serve the application over HTTPS behind a reverse proxy.
- Declare the allowed origins for the API (
CLIENT_ORIGIN) and for each widget. - Decide whether to open sign-ups and allow automatic account creation through SSO.
- Restrict access to the API documentation and metrics if needed.
- Generate strong secrets (JWT, encryption key) and store them outside the code.
- Schedule backups of PostgreSQL and the document volumes.
Let’s plan your deployment
Infrastructure, model choices, document sources: let’s discuss your context to define a realistic rollout.