# ConstructAI Environment Variables # Copy this file to .env and fill in your values: # cp .env.example .env # Database # H-16: docker-compose fails fast when these are unset (no silent default). POSTGRES_USER=constructai POSTGRES_PASSWORD=CHANGEME POSTGRES_DB=constructai DATABASE_URL=postgresql+asyncpg://constructai:CHANGEME@localhost:5432/constructai DATABASE_URL_SYNC=postgresql://constructai:CHANGEME@localhost:5432/constructai # Redis REDIS_PASSWORD=CHANGEME REDIS_URL=redis://:CHANGEME@localhost:6379/0 # MinIO (shared with S3_* above for backend use) MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=CHANGEME # Auth JWT_SECRET_KEY=CHANGEME-generate-with-openssl-rand-hex-32 JWT_ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30 REFRESH_TOKEN_EXPIRE_DAYS=7 # Cookie Auth (leave COOKIE_DOMAIN empty for localhost) COOKIE_DOMAIN= COOKIE_SECURE=false COOKIE_SAMESITE=lax # S3 / MinIO S3_ENDPOINT_URL=http://localhost:9000 S3_ACCESS_KEY=minioadmin S3_SECRET_KEY=minioadmin S3_BUCKET_DOCUMENTS=constructai-documents # Kafka KAFKA_BOOTSTRAP_SERVERS=localhost:29092 # MQTT MQTT_BROKER_HOST=localhost MQTT_BROKER_PORT=1883 # LLM API Keys OPENAI_API_KEY=sk-CHANGEME ANTHROPIC_API_KEY=sk-ant-CHANGEME VOYAGE_API_KEY=pa-CHANGEME COHERE_API_KEY=CHANGEME # Encryption (generate with: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())") ENCRYPTION_KEY=CHANGEME # Email / SMTP (leave SMTP_HOST empty for console-only logging in dev) SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASSWORD= SMTP_USE_TLS=true EMAIL_FROM_ADDRESS=noreply@constructai.dev EMAIL_FROM_NAME=ConstructAI # Frontend FRONTEND_URL=http://localhost:3000 NEXT_PUBLIC_API_URL=http://localhost:8000