Skip to main content

Deployment: helvia-rag-pipelines

Infrastructure config for this service. Full platform deployment: docs/architecture/deployment.md

Runtime

  • Port: 8081 (hardcoded in ENTRYPOINT)
  • Base image: python:3.11.2-slim (single-stage)
  • Start command: poetry run uvicorn app.main:fast_api_app --host 0.0.0.0 --port 8081 --workers 4 --log-config app/config/logging_ecs.ini
  • Health check: none defined

Required Environment Variables

VariableExampleDescription
MYSQL_URLmysql+pymysql://appuser:password@db/ragSQLAlchemy MySQL connection string
QDRANT_API_URLhttp://qdrantQdrant vector DB base URL
QDRANT_BACKEND_TYPEapiQdrant client backend type
SQLALCHEMY_POOL_SIZE20DB connection pool size
SQLALCHEMY_POOL_OVERFLOW100Max overflow connections
VECTOR_DBqdrantVector database backend
UVICORN_PORT8081Can override the hardcoded port

Docker

# Build
docker build -t helvia-rag-pipelines .

# Run (local dev)
docker run -p 8081:8081 helvia-rag-pipelines

No docker-compose file. Run dependencies (MySQL, Qdrant) separately.

CI/CD

  • Trigger: push to main/staging/develop
  • Steps: SonarQube audit -> Docker build -> Push to ECR -> Deploy to EKS
  • Deploy target: AWS EKS (helvia-dev, helvia-stg, helvia)
  • Multi-tenant deployments: helvia-rag-pipelines, isolved-rag-pipelines, hrwiz-rag-pipelines (separate K8s deployments per tenant)

Notes

  • Python FastAPI service. Poetry manages dependencies.
  • Single-stage Docker build (not multi-stage), based on python:3.11.2-slim.
  • Connects to Qdrant vector DB for embedding storage/retrieval and MySQL for metadata.
  • Multi-tenant K8s deployments share the same image but run as separate deployments with tenant-specific config.