veda-guru.ai

Your AI-powered guide to the Vedas — learn, explore, and understand Vedic wisdom at your own pace, in your own language.

🕉

Deployment

Live URLs

Service URL
Chat UI veda-guru-ai-ui.vercel.app
Maharshi voice veda-guru-ai-ui.vercel.app/maharshi
API veda-guru-ai-api.onrender.com
Docs veda-guru-ai.github.io/veda-guru-ai-docs

Backend API (Render — free tier)

Repo: github.com/veda-guru-ai/veda-guru-ai-api

Settings used:

Setting Value
Runtime Python
Build command pip install -r requirements.txt
Start command uvicorn main:app --host 0.0.0.0 --port $PORT
Plan Free

Required environment variables:

Variable Value
SARVAM_API_KEY (your Sarvam AI API token)
SARVAM_API_URL https://api.sarvam.ai/v1/chat/completions
FRONTEND_URL https://veda-guru-ai-ui.vercel.app

Optional environment variables:

Variable Purpose
TAVILY_API_KEY Primary web search (free tier: 1000 searches/mo)
JWT_SECRET Auth token signing key (auto-generated if unset)
DATABASE_URL Neon/Supabase Postgres connection string (for persistent data)

Database persistence

By default, the app uses SQLite (veda_guru.db) which is ephemeral — data is lost on restart. For persistent storage, set DATABASE_URL to a Neon Postgres connection string:

postgresql://user:password@ep-xxx.region.aws.neon.tech/dbname?sslmode=require

Neon free tier: 500MB storage, no credit card required. See neon.tech.


Frontend UI (Vercel — free tier)

Repo: github.com/veda-guru-ai/veda-guru-ai-ui

  1. Connect repo to Vercel → it auto-detects static files
  2. Deploy — no build command needed
  3. Update API_URL in script.js and maharshi.js if the backend URL changes

The frontend includes:

Routing via vercel.json:

{
  "rewrites": [
    { "source": "/chat", "destination": "/chat.html" },
    { "source": "/learn", "destination": "/learning.html" },
    { "source": "/maharshi", "destination": "/maharshi.html" },
    { "source": "/(.*)", "destination": "/index.html" }
  ]
}

Documentation (GitHub Pages)

Repo: github.com/veda-guru-ai/veda-guru-ai-docs

  1. GitHub Settings → Pages → Source: GitHub Actions
  2. Add the Jekyll workflow (GitHub suggests it automatically)
  3. Pushes to main auto-deploy the docs site

Redeploying after changes

All three services auto-deploy when you push to the main branch of their respective repos. No manual steps needed.

Render cold start

The free tier spins down after 15 minutes of inactivity. The first request after idle triggers a cold start (30-60s). The frontend handles this with a retry loop and status indicator.