跳到主要内容

配置项参考

所有配置项均来自 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对应数据库驱动连接字符串
RedisFreeRedis 连接字符串(格式:host:port,password=xxx,defaultDatabase=n

各模块独立数据库:

配置段名用途
ConnectionStrings主业务库(CmsKit / Identity / IM 等)
ShortUrlConnectionStrings短链模块
FileConnectionStrings文件管理模块
LogConnectionStringsSerilog 结构化日志

MeiliSearch

"MeiliSearch": {
"Enable": false,
"Host": "http://localhost:17700",
"ApiKey": "your-master-key"
}
字段说明
Enable是否启用 MeiliSearch 搜索;false 时回退到数据库查询
HostMeiliSearch 服务地址
ApiKeyMeiliSearch 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
}
字段说明
SaltHashids 加盐值,生产环境应换为随机字符串
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