宿主总览(Hosts)
本项目采用「一个聚合主宿主 + 多个专用宿主」的部署形态。业务模块通过 src/Services/Host/FreeKit.DI/E.cs 的 Modules 字典注册到主宿主;专用宿主则承载定时任务、消息处理、授权服务等独立职责,便于按需扩缩与隔离。
主宿主:FreeKit.Host
聚合全部业务模块(identity、identity-inf、platform、cmskit、member),是所有模块 API 的统一入口。
dotnet run --project src/Services/Host/FreeKit.Host
- 模块注册:
src/Services/Host/FreeKit.DI/E.cs - PathBase:
/kit_api(由环境变量ASPNETCORE_PATHBASE控制) - Swagger:
{pathBase}/swagger,RapiDoc:{pathBase}/r - 健康检查:
{pathBase}/health
启动前请参考 快速开始 配置数据库与
appsettings.Development.json。
专用宿主
| 宿主 | 项目路径 | 用途 |
|---|---|---|
| 主宿主 | src/Services/Host/FreeKit.Host | 聚合所有业务模块 API |
| 定时任务 | src/Services/Host/FreeKit.Job.Host | FreeScheduler 定时任务执行 |
| 消息处理 | src/Services/Host/FreeKit.MessageHandler.Host | 消息队列 / SignalR 后端处理 |
| 健康检查 | src/Services/Host/FreeKit.HealthChecks | HealthChecks UI 独立面板 |
| 授权服务 | src/Services/Auth/FreeKit.Auth.Host | OpenIddict OAuth2/OIDC 授权服务器 |
| Identity | src/Services/Identity/FreeKit.Identity.Host | Identity 模块独立宿主 |
| BasicIdentity | src/Services/Identity/FreeKit.BasicIdentity.Host | 基础 Identity 宿主 |
| Platform | src/Services/Platform/FreeKit.Platform.Host | Platform 模块独立宿主 |
| 代码生成 | src/Services/CG/FreeKit.CodeGen.Host | CodeGen 工具宿主 |
启动任意专用宿主:
dotnet run --project src/Services/Auth/FreeKit.Auth.Host
dotnet run --project src/Services/Host/FreeKit.Job.Host
端口与环境
- 各宿主的监听端口由其
Properties/launchSettings.json中的applicationUrl决定,可按部署需要调整。 - 跨网络部署时,注意
Auth.Host的回调地址、证书路径与各宿主的IdentityApi/CmsKitClient等环境变量保持一致(见 Auth 配置)。 - 反向代理(Nginx)下通过
ASPNETCORE_PATHBASE设置 PathBase,使主宿主 API 统一挂在/kit_api下。
模块启停
通过编辑 E.Modules 增删键值即可控制主宿主加载哪些模块:
public static readonly Dictionary<string, Type> Modules = new(StringComparer.OrdinalIgnoreCase)
{
{ "identity", typeof(IdentityModuleStartup) },
{ "identity-inf", typeof(IdentityInfrastructureModuleStartup) },
{ "platform", typeof(PlatformModuleStartup) },
{ "cmskit", typeof(CmsKitModuleStartup) },
{ "member", typeof(MemberModuleStartup) },
};