Deployment
This project is configured for a local app container with Qdrant Cloud and local NetworkX graph files.
Local App With Cloud Databases
Copy environment variables:
Copy-Item .env.example .env
Fill in the required secrets, then run:
docker compose up --build
Services:
- Backend:
http://localhost:8000 - Backend docs:
http://localhost:8000/docs - Frontend:
http://localhost:8501
Your .env should point to cloud databases:
QDRANT_URL=https://your-qdrant-cloud-cluster-url
QDRANT_API_KEY=your_qdrant_cloud_api_key
Backup local Docker Compose values:
# QDRANT_URL=http://qdrant:6333
Dependency graphs are stored locally under data/graphs/*.json, so Neo4j is not required. The local Qdrant service definition is kept as comments in docker-compose.yml; uncomment it only if you want offline/local vector storage again.
Public Deployment
For a public deployed link, do not point the backend at databases on your laptop. Use reachable services:
QDRANT_URL=https://your-qdrant-cloud-url
QDRANT_API_KEY=your_qdrant_key
GEMINI_API_KEY=your_gemini_key
Recommended setup:
- Deploy backend as a container.
- Deploy frontend as a Streamlit service or separate container.
- Use Qdrant Cloud for vectors.
- Persist
data/graphsif you need graph data to survive container rebuilds. - Store all keys as platform secrets.
CI/CD
The GitHub Actions workflow in .github/workflows/ci.yml performs:
- Python dependency installation
- Python syntax compilation
- Optional tests
- Backend Docker image build
- Frontend Docker image build
Add deploy steps for your platform after the build jobs pass.