# LobeChat Development Server Configuration
# This file contains environment variables for both LobeChat server mode and Docker compose setup

COMPOSE_FILE="docker-compose.development.yml"

# ⚠️⚠️⚠️ DO NOT USE THE SECRETS BELOW IN PRODUCTION!
UNSAFE_SECRET="ww+0igxjGRAAR/eTNFQ55VmhQB5KE5trFZseuntThJs="
UNSAFE_PASSWORD="CHANGE_THIS_PASSWORD_IN_PRODUCTION"

# Core Server Configuration

# Service Ports Configuration
LOBE_PORT=3010

# Application URL - the base URL where LobeChat will be accessible
APP_URL=http://localhost:${LOBE_PORT}

# Secret key for encrypting vault data (generate with: openssl rand -base64 32)
KEY_VAULTS_SECRET=${UNSAFE_SECRET}

# Database Configuration
# Database name for LobeChat
LOBE_DB_NAME=lobechat

# PostgreSQL password
POSTGRES_PASSWORD=${UNSAFE_PASSWORD}

# PostgreSQL database connection URL
DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@localhost:5432/${LOBE_DB_NAME}

# Database driver type
DATABASE_DRIVER=node

# Redis Cache/Queue Configuration
REDIS_URL=redis://localhost:6379
REDIS_PREFIX=lobechat
REDIS_TLS=0

# Authentication Configuration
# Enable Better Auth authentication
NEXT_PUBLIC_ENABLE_BETTER_AUTH=1

# Better Auth secret for JWT signing (generate with: openssl rand -base64 32)
AUTH_SECRET=${UNSAFE_SECRET}

# Authentication URL
NEXT_PUBLIC_AUTH_URL=${APP_URL}

# SSO providers configuration - using Casdoor for development
AUTH_SSO_PROVIDERS=casdoor

# Casdoor Configuration
# Casdoor service port
CASDOOR_PORT=8000

# Casdoor OIDC issuer URL
AUTH_CASDOOR_ISSUER=http://localhost:${CASDOOR_PORT}

# Casdoor application client ID
AUTH_CASDOOR_ID=a387a4892ee19b1a2249 # DO NOT USE IN PROD

# Casdoor application client secret
AUTH_CASDOOR_SECRET=dbf205949d704de81b0b5b3603174e23fbecc354 # DO NOT USE IN PROD

# Origin URL for Casdoor internal configuration
origin=http://localhost:${CASDOOR_PORT}

# MinIO Storage Configuration
# MinIO service port
MINIO_PORT=9000

# MinIO root user (admin username)
MINIO_ROOT_USER=admin

# MinIO root password
MINIO_ROOT_PASSWORD=${UNSAFE_PASSWORD}

# MinIO bucket for LobeChat files
MINIO_LOBE_BUCKET=lobe

# S3/MinIO Configuration for LobeChat
# S3/MinIO access key ID
S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}

# S3/MinIO secret access key
S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}

# S3/MinIO endpoint URL
S3_ENDPOINT=http://localhost:${MINIO_PORT}

# S3 bucket name for storing files
S3_BUCKET=${MINIO_LOBE_BUCKET}

# Public domain for S3 file access
S3_PUBLIC_DOMAIN=http://localhost:${MINIO_PORT}

# Enable path-style S3 requests (required for MinIO)
S3_ENABLE_PATH_STYLE=1

# Disable S3 ACL setting (for MinIO compatibility)
S3_SET_ACL=0

# Use base64 encoding for LLM vision images
LLM_VISION_IMAGE_USE_BASE64=1

# Search Service Configuration
# SearXNG search engine URL
SEARXNG_URL=http://searxng:8080

# Development Options
# Uncomment to skip authentication during development

# Proxy Configuration (Optional)
# Uncomment if you need proxy support (e.g., for GitHub auth or API access)
# HTTP_PROXY=http://localhost:7890
# HTTPS_PROXY=http://localhost:7890

# AI Model Configuration (Optional)
# Add your AI model API keys and configurations here
# ⚠️  WARNING: Never commit real API keys to version control!
# OPENAI_API_KEY=sk-NEVER_USE_REAL_API_KEYS_IN_CONFIG_FILES
# OPENAI_PROXY_URL=https://api.openai.com/v1
# OPENAI_MODEL_LIST=...