Getting Started

Prerequisites

  • Python 3.12

  • Node.js 22

  • Docker and Docker Compose

  • pnpm (Node package manager)

  • Poetry (Python dependency manager)

Environment Setup

Copy and configure the environment file:

cp .env.example .env
# Set: NVIDIA_API_KEY, GENERATION_MODEL, EMBEDDING_MODEL, etc.

All model names and API keys are configured via environment variables – nothing is hardcoded.

Database and Seed Data

Start the database:

docker compose up db -d

Install backend dependencies, run migrations, and load the seed data (701 verses + translations):

cd backend
poetry install
poetry run python manage.py migrate
poetry run python manage.py load_seed

Load Opus enrichments and generate embeddings:

poetry run python manage.py load_enrichments

Running the Backend

cd backend
poetry run python manage.py runserver 0.0.0.0:8000

Running the Frontend

cd frontend
pnpm install
pnpm dev

The Vite dev server is available at http://localhost:5173. In production, Caddy proxies to the built SvelteKit app on port 3000.

Running Tests

Backend:

cd backend
DATABASE_URL="sqlite:///test.db" poetry run pytest
poetry run ruff check .

Frontend:

cd frontend
pnpm install
pnpm test        # vitest
pnpm check       # TypeScript check