REST API service providing RAG (Retrieval Augmented Generation), embeddings, user waitlist management and user registration functionality. Deployed on Hetzner Cloud.
- Install dependencies:
bun install- Configure environment:
cp .env
# Edit .env with your values- Build:
bun run buildbun run startAll endpoints under /rag and /user-management require a valid API token passed in the Authorization header.
GET /health- Check service health status, including embedding pipeline.
GET /rag/hybrid-rag- Hybrid semantic/keyword search.GET /rag/semantic-rag- Pure semantic search.GET /rag/semantic-rag-with-hashtags- Semantic search with hashtag filtering.GET /rag/hybrid-rag-with-hashtags- Hybrid search with hashtag filtering.
POST /user-management/add-to-waitlist- Add user (by username) to waitlist.GET /user-management/is-on-waitlist- Check if user (by username) is on waitlist.GET /user-management/waitlist-user-can-sign-up- Check user's (by username) waitlist status and eligibility to sign up.POST /user-management/register-user- Register a user (by username).
- Domain with access to DNS settings
- SSH access to Hetzner servers
- API servers and load balancer configured on Hetzner Cloud
-
Add your host/server name in nginx.conf file
-
Generate a certificate first and import it on Hetzner.
-
Deploy API Files:
# Deploy code and configurations to all servers
./scripts/deploy-to-server.sh- Start API Services:
# Start Docker containers on all servers
./scripts/start-api.sh- Verify Deployment:
# Check health of all services
./scripts/manual-health-check.sh- If SSL generation fails, ensure DNS propagation is complete
- For deployment issues, check server logs with
docker-compose logs