# open-page-config **Repository Path**: zhafei/open-page-config ## Basic Information - **Project Name**: open-page-config - **Description**: 低代码页面配置平台,支持可视化页面设计、动态渲染、数据联动以及 RAG 知识库管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-29 - **Last Updated**: 2026-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 页面配置(page-config) 低代码页面配置平台,支持可视化页面设计、动态渲染、数据联动以及 RAG 知识库管理。 ## 项目结构 ``` page-config ├── backend/ # 后端(Spring Boot Maven 多模块) │ ├── page-config-core/ # 核心库:页面配置引擎 │ ├── page-admin/ # 管理后台服务 │ ├── page-admin-starter/ # 管理后台启动器 │ ├── page-agent/ # Agent 服务 │ ├── page-bi/ # BI 数据服务 │ ├── page-tracer-core/ # 链路追踪核心 │ ├── page-mcp-server/ # MCP Server │ ├── page-mcp-client/ # MCP Client │ ├── page-lib/ # 公共库 │ ├── maven-pack/ # Maven 打包配置 │ └── pom.xml # 父 POM └── frontend/ # 前端(Vue 3 + Vite + TypeScript) ``` ## 技术栈 ### 后端 | 技术 | 版本 | |------|------| | Java | 21 | | Spring Boot | 3.4.5 | | MyBatis-Plus | 3.5.12 | | PostgreSQL | 14+ | | pgvector | 0.7+ | | Spring AI | 1.0+ | | Hutool | 5.8.16 | ### 前端 | 技术 | 版本 | |------|------| | Node.js | ^18.12.0 | | pnpm | ^7.14.1 | | Vue | ^3.3.4 | | Vite | ^4.3.9 | | TypeScript | ~5.1.3 | | Element Plus | ^2.9.10 | | Pinia | 2.0.26 | ## 前端工程 前端位于 `frontend/`,基于 Vue 3 + Vite + TypeScript 构建,使用 Element Plus 作为组件库、Pinia 进行状态管理。 主要目录: ``` frontend/src ├── api/modules/ # 跨模块共用接口(pageDesigner、pageRuntime、message、notify、aiAgent) ├── components/ # 全局通用组件(含 AiChatBox 等) ├── http/ # HTTP 封装(axios + 流式 streamPost) ├── page-designer/ # 低代码页面设计器 ├── page-runtime/ # 低代码页面运行时(渲染引擎) ├── router/ # Vue Router 及路由守卫 ├── stores/ # Pinia 状态管理 ├── styles/ # 全局 SCSS 样式与主题变量 ├── utils/ # 工具函数(storage、cookie、format 等) └── views/ # 业务页面(home、login、system 等) ``` ## 快速开始 ### 后端 **环境要求**:JDK 21、Maven 3.6+、PostgreSQL 14+(需安装 [pgvector](https://github.com/pgvector/pgvector) 扩展) **数据库初始化**: 项目默认使用 `backend/page-admin-starter/src/main/resources/db/postgresql/` 下的 SQL 文件,启动时 `spring.sql.init.mode=always` 会自动建表并导入初始数据。 手动初始化方式: ```bash # 1. 创建数据库 psql -U postgres -f backend/page-admin-starter/src/main/resources/db/postgresql/create_database.sql # 2. 建表 + 初始化菜单、角色、管理员账号 psql -U postgres -d page_config -f backend/page-admin-starter/src/main/resources/db/postgresql/schema.sql psql -U postgres -d page_config -f backend/page-admin-starter/src/main/resources/db/postgresql/data.sql # 3. 在 page_rag 库创建向量扩展 psql -U postgres -d page_rag -c "CREATE EXTENSION IF NOT EXISTS vector;" ``` > 默认管理员账号:`admin` / `admin123` **配置数据库密码**: 所有 profile 的密码都通过 `${PG_PASSWORD:123456}` 读取,可通过环境变量覆盖: ```bash # Linux / macOS export PG_PASSWORD=your_password # Windows set PG_PASSWORD=your_password ``` **构建并启动**: ```bash # 在 backend/ 目录下执行 mvn clean install -DskipTests # 启动管理后台 cd page-admin-starter mvn spring-boot:run ``` ### 前端 **环境要求**:Node.js ^18.12.0、pnpm ^7.14.1 ```bash cd frontend pnpm install pnpm dev ``` 前端开发服务默认运行在 `http://localhost:3000`,API 请求代理到 `http://127.0.0.1:8080`。 ## RAG 知识库(新增) 项目新增 RAG 知识库管理功能,支持: - 知识库 CRUD - 文档上传、分块训练、状态跟踪 - 向量库文档与业务文件记录联动删除 - RAG 对话调试(SSE 流式输出) 前端入口:`/knowledge-base` 前端页面:`frontend/src/views/system/knowledge/index.vue` 后端模块:`backend/page-admin`(业务表)+ `backend/page-agent`(向量库与 AI 能力) 支持的文件类型:`pdf`、`doc`、`docx`、`txt`、`md` ## Docker 部署 **环境要求**:Docker 20.10+、Docker Compose v2 > 当前 `docker-compose.yml` 仍使用 MySQL,需要同步改造为 PostgreSQL + pgvector。临时使用 Docker 跑数据库可参考: ```bash # 启动 PostgreSQL + pgvector docker run -d --name page-config-pgvector \ -e POSTGRES_PASSWORD=your_password \ -p 5432:5432 \ pgvector/pgvector:pg16 # 创建业务库和向量库 docker exec -it page-config-pgvector psql -U postgres -c "CREATE DATABASE page_config;" docker exec -it page-config-pgvector psql -U postgres -c "CREATE DATABASE page_rag;" docker exec -it page-config-pgvector psql -U postgres -d page_rag -c "CREATE EXTENSION IF NOT EXISTS vector;" ``` 启动应用容器时配置环境变量: ```bash SPRING_PROFILES_ACTIVE=demo PG_PASSWORD=your_password ``` 后端默认通过环境变量读取数据库连接,也可以挂载自定义配置文件: ```bash # 将 application.yml 放到 backend/config/ 目录下 # docker-compose 会自动挂载到容器的 /app/config/ ``` ## 构建 & 部署 ### 后端打包 在 `backend/` 目录下执行,以 `page-admin-starter` 为例: ```bash cd backend mvn clean package -pl page-admin-starter -am -DskipTests ``` 打包产物位于 `page-admin-starter/target/`,包含: - `page-admin-starter-{version}.jar` — 可执行 fat jar ### 后端运行 ```bash java -jar page-admin-starter-{version}.jar --spring.config.location=./application.yml ``` > 需要提前准备 `application.yml`,配置数据库连接等。 ### 前端打包 ```bash cd frontend pnpm install pnpm build # 生产环境 pnpm build:oss # staging 环境 ``` 产物输出到 `frontend/dist/`,静态文件部署到 Web 服务器(Nginx 等)时需将 `base` 路径设为 `/web/`,并配置反向代理将 `/api` 转发到后端服务。 **Nginx 参考配置:** ```nginx location /web/ { alias /path/to/frontend/dist/; try_files $uri $uri/ /web/index.html; } location /api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /websocket/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } ``` ## Git 提交规范 使用 `pnpm run git` 代替手动提交,会触发交互式 commitizen 流程。 | 类型 | 说明 | |------|------| | `feature` | 新功能、新特性 | | `fix` | 修复 bug | | `style` | 样式调整(不影响功能) | | `refactor` | 代码重构 | | `perf` | 性能优化 | | `docs` | 文档修改 | | `chore` | 构建/工具变动 | | `build` | 影响构建或依赖的修改 | | `ci` | 部署架构相关 | | `revert` | 回滚提交 | | `release` | 发布新版本 | ## ⚠️ License Notice This project uses a **dual‑license model**. - ✅ Personal learning & research: Free. Individuals may view, read and run source code locally for non‑commercial study. - 🔒 Commercial usage restriction: Any commercial scenarios including enterprise deployment, commercial product development, selling derivative works, require prior written commercial authorization from the author. Contact: `buer_y@163.com` --- ## ⚠️ 许可声明 本项目采用**双许可模式**。 - ✅ 个人学习与研究:免费,个人可查看、阅读并本地运行源代码,仅限非商业学习。 - 🔒 商业使用限制:企业部署、开发商业产品、售卖衍生作品等一切商业场景,必须事先获得作者书面商业授权。 联系邮箱:`buer_y@163.com`