chat-with-your-data / docker-compose.yml
sanchitshaleen
Initial deployment of RAG with Gemma-3 to Hugging Face Spaces
4aec76b
version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: rag-postgres
environment:
- POSTGRES_USER=raguser
- POSTGRES_PASSWORD=ragpass
- POSTGRES_DB=ragdb
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
networks:
- rag-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U raguser -d ragdb"]
interval: 5s
timeout: 3s
retries: 5
redis:
image: redis:8.0-alpine
container_name: rag-redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
command: redis-server --appendonly yes
restart: unless-stopped
networks:
- rag-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
qdrant:
image: qdrant/qdrant:v1.12.5
container_name: rag-qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant-data:/qdrant/storage
restart: unless-stopped
networks:
- rag-network
healthcheck:
test: ["CMD-SHELL", "timeout 1 bash -c '</dev/tcp/localhost/6333' || exit 1"]
interval: 5s
timeout: 3s
retries: 5
app:
build:
context: .
dockerfile: Dockerfile
args:
ENV_TYPE: dev
container_name: chat-with-your-data-cont-dev
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
qdrant:
condition: service_healthy
environment:
- ENV_TYPE=dev
- REDIS_URL=redis://redis:6379/0
- DATABASE_URL=postgresql://raguser:ragpass@postgres:5432/ragdb
- QDRANT_URL=http://qdrant:6333
- LANGCHAIN_TRACING_V2=true
- LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
- LANGCHAIN_API_KEY=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
- LANGCHAIN_PROJECT=chat-with-your-data
- LANGSMITH_WORKSPACE_ID=ad0af9e4-a724-545d-bc4d-f1a3a96baed2
- OLLAMA_BASE_URL=http://host.docker.internal:11434
ports:
- "8000:8000"
- "8501:8501"
- "11434:11434"
volumes:
# Persist user uploads
- ./server/user_uploads:/fastAPI/user_uploads
restart: unless-stopped
networks:
- rag-network
# Optional: Redis Commander for GUI
redis-commander:
image: rediscommander/redis-commander:latest
container_name: rag-redis-commander
depends_on:
- redis
environment:
- REDIS_HOSTS=local:redis:6379
ports:
- "8081:8081"
restart: unless-stopped
networks:
- rag-network
networks:
rag-network:
driver: bridge
volumes:
postgres-data:
driver: local
redis-data:
driver: local
qdrant-data:
driver: local