配置项参考
所有配置项均来自 appsettings.Development.json(开发环境)或 Docker Compose 的 .env 文件(容器环境)。下面按功能分节说明。
数据库连接
项目使用 FreeSql 多数据源,连接字符串按命名段区分,各段格式相同:
"ConnectionStrings": {
"DefaultDB": "0",
"UseJsonMap": true,
"MySql": "Data Source=localhost;Port=3308;User ID=root;Password=root;Initial Catalog=freekit;Charset=utf8mb4;SslMode=none;Max pool size=20;Connection LifeTime=20",
"Redis": "localhost:6379,password=,defaultDatabase=1"
}
| 字段 | 说明 |
|---|---|
DefaultDB | 默认数据库类型枚举值(0=MySQL,1=SQLServer,2=PostgreSQL,4=SQLite) |
UseJsonMap | 启用 FreeSql JSON 列映射 |
MySql / SqlServer / PostgreSQL | 对应数据库驱动连接字符串 |
Redis | FreeRedis 连接字符串(格式:host:port,password=xxx,defaultDatabase=n) |
各模块独立数据库:
| 配置段名 | 用途 |
|---|---|
ConnectionStrings | 主业务库(CmsKit / Identity / IM 等) |
ShortUrlConnectionStrings | 短链模块 |
FileConnectionStrings | 文件管理模块 |
LogConnectionStrings | Serilog 结构化日志 |
MeiliSearch
"MeiliSearch": {
"Enable": false,
"Host": "http://localhost:17700",
"ApiKey": "your-master-key"
}
| 字段 | 说明 |
|---|---|
Enable | 是否启用 MeiliSearch 搜索;false 时回退到数据库查询 |
Host | MeiliSearch 服务地址 |
ApiKey | MeiliSearch Master Key(生产环境必须设置) |
搜索建议(Search)
"Search": {
"ArticleSuggestionScore": 1.0,
"ShortMsgSuggestionScore": 0.5
}
| 字段 | 说明 |
|---|---|
ArticleSuggestionScore | 文章搜索结果权重分(用于搜索建议排序) |
ShortMsgSuggestionScore | 沸点搜索结果权重分 |
缓存(Cache)
"Cache": {
"Enable": true
}
Enable: true 时启用 FreeRedis 缓存层,false 时跳过缓存直接查库(调试用)。
文件存储(FileStorageOption)
"FileStorageOption": {
"RootPath": "/data/files",
"FileTableCount": 64
}
| 字段 | 说明 |
|---|---|
RootPath | 本地文件存储根目录(使用本地存储时) |
FileTableCount | 文件分表数量(64 或 128,CodeFirst 建表时使用) |
短链(ShortUrlOption)
"ShortUrlOption": {
"Salt": "ShortUrlApi",
"MinHashLength": 6,
"FileTableCount": 64
}
| 字段 | 说明 |
|---|---|
Salt | Hashids 加盐值,生产环境应换为随机字符串 |
MinHashLength | 短链最小字符长度 |
FileTableCount | 短链分表数量 |
路径前缀(ASPNETCORE_PATHBASE)
"ASPNETCORE_PATHBASE": "/kit_api"
配置反向代理转发时的路径前缀。开发环境可设置为空字符串 ""。
Basic Auth(Swagger 保护)
"Basic": {
"Enable": false,
"ProtectPaths": ["/swagger/index.html"],
"Realm": "https://yourdomain.com/",
"UserName": "admin",
"UserPassword": "your-password"
}
Enable: true 后,访问 ProtectPaths 中的路径需要 Basic Auth,用于保护生产环境的 API 文档界面。
飞书 SDK(FeishuNetSdk)
"FeishuNetSdk": {
"AppId": "cli_xxx",
"AppSecret": "xxx",
"EncryptKey": "xxx",
"VerificationToken": "xxx",
"EnableLogging": true,
"IgnoreStatusException": true
}
用于飞书机器人 / 飞书登录 OAuth 功能(可选)。
AI 推荐(dashScope)
"dashScope": {
"apiKey": "sk-xxx",
"chatCompletionModelId": "qwen-72b-chat",
"textEmbeddingModelId": "text-embedding-v2"
}
用于 CmsKit 内容推荐和 AI 摘要生成(可选),使用阿里云 DashScope 服务。
OAuth 白名单(OAuthRedirectWhitelistDomains)
"OAuthRedirectWhitelistDomains": [
"localhost",
"yourdomain.com"
]
OAuth 登录回调 URL 的域名白名单,防止重定向攻击。
内服务地址(Host)
"Host": {
"IdentityApi": "https://localhost:7000"
}
服务间调用地址。仅在拆分为多个独立宿主进程时有效。
Docker 环境变量(.env)
容器部署时所有配置通过 .env 文件注入,主要变量:
# 时区
TZ=Asia/Shanghai
# 端口映射
MYSQL_PORT=13306
REDIS_PORT=16379
RABBITMQ_PORT=5672
RABBITMQ_MANAGEMENT_PORT=15673
MEILI_PORT=17700
HOST_API_PORT=18080
JOB_API_PORT=18081
MESSAGE_API_PORT=18082
# 密码(生产环境必须修改)
MYSQL_ROOT_PASSWORD=ChangeMe
REDIS_PASSWORD=ChangeMe
RABBITMQ_PASSWORD=ChangeMe
MEILI_MASTER_KEY=ChangeMe
详细变量和连接字符串模板见 build/compose/freekit_pro_modules/.env。