Skip to content

spearheadOne/SmartSearch

Repository files navigation

SmartSearch

Multitenant RAG API with OpenAI embeddings and Qdrant vector search.

Implements metadata-based tenant isolation and is designed for both local Kubernetes and AWS EKS deployments with Terraform-managed infrastructure.

Tech Stack

Backend

  • Kotlin
  • Spring Boot 4
  • Spring AI

Data & Storage

  • Qdrant (vector database)
  • Redis (caching)
  • Postgres (API keys)

AI / ML

  • OpenAI (embeddings)

Infrastructure

  • Docker
  • Kubernetes (local + EKS)
  • Terraform

AWS

  • EKS (Kubernetes cluster)
  • ECR (container registry)
  • Secrets Manager
  • IAM (IRSA for External Secrets)

Kubernetes Tooling

  • Helm
  • External Secrets Operator

Build & Tooling

  • Gradle (Kotlin DSL)

Build and run

Local

  • with docker-compose
docker-compose up -d
export OPENAI_API_KEY=<your_key>
./gradlew bootRun
  • with helm and kubernetes
export OPENAI_API_KEY=<your_key>

./deploy-local.sh

To make it work you need to add the following line to /etc/hosts

127.0.0.1 smartsearch.local

To cleanup run

./cleanup-local.sh

Personal

  1. Bootstrap personal deployment, build image and push to ECR
./bootstrap-personal.sh
  1. Login to AWS console and add your key to secrets manager
  2. Resync secrets manager and EKS secrets
./refresh-secrets-personal.sh
  1. Get public LB url
kubectl get svc smartsearch -n default

To cleanup run

./cleanup-personal.sh

API docs are available at http://localhost:8080/swagger-ui/index.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors