A distributed, fault-tolerant semantic search engine for YouTube videos built with modern microservices architecture.
- Docker & Docker Compose
- Python 3.11+
- Node.js 18+
- Rust 1.70+
-
Clone and setup the project:
git clone <repository-url> cd HelixQuery ./setup.sh
-
Start development environment:
./scripts/dev-start.sh
-
Configure your environment:
- Copy
.env.exampleto.env - Add your YouTube API key
- Update other configuration as needed
- Copy
-
Access services:
- API Documentation: http://localhost:8000/docs
- MinIO Console: http://localhost:9001 (minioadmin/minioadmin)
- Grafana: http://localhost:3001 (admin/admin)
- Prometheus: http://localhost:9090
HelixQuery consists of six main microservices:
- Genesis Crawler: YouTube data collection and processing
- Pulse Indexer: Full-text search with Rust/Tantivy
- Vector Engine: Semantic search with sentence transformers
- Lexicon Service: NLP and query enhancement
- API Gateway: Request routing and result aggregation
- Web Interface: Modern SvelteKit frontend
# Run all tests
pytest
# Run integration tests
pytest tests/integration/
# Run performance tests
k6 run tests/performance/load-test.jsdocker-compose -f docker-compose.dev.yml up -d# Deploy to AWS ECS
./scripts/deploy-aws.sh
# Deploy to Kubernetes
kubectl apply -f k8s/- Metrics: Prometheus + Grafana
- Logging: Structured JSON logging
- Tracing: OpenTelemetry integration
- Health Checks: Kubernetes-ready endpoints
- Automated dependency scanning
- Container vulnerability scanning
- License compliance checking
- Secrets detection
- Infrastructure security scanning
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.