diff --git a/.env.example b/.env.example index e69de29..71d8677 100644 --- a/.env.example +++ b/.env.example @@ -0,0 +1,46 @@ +# Application local development environment. +# +# Usage: +# cp .env.example .env +# docker compose -f docker-compose.yml up -d +# +# All values below are non-secret local-development defaults matching +# docker-compose.yml. Do not commit .env. + +# Application +APP_ENV=local +APP_MAX_UPLOAD_SIZE_MB=25 +APP_READINESS_CHECK_TIMEOUT_SECONDS=2.0 + +# Logging +LOG_LEVEL=INFO +LOG_JSON_FORMAT=false + +# Postgres (application database, separate from Langfuse's Postgres) +# Use 127.0.0.1 rather than localhost: some environments resolve localhost to +# the IPv6 loopback first, and Docker only publishes these ports on IPv4. +POSTGRES_HOST=127.0.0.1 +POSTGRES_PORT=5433 +POSTGRES_USER=chatbot +POSTGRES_PASSWORD=chatbot +POSTGRES_DB=chatbot + +# MinIO (application bucket, separate from Langfuse's MinIO) +MINIO_ENDPOINT=127.0.0.1:9100 +MINIO_ACCESS_KEY=chatbot +MINIO_SECRET_KEY=chatbot-secret +MINIO_SECURE=false +MINIO_BUCKET=chatbot-source-files + +# Inline ingestion bounds (ADR-0017; no broker, no queue). +# INGESTION_TIMEOUT_SECONDS must stay below any proxy/client read timeout. +INGESTION_MAX_CONCURRENCY=4 +INGESTION_THREAD_POOL_SIZE=8 +INGESTION_TIMEOUT_SECONDS=120.0 +INGESTION_MAX_CHUNKS_PER_FILE=5000 +INGESTION_EMBED_BATCH_SIZE=128 +INGESTION_EMBED_CONCURRENCY=4 + +# Qdrant +QDRANT_URL=http://127.0.0.1:6343 +QDRANT_API_KEY= diff --git a/.gitignore b/.gitignore index fe70770..63ff0e8 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ infra/langfuse/.env # Claude Code local overrides .claude/settings.local.json +.claude/hooks/.quality_state.json