Deployment
Docker
Deploy bigRAG with Docker Compose.
Quick Start
Pull the image
docker pull yoginth/bigrag:latestVerify
curl http://localhost:6100/healthDocker Compose
The default docker-compose.yml runs the full stack including Milvus with its etcd dependency:
services:
bigrag:
image: yoginth/bigrag:latest
ports:
- "6100:6100"
volumes:
- bigrag_data:/data
environment:
BIGRAG_DATABASE_URL: postgres://bigrag:bigrag@postgres:5432/bigrag?sslmode=disable
BIGRAG_MILVUS_URI: http://milvus:19530
BIGRAG_REDIS_URL: redis://redis:6379/0
BIGRAG_UPLOAD_DIR: /data/uploads
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
milvus:
condition: service_healthy
postgres:
image: postgres:17
environment:
POSTGRES_USER: bigrag
POSTGRES_PASSWORD: bigrag
POSTGRES_DB: bigrag
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U bigrag"]
interval: 10s
timeout: 5s
retries: 5
milvus-etcd:
image: quay.io/coreos/etcd:v3.5.18
environment:
ETCD_AUTO_COMPACTION_MODE: revision
ETCD_AUTO_COMPACTION_RETENTION: "1000"
ETCD_QUOTA_BACKEND_BYTES: "4294967296"
volumes:
- etcd_data:/etcd
command: >
etcd
-advertise-client-urls=http://127.0.0.1:2379
-listen-client-urls=http://0.0.0.0:2379
--data-dir=/etcd
milvus:
image: milvusdb/milvus:v2.5.4
command: ["milvus", "run", "standalone"]
ports:
- "19530:19530"
environment:
ETCD_ENDPOINTS: milvus-etcd:2379
volumes:
- milvus_data:/var/lib/milvus
depends_on:
- milvus-etcd
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
timeout: 20s
retries: 3
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
bigrag_data:
postgres_data:
etcd_data:
milvus_data:
redis_data:Service Ports
| Service | Default Port |
|---|---|
| bigRAG API | 6100 |
| PostgreSQL | 5432 (5433 in dev) |
| Milvus | 19530 |
| Redis | 6379 (6380 in dev) |
Health Checks
Monitor service health:
# bigRAG
curl http://localhost:6100/health/ready
# Postgres
docker exec bigrag-postgres pg_isready -U bigrag
# Milvus
curl -f http://localhost:9091/healthz
# Redis
docker exec bigrag-redis redis-cli pingThe /health/ready endpoint checks connectivity to all dependencies and returns 503 with "status": "degraded" if any are unhealthy.