Documents

PolaRAG: Building a RAG System Infrastructure with Docker Compose

4 min readMay 1, 2025May 1, 2025

PolaRAG_dev Project

PolaRAG_dev is a project that builds the Docker-based infrastructure for the PolaRAG system. It was developed in May 2025 across 9 commits.

Infrastructure Overview

graph TD
    A[Docker Compose] --> B[FastAPI Backend]
    A --> C[Qdrant VectorDB]
    A --> D[PostgreSQL]
    A --> E[Redis Cache]
    A --> F[Nginx]

    B --> C
    B --> D
    B --> E
    F --> B

Docker Compose Configuration

version: '3.8'
services:
  backend:
    build: ./backend
    env_file: .env
    depends_on:
      - qdrant
      - postgres
      - redis

  qdrant:
    image: qdrant/qdrant:v1.7.4
    volumes:
      - qdrant_data:/qdrant/storage
    ports:
      - "6333:6333"

  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: polarag
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - pg_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

Environment Variable Management

# .env
DB_HOST=postgres
DB_PORT=5432
DB_USER=polarag
DB_PASSWORD=secretpassword
QDRANT_HOST=qdrant
QDRANT_PORT=6333
OPENAI_API_KEY=sk-...

Key Points

  1. Service dependencies: depends_on controls startup order
  2. Volume mounts: Guarantee data persistence
  3. Network isolation: Leverage internal DNS between services
  4. Environment variable separation: Manage secrets via .env files

This infrastructure pattern was carried over almost unchanged into PlateeRAG and XGen.

Tags
DockerDocker ComposeQdrantPostgreSQLInfrastructure