跳到主要内容

宿主总览(Hosts)

本项目采用「一个聚合主宿主 + 多个专用宿主」的部署形态。业务模块通过 src/Services/Host/FreeKit.DI/E.csModules 字典注册到主宿主;专用宿主则承载定时任务、消息处理、授权服务等独立职责,便于按需扩缩与隔离。

主宿主: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.HostFreeScheduler 定时任务执行
消息处理src/Services/Host/FreeKit.MessageHandler.Host消息队列 / SignalR 后端处理
健康检查src/Services/Host/FreeKit.HealthChecksHealthChecks UI 独立面板
授权服务src/Services/Auth/FreeKit.Auth.HostOpenIddict OAuth2/OIDC 授权服务器
Identitysrc/Services/Identity/FreeKit.Identity.HostIdentity 模块独立宿主
BasicIdentitysrc/Services/Identity/FreeKit.BasicIdentity.Host基础 Identity 宿主
Platformsrc/Services/Platform/FreeKit.Platform.HostPlatform 模块独立宿主
代码生成src/Services/CG/FreeKit.CodeGen.HostCodeGen 工具宿主

启动任意专用宿主:

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) },
};

相关文档