FreeKitModules
FreeKitModules 是基于 .NET 10、FreeSql、Autofac 和 IGeekFan.FreeKit.Modularity 构建的模块化单体应用。仓库既包含 CmsKit、Identity、Member、Platform 等业务模块,也包含 FreeKit 框架包、共享构建块、多个运行宿主以及独立的 Auth、BasicIdentity、CodeGen 项目。
先建立三个认识
- 模块化不等于微服务:主业务模块默认由
FreeKit.Host组合在同一进程中,共享部署和基础设施;Auth、BasicIdentity、CodeGen 才是独立项目边界。 - 核心业务与 HTTP 接入分离:CmsKit、Identity、Member、Platform 均有核心项目和
*.HttpApi项目,后台宿主不加载 Controller。 - 源码是配置与契约的最终依据:端口、PathBase、模块注册和生产配置分散在各宿主的
Program.cs、launchSettings.json、appsettings*.json与build/中,文档会标明对应入口。
能力地图
| 能力 | 当前实现 |
|---|---|
| 内容社区 | CmsKit:文章、短内容、评论、互动、推荐、搜索、审核与通知 |
| 身份与权限 | Identity:账户、用户、角色、权限、租户、组织、设备、2FA、AccessKey |
| 会员运营 | Member:等级、积分、分组、标签与地址 |
| 平台工具 | Platform:待办、短链接、节假日、消息渠道、热榜、导航、TTS 等子域 |
| 授权中心 | auth/ 中的 OpenIddict OAuth2/OIDC 授权服务 |
| 框架能力 | FreeKit 审计实体、FreeSql 仓储、模块化启动、身份存储、缓存与对象存储扩展 |
| 运行与运维 | API / Job / Message / HealthChecks 宿主、Docker Compose、OpenTelemetry、OpenObserve、Pyroscope |
系统一览
更完整的边界与启动流程见系统架构总览。
最短上手路径
git clone --recurse-submodules https://github.com/luoyunchong/freekit-pro-modules.git
cd freekit-pro-modules
dotnet restore FreeKitModules.slnx
dotnet build FreeKitModules.slnx -c Release
dotnet run --project src/Services/Host/FreeKit.Host --launch-profile https-dev
开发配置默认启用 /kit_api PathBase。主宿主启动后访问:
- Swagger UI:
https://localhost:7000/kit_api/swagger - RapiDoc:
https://localhost:7000/kit_api/r - 健康检查:
https://localhost:7000/kit_api/health
数据库与外部依赖仍需按本机环境配置,完整步骤见快速开始。
按任务找文档
| 你要做什么 | 从这里开始 |
|---|---|
| 首次运行项目 | 快速开始 |
| 找到某个项目或入口 | 仓库与解决方案地图 |
| 理解宿主和模块组合 | 宿主总览 → 系统架构总览 |
| 新增业务能力 | 分层与数据访问 → 创建业务模块 |
| 修改身份、内容或平台功能 | 业务模块 |
| 选择或维护 FreeKit 包 | FreeKit 功能总览 |
| 部署与排障 | FreeKit 部署 → 可观测性指南 |
文档维护原则
docs-site/ 是本仓库唯一的项目文档入口。页面应引用真实源码路径、类型和配置键;计划或历史决策会放在“设计与演进”分类,不与当前用法混在一起。