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
| Variable | Example | Description |
|---|---|---|
| MYSQL_URL | mysql+pymysql://appuser:password@db/rag | SQLAlchemy MySQL connection string |
| QDRANT_API_URL | http://qdrant | Qdrant vector DB base URL |
| QDRANT_BACKEND_TYPE | api | Qdrant client backend type |
| SQLALCHEMY_POOL_SIZE | 20 | DB connection pool size |
| SQLALCHEMY_POOL_OVERFLOW | 100 | Max overflow connections |
| VECTOR_DB | qdrant | Vector database backend |
| UVICORN_PORT | 8081 | Can 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.