admin-config 0.1.1

Configuration management library for Rust web applications with support for multiple databases, authentication, security, and third-party services
Documentation
# Actix Admin Server 配置文件示例
# 复制此文件为 config.toml 并修改相应的配置项
# 执行 `cargo run -p admin-config -- init` 自动生成配置文件

# ==================== 服务器配置 ====================
[server]
name = "actix-admin-server"
version = "0.1.0"
# 服务器监听端口(可通过环境变量 PORT 或 SERVER__PORT 覆盖)
port = 3400
# 服务器监听地址
host = "0.0.0.0"
# 日志级别: trace, debug, info, warn, error(可通过环境变量 RUST_LOG 或 SERVER__LOG_LEVEL 覆盖)
log_level = "info"

# ==================== 数据库配置 ====================

# MongoDB 配置
[database.mongodb]
host = "localhost"
port = 27017
database = ""
username = ""
password = ""
max_pool_size = 10
connect_timeout = 10

# MySQL 配置
[database.mysql]
host = "localhost"
port = 3306
database = ""
username = ""
password = ""
max_pool_size = 10
connect_timeout = 10

# PostgreSQL 配置
[database.postgresql]
host = "localhost"
port = 5432
database = ""
username = ""
password = ""
max_pool_size = 10
connect_timeout = 10

# SQLite 配置
[database.sqlite]
path = "./data.db"
max_pool_size = 10

# Qdrant 向量数据库配置
[database.qdrant]
host = "localhost"
port = 6333
use_https = false

# SeekDB 配置
[database.seekdb]
host = "localhost"
port = 2881
database = ""
username = ""
password = ""

# Neo4j 图数据库配置
[database.neo4j]
host = "localhost"
port = 7687
database = "neo4j"
username = ""
password = ""
use_encryption = false
max_pool_size = 10
connect_timeout = 10

# ==================== Redis 配置 ====================
[redis]
host = "localhost"
port = 6379
database = 0
max_pool_size = 20
connect_timeout = 5

# ==================== JWT 认证配置 ====================
[auth]
# JWT Token 密钥(32字节,64位十六进制,256位)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
# 可通过环境变量 TOKEN_SECRET 或 AUTH__TOKEN_SECRET 覆盖
token_secret = "2d431f60cdc79e1a65fdffc4dc225cf394ec5d39a891a7b059209e91beea353b"
# Token 过期时间(小时)
token_expiry_hours = 24
# Refresh Token 过期时间(天)
refresh_token_expiry_days = 7

# ==================== 邮件服务配置 ====================
[email]
# SMTP 服务器地址(可通过环境变量 SMTP_HOST 或 EMAIL__SMTP_HOST 覆盖)
smtp_host = ""
# SMTP 端口(Gmail: 587, QQ邮箱: 587, 163邮箱: 465)
smtp_port = 587
# SMTP 用户名(通常是完整的邮箱地址)
smtp_username = ""
# SMTP 密码(Gmail 需要使用应用专用密码)
smtp_password = ""
# 发件人名称
from_name = ""
# 发件人邮箱
from_email = ""
# 是否启用 TLS
enable_tls = true

# ==================== 短信服务配置 ====================
[sms]
# 短信服务商(tencent/aliyun)
provider = "tencent"
# 短信应用 ID
app_id = ""
# 短信应用 Key/Secret
app_key = ""
# 短信签名
sign_name = ""
# 验证码模板 ID
template_id = ""

# 腾讯云短信配置(可选)
[sms.tencent]
sdk_app_id = ""
secret_id = ""
secret_key = ""
region = ""

# 阿里云短信配置(可选)
[sms.aliyun]
access_key_id = ""
access_key_secret = ""
region = ""

# ==================== 验证码配置 ====================
[verification_code]
# 验证码长度(位数)
length = 6
# 验证码有效期(秒,300秒 = 5分钟)
ttl = 300
# 发送间隔限制(秒,60秒 = 1分钟)
send_interval = 60

# ==================== 对象存储配置 ====================
[cos]
# 对象存储提供商:tencent(腾讯云COS)、aliyun(阿里云OSS)、aws(AWS S3)、minio(MinIO)、huawei(华为云OBS)、rustfs(本地文件系统)
provider = "tencent"

# 腾讯云 COS 配置
[cos.tencent]
secret_id = ""
secret_key = ""
bucket = ""
region = ""

# 阿里云 OSS 配置
[cos.aliyun]
access_key_id = ""
access_key_secret = ""
bucket = ""
endpoint = ""

# AWS S3 配置
[cos.aws]
access_key_id = ""
secret_access_key = ""
bucket = ""
region = ""

# MinIO 配置
[cos.minio]
access_key = ""
secret_key = ""
bucket = ""
endpoint = ""
use_ssl = false

# 华为云 OBS 配置
[cos.huawei]
access_key_id = ""
secret_access_key = ""
bucket = ""
endpoint = ""

# RustFS 本地文件系统配置
[cos.rustfs]
root_path = "./uploads"
public_url_prefix = "/uploads"
auto_create_dir = true

# ==================== 安全配置 ====================
[security]
# AES 加密密钥(32字节,64位十六进制)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
aes_key = "f83e65f5f59b6e77e4f0e5753dd1151a6a0ebc7fc7f7f06c4465a0672c7a1125"

# AES 初始化向量(16字节,32位十六进制)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
aes_iv = "3c7affc00bc3cf7a36a434dfea590408"

# API 密钥加密密钥(32字节,64位十六进制,用于 AES-256-GCM 加密 API 密钥)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
api_key_encrypt_key = "97030501e4ec6b771acf30bed2a38c7f119902e69865f543c267eba9216d8065"

# 密码加密盐值(16字节,32位十六进制)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
password_salt = "690b1f832259e3d2d58dd154d01b1e83"

# 是否启用 CORS
enable_cors = true

# 允许的来源(多个用逗号分隔,空字符串表示不限制)
allowed_origins = ""

# 是否启用 CSRF 保护
enable_csrf = false

# ==================== 会话配置 ====================
[session]
# 会话密钥(32字节,64位十六进制,256位)
# ⚠️ 请勿手动填写,使用 `cargo run -p admin-config -- init` 自动生成
secret_key = "e43fe24d18daaef704a7c0f4db4ad76ef516322e4a2e6be576305059a6fe95b6"
# 会话过期时间(秒,86400秒 = 24小时)
max_age = 86400
# 是否使用 HttpOnly Cookie
http_only = true
# 是否使用 Secure Cookie(生产环境建议启用,需要 HTTPS)
secure = false
# Cookie 路径
cookie_path = "/"