Helix

介绍

Helix 是一个全栈企业级应用模板,旨在加速生产级业务应用的开发。它提供了预构建的基础,包含企业应用所需的全部基本功能,使团队能够专注于业务逻辑而非基础设施。

项目由两个组件构成:

  • Helix Server — 基于 Spring Boot 的后端,提供 REST API、身份认证、权限管理和数据管理。
  • Helix Web — 基于 React 的单页应用前端,具备现代化的 UI、基于角色的路由和企业级身份集成。

Helix 旨在作为项目的起点使用。Fork 或克隆它,然后在现成的基础上开始构建您自己的业务功能。

特性

后端(Helix Server)

  • 身份认证与授权 — 基于 JWT 的 access token 和 refresh token 流程,配合 Spring Security。支持 Microsoft Entra ID(Azure AD)集成。
  • 基于角色的访问控制 — 通过角色、权限和菜单级访问控制实现细粒度权限管理。
  • 用户与组织管理 — 用户、部门、职位和角色的完整增删改查。
  • 菜单管理 — 层级菜单树,支持按角色配置可见性。
  • 资产管理 — 文件上传至 AWS S3,支持 CDN 前缀处理。
  • 设置管理 — 类型化的应用配置项持久化至数据库。
  • 验证码集成 — 登录和注册流程中的图形验证码校验。
  • Redis 缓存 — 高性能缓存,支持可配置 TTL 和自定义序列化器。
  • 数据访问 — Spring Data JPA 与 MyBatis 混合持久化方案。
  • 校验 — Bean Validation 分组校验与自定义校验约束。

前端(Helix Web)

  • 企业级身份认证 — 通过 MSAL 实现 Microsoft Entra ID 登录。可扩展的社交登录提供商架构(Microsoft、Google、GitLab、Slack、Discord、钉钉、飞书、企业微信、邮箱/密码)。
  • 仪表盘布局 — 响应式管理后台,可折叠侧边栏,基于角色的菜单渲染。
  • 用户管理 — 数据表格支持搜索、分页,添加/编辑对话框,角色分配和手机号校验。
  • 角色与菜单管理 — 角色增删改查与权限分配。基于树形的菜单配置。
  • 部门与职位 — 组织层级管理界面。
  • 路由保护 — 在页面加载前检查认证和授权状态。
  • 状态管理 — Redux Toolkit 配合 Redux Persist 实现认证 token 的持久化。
  • HTTP 客户端 — 基于 Axios 封装的请求客户端,自动注入 JWT token 并在 401 时自动刷新。

架构

技术栈
前端React 19、TypeScript、Tailwind CSS 4、Ant Design 6、React Router 7、Redux Toolkit、Axios、MSAL
后端Spring Boot 3.5、Java 17、Spring Security、MyBatis、Spring Data JPA
数据库PostgreSQL(使用 Flyway 迁移)
缓存Redis(会话和 token 存储)
存储AWS S3(资源上传)

前端通过 RESTful JSON API 与后端通信。认证流程使用短有效期的 JWT access token,refresh token 存储在 Redis 中。Microsoft Entra ID 集成在前端通过 MSAL 处理,并在后端进行校验。

代码仓库

快速开始

Helix 是一个模板项目。启动新项目的步骤:

  1. Fork 或克隆 helix-serverhelix-web 两个仓库。
  2. 在后端配置您的数据库、Redis 和 S3 设置。
  3. 在前端配置您的认证提供商和 API 基础地址。
  4. 启动后端:./gradlew bootRun
  5. 启动前端:pnpm install && pnpm dev

许可证

Helix 是采用 MIT 许可证发布的开源软件。