# EasyFlow EasyFlow 是一个面向企业场景的 Java AI 应用开发平台,提供智能体、工作流编排、知识库(RAG)、插件调用、MCP 接入和系统管理能力。 当前后端已基于 `easy-agents` 与 `easy-agents-flow` 生态进行整合。 ## 核心模块 ### 后端聚合模块 - `easyflow-api`:对外 API 层,包含 admin/public/usercenter/mcp 接口。 - `easyflow-commons`:公共能力层(基础工具、AI 公共组件、缓存、文件存储、验证码、鉴权等)。 - `easyflow-modules`:业务模块层(AI、系统、日志、任务、数据中心、认证等)。 - `easyflow-starter`:启动层,`easyflow-starter-all` 为完整可运行服务。 ### 前端项目 - `easyflow-ui-admin`:管理后台前端。 - `easyflow-ui-usercenter`:用户中心前端。 - `easyflow-ui-websdk`:Web SDK 示例/开发工程。 ## 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8+ - Redis 6+ - Node.js >= 20.10.0 - pnpm >= 9.12.0 ## 快速启动(开发环境) ### 1. 初始化数据库 只需要提前创建空库,例如: ```sql CREATE DATABASE easyflow CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 表结构、Quartz 表和基础数据会在后端启动时由 Flyway 自动迁移完成。 当前初始化脚本仅保留 3 段:`V1__quartz.sql`、`V2__easyflow_schema.sql`、`V3__easyflow_seed.sql`。 ### 2. 启动后端 在项目根目录执行: ```bash mvn -DskipTests clean package java -jar easyflow-starter/easyflow-starter-all/target/easyflow-starter-all-0.0.1.jar --spring.profiles.active=dev ``` 默认端口:`8111`(见 `easyflow-starter/easyflow-starter-all/src/main/resources/application.yml`)。 首次连接空库时,应用会自动执行 `db/migration` 下的迁移脚本并初始化默认管理员、菜单、角色和模型服务商数据。 ### 3. 启动前端 管理后台: ```bash cd easyflow-ui-admin pnpm install pnpm dev ``` 用户中心: ```bash cd easyflow-ui-usercenter pnpm install pnpm dev ``` 默认测试账号:`admin / Easy@2026` ## 后端 Jar 包构建与部署 ### 构建 Jar ```bash mvn -DskipTests -Dmaven.javadoc.skip=true clean package ``` 产物路径: - `easyflow-starter/easyflow-starter-all/target/easyflow-starter-all-0.0.1.jar` ### 启动 Jar(生产建议) ```bash java -jar easyflow-starter/easyflow-starter-all/target/easyflow-starter-all-0.0.1.jar --spring.profiles.active=prod ``` 生产环境同样只需要保证目标数据库已创建为空库,Flyway 会在应用启动时自动完成迁移。 可通过环境变量覆盖关键配置(示例): ```bash SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1:3306/easyflow?useInformationSchema=true&characterEncoding=utf-8 SPRING_DATASOURCE_USERNAME=easyflow SPRING_DATASOURCE_PASSWORD=123456 SPRING_REDIS_HOST=127.0.0.1 SPRING_REDIS_PASSWORD=your_redis_password ``` ## 前端 dist 包构建与部署 ### 构建 dist 管理后台: ```bash cd easyflow-ui-admin pnpm install pnpm run build ``` 用户中心: ```bash cd easyflow-ui-usercenter pnpm install pnpm run build ``` 构建产物: - `easyflow-ui-admin/app/dist` - `easyflow-ui-usercenter/app/dist` ### 部署方式(Nginx) 将 dist 目录部署到 Nginx 静态目录,并配置反向代理: - `/api/` -> 后端服务 - `/userCenter/` -> 后端服务 可直接参考: - `easyflow-ui-admin/scripts/deploy/nginx.conf` - `easyflow-ui-usercenter/scripts/deploy/nginx.conf` ## Docker Compose 一键部署(可选) 在项目根目录执行: ```bash docker compose up --build -d ``` 说明: - `easyflow-api` 默认使用根目录 `Dockerfile`,会先在容器中构建并安装 `easy-agents`,再构建 `easyflow` 后端。 - 由于依赖 `easy-agents` 源码,`docker-compose.yml` 中后端构建上下文为上级目录(包含 `easyflow` 与 `easy-agents` 的同级目录)。 - ARM 服务器可直接构建(基础镜像支持 `linux/arm64`)。 默认端口: - 后端 API:`8080` - Admin:`8081` - UserCenter:`8082`