# === Database === POSTGRES_DB=airpg POSTGRES_USER=airpg POSTGRES_PASSWORD=airpg_secret # === Auth === JWT_SECRET=change_me_in_production_please # If empty, the backend will generate and print a one-time admin setup token to console on first run. ADMIN_SETUP_TOKEN= # === CORS === CORS_ORIGINS=http://localhost:5173,http://localhost:8080 # === Logging === LOG_LEVEL=INFO # === Default LLM (overridable via admin panel) === # Any OpenAI-compatible endpoint (vLLM, llama.cpp server, LM Studio, Ollama with /v1, OpenAI, OpenRouter, etc.) DEFAULT_LLM_BASE_URL=http://host.docker.internal:1234/v1 DEFAULT_LLM_API_KEY=dummy DEFAULT_LLM_MODEL=local-model # === Default embeddings / RAG (overridable via admin panel) === # provider: "hash" (offline fallback, no semantic quality) or "openai" (real /embeddings endpoint). # When provider=openai and base_url/api_key are empty, they fall back to the LLM settings above. DEFAULT_EMBEDDING_PROVIDER=hash DEFAULT_EMBEDDING_BASE_URL= DEFAULT_EMBEDDING_API_KEY= DEFAULT_EMBEDDING_MODEL=text-embedding-3-small DEFAULT_EMBEDDING_DIM=0 DEFAULT_EMBEDDING_REQUEST_TIMEOUT=60 # === Frontend === # Vite dev-server proxy target — INSIDE the frontend container "localhost" is # the container itself, so docker-compose defaults this to http://backend:8000 # (the service name). Override only if you run vite outside docker against a # host backend (in which case use http://localhost:8000). API_PROXY_TARGET=http://backend:8000 FRONTEND_BUILD_TARGET=dev