# Copy to .env and fill in. Never commit .env. # --- LiveKit (realtime transport + voice delivery) --- LIVEKIT_URL=wss://your-project.livekit.cloud LIVEKIT_API_KEY= LIVEKIT_API_SECRET= # --- Gemini (vision + event detection + voice) --- GEMINI_API_KEY= # GOOGLE_API_KEY= also works as a local alias, but GEMINI_API_KEY is the # canonical deployment secret name used by DigitalOcean and docs. GEMINI_VISION_MODEL=gemini-2.0-flash GEMINI_LIVE_MODEL=gemini-3.1-flash-tts-preview GEMINI_TTS_VOICE=Charon GEMINI_EMBEDDING_MODEL=gemini-embedding-001 # --- GitHub (repo state + sync PR artifacts) --- GITHUB_TOKEN= GITHUB_REPO=owner/name # --- MongoDB Atlas (engineer state, ownership map, events, nudges) --- MONGODB_URI=mongodb+srv://:@cluster.mongodb.net/podman VOYAGE_API_KEY= VOYAGE_EMBEDDING_MODEL=voyage-4-lite # --- Backend server --- PORT=8787 POD_ROOM=demo-pod # --- Nudge cooldown (ms) — set to 0 during demo if needed --- NUDGE_COOLDOWN_MS=180000 # --- Frontend (Vite — must be VITE_ prefixed to reach the client) --- VITE_LIVEKIT_URL=wss://your-project.livekit.cloud VITE_BACKEND_URL=http://localhost:8787 # Keep off by default so users hear Gemini audio delivered through LiveKit. VITE_ENABLE_BROWSER_TTS_FALLBACK=false # --- Deployment verification --- # Optional override when the deployed SPA and API use different origins. FRONTEND_URL=http://localhost:4173 # --- Hermes operations watchdog --- PODMAN_PUBLIC_URL=https://165-22-129-249.sslip.io/ PODMAN_PUBLIC_API_URL=https://165-22-129-249.sslip.io/api/pods PODMAN_PUBLIC_HEALTH_URL=https://165-22-129-249.sslip.io/health PODMAN_HERMES_REMEDIATE=1 PODMAN_HERMES_STRICT=0 PODMAN_HERMES_STATE_DIR=/var/log/podman # Optional Discord/Slack/generic webhook for failed watchdog runs. PODMAN_ALERT_WEBHOOK_URL= # --- Hermes git-sync deploy loop --- PODMAN_DEPLOY_REMOTE=origin PODMAN_DEPLOY_BRANCH=main PODMAN_DEPLOY_RESTART_SERVICES=podman-platform-api.service,podman-platform-agent.service,caddy.service