Skip to main content

配置说明

雷驼智能引擎使用混合配置系统,支持 TOML 配置文件和环境变量覆盖。本指南将详细介绍所有可用的配置选项。

配置优先级

配置按以下优先级生效(从高到低):

  1. 环境变量 - 覆盖所有其他值
  2. TOML 配置文件 - 提供默认值和结构
  3. 内置默认值 - 兜底值

配置方法

方法一:环境变量(推荐用于生产环境)

在根目录下创建 .env 文件:

# 数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your_password
DB_NAME=dathor
DB_SSL=false
DB_MAX_CONNECTIONS=20

# 应用程序配置
APP_PORT=8000
ENABLE_DEBUG=false
BASE_URL=https://your-domain.com
DEFAULT_LANGUAGE=zh-Hans

# 缓存配置
CACHE_MODE=hybrid
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0

# 安全配置
COOKIE_SECURE=true
COOKIE_SAME_SITE=Strict
SESSION_TIMEOUT=604800

# 监控配置
METRICS_ENABLED=false
TRACING_ENABLED=false
LOG_LEVEL=info

# API配置
API_DEFAULT_TIMEOUT=30000
API_MAX_REQUEST_SIZE=10MB
API_CORS_ENABLED=true

# 邮件服务配置
EMAIL_ENABLED=false
EMAIL_PROVIDER=smtp
EMAIL_SMTP_HOST=localhost
EMAIL_SMTP_PORT=587
EMAIL_SMTP_SECURE=true
EMAIL_SMTP_USER=
EMAIL_SMTP_PASSWORD=
EMAIL_FROM_EMAIL=
EMAIL_FROM_NAME=Dathor

# 存储配置
STORAGE_PROVIDER=filesystem
FILE_BASE_URL=

方法二:TOML 配置文件

编辑 config.toml 文件:

[application]
port = 8000
enable_debug = false
base_url = ""
default_language = "zh-Hans"

[database]
host = "localhost"
port = 5432
user = "postgres"
password = ""
name = "dathor"
ssl = false
max_connections = 10

[cache]
mode = "memory"
redis_host = "localhost"
redis_port = 6379
redis_password = ""
redis_db = 0

[security]
cookie_secure = false
cookie_same_site = "lax"
session_timeout = 3600

[monitoring]
metrics_enabled = false
tracing_enabled = false
log_level = "info"

[api]
default_timeout = 30000
max_request_size = "10MB"
cors_enabled = true

[email]
enabled = false
provider = "smtp"
smtp_host = "localhost"
smtp_port = 587
smtp_secure = true
smtp_user = ""
smtp_password = ""
from_email = ""
from_name = "Dathor"

[storage]
provider = "filesystem"
file_base_url = ""

配置选项详解

数据库配置

变量名替代变量描述默认值必需
DB_HOSTPGHOST数据库主机地址localhost
DB_PORTPGPORT数据库端口5432
DB_USERPGUSER数据库用户名postgres
DB_PASSWORDPGPASSWORD数据库密码(空)
DB_NAMEPGDATABASE数据库名称dathor
DB_SSL启用 SSL 连接false
DB_MAX_CONNECTIONS最大数据库连接数10

应用程序配置

变量名描述默认值必需
APP_PORT应用程序端口8000
ENABLE_DEBUG启用调试模式false
BASE_URL应用基础 URL(空)
DEFAULT_LANGUAGE默认语言设置zh-Hans

缓存配置

变量名描述默认值必需
CACHE_MODE缓存模式memory
REDIS_HOSTRedis 主机地址localhost
REDIS_PORTRedis 端口6379
REDIS_PASSWORDRedis 密码(空)
REDIS_DBRedis 数据库索引0
MEMORY_CACHE_MAX_SIZE内存缓存最大条目数50000
MEMORY_CACHE_TTL内存缓存TTL(秒)300

缓存模式说明

  • memory: 仅使用内存缓存
  • redis: 仅使用Redis缓存
  • hybrid: 混合模式,L1内存缓存 + L2 Redis缓存

安全配置

变量名描述默认值必需
COOKIE_SECURECookie 安全标志false
COOKIE_SAME_SITECookie SameSite 属性lax
SESSION_TIMEOUT会话超时时间(秒)3600

监控配置

变量名描述默认值必需
METRICS_ENABLED启用指标收集false
TRACING_ENABLED启用链路追踪false
LOG_LEVEL日志级别info

API配置

变量名描述默认值必需
API_DEFAULT_TIMEOUTAPI默认超时(毫秒)30000
API_MAX_REQUEST_SIZE最大请求体大小10MB
API_CORS_ENABLED启用跨域请求true

邮件服务配置

变量名描述默认值必需
EMAIL_ENABLED启用邮件服务false
EMAIL_PROVIDER邮件提供商smtp
EMAIL_SMTP_HOSTSMTP服务器地址localhost
EMAIL_SMTP_PORTSMTP服务器端口587
EMAIL_SMTP_SECURE启用SMTP安全连接true
EMAIL_SMTP_USERSMTP用户名(空)
EMAIL_SMTP_PASSWORDSMTP密码(空)
EMAIL_FROM_EMAIL发件人邮箱地址(空)
EMAIL_FROM_NAME发件人姓名Dathor

邮件提供商说明

  • smtp: 使用SMTP服务器发送邮件
  • sendgrid: 使用SendGrid服务发送邮件
  • ses: 使用AWS SES服务发送邮件

存储配置

变量名描述默认值必需
STORAGE_PROVIDER存储提供商filesystem
FILE_BASE_URL文件基础URL(空)

存储提供商说明

  • filesystem: 使用本地文件系统存储
  • minio: 使用MinIO对象存储服务

MinIO配置(当 STORAGE_PROVIDER=minio 时需要)

变量名描述默认值必需
MINIO_ENDPOINTMinIO服务器地址localhost
MINIO_PORTMinIO服务器端口9000
MINIO_USE_SSL启用SSL连接false
MINIO_ACCESS_KEYMinIO访问密钥(空)
MINIO_SECRET_KEYMinIO私钥(空)
MINIO_BUCKET存储桶名称dathor
MINIO_REGION存储区域us-east-1

快速开始配置

对于本地开发,最简单的方式是创建 .env 文件,只设置数据库密码:

DB_PASSWORD=your_database_password

其他配置将使用 config.toml 中的默认值。

容器化部署配置

对于 Docker 或 Kubernetes 部署,推荐使用环境变量:

  • Docker Compose: 参考 docker-compose.example.yml
  • Kubernetes: 参考 k8s-deployment.example.yaml
  • 云平台: 使用平台提供的环境变量设置功能

配置验证

启动服务后,可以通过以下方式验证配置:

  1. 查看启动日志中的配置信息
  2. 访问 /health 端点检查服务状态
  3. 访问管理界面查看配置状态

常见配置问题

Q: 数据库连接失败

A: 检查数据库配置:

  • 确认 DB_HOSTDB_PORT 正确
  • 验证 DB_USERDB_PASSWORD
  • 确保数据库服务正在运行

Q: Redis 连接失败

A: 检查 Redis 配置:

  • 确认 REDIS_HOSTREDIS_PORT 正确
  • 验证 REDIS_PASSWORD(如果设置了密码)
  • 确保 Redis 服务正在运行

Q: 邮件发送失败

A: 检查邮件配置:

  • 确认 SMTP 服务器设置正确
  • 验证用户名和密码
  • 检查网络连接和防火墙设置

下一步