# knowledge **Repository Path**: WUJIACHEN123/knowledge ## Basic Information - **Project Name**: knowledge - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-03 - **Last Updated**: 2026-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业知识库管理系统 基于 **RuoYi v3.9.2** 前后端分离脚手架开发的企业知识库,支持文档分类、版本管理、细粒度权限、在线预览、归档与 LDAP 统一认证。 | 层级 | 技术 | |------|------| | 后端 | Java 17、Spring Boot 4、Spring Security、MyBatis、Redis、JWT | | 前端 | Vue 2、Element UI、Vuex | | 存储 | MySQL 8、MinIO 对象存储 | | 预览 | kkFileView 4.x | | 认证(可选) | OpenLDAP + 用户/部门同步 | --- ## 功能概览 ### 知识库业务 - **分类管理**:多级树形分类(`parent_id` / `ancestors`),独立 `kb_category` 表维护 - **文档管理**:草稿 → 发布 → 归档完整生命周期;左侧分类树 + 右侧预览的工作区布局 - **版本控制**:每次发布生成新版本(如 V1.0、V2.0),保留历史版本与变更说明 - **权限控制(ACL)**:权限绑定到**版本**,支持「全员 / 部门 / 用户」目标,分别配置**阅读**与**下载** - **在线预览**:Office、PDF、图片等通过 kkFileView 在线预览;后端代理 + 短期票据保证安全 - **阅读记录**:记录用户阅读行为,支持查看某版本的已读用户列表 - **归档库**:已归档文档单独管理,支持解档恢复 - **角色方案**: - `admin`:超级管理员(脚手架自带) - `kb_admin`:文档管理员,知识库全功能 - `common`:普通用户,知识库只读(分类树、文档查询、归档查询) ### 平台能力(若依脚手架) 用户/部门/岗位/角色/菜单/字典、操作日志、登录日志、定时任务、代码生成、Swagger 接口文档、服务与缓存监控等。 ### LDAP 集成(可选) - Docker 本地 OpenLDAP 测试环境 - 管理端 **系统管理 → LDAP 配置**:测试连接、立即同步、定时同步、LDAP 优先登录 - 同步部门与用户到若依,新用户默认分配 `common` 角色 --- ## 依赖服务 | 服务 | 容器名 | 用途 | 默认地址 | 必需 | |------|--------|------|----------|------| | **MySQL 8** | `ruoyi-mysql` | 业务数据库 `knowledge` | `localhost:3306` | 是 | | **Redis 7** | `ruoyi-redis` | 会话、缓存 | `localhost:6379` | 是 | | **MinIO** | `ruoyi-minio` | 文档对象存储 | API `127.0.0.1:9000`,控制台 `:9001` | 是 | | **kkFileView** | `ruoyi-kkfileview` | Office/PDF 在线预览 | `localhost:8012` | 是 | | **OpenLDAP** | `ruoyi-openldap` | LDAP 认证(profile `ldap`) | `ldap://127.0.0.1:389` | 否 | | **phpLDAPadmin** | `ruoyi-phpldapadmin` | LDAP Web 管理 | `localhost:8088` | 否 | 应用进程(**不在 Docker 内**,需本机运行): | 组件 | 端口 | 说明 | |------|------|------| | Spring Boot 后端 | 8080 | `RuoYiApplication` | | Vue 前端 | 80 | `ruoyi-ui` → `npm run dev` | 开发工具:JDK 17+、Maven 3.6+、Node.js 16+、Docker Desktop。 详细说明见 [docker/README.md](docker/README.md)。 --- ## 快速启动 ### 1. 克隆项目 ```bash git clone <仓库地址> cd knowledge ``` ### 2. 一键启动依赖服务(推荐) **Windows:** ```powershell .\scripts\docker-up.ps1 ``` **Linux / macOS:** ```bash chmod +x scripts/docker-up.sh scripts/docker-down.sh ./scripts/docker-up.sh ``` 脚本会自动: - 从 `.env.example` 生成 `.env`(若不存在) - 启动 MySQL、Redis、MinIO、kkFileView - **首次启动**自动导入 SQL 并创建 MinIO bucket `ruoyi-minio` 常用参数: | 场景 | PowerShell | Shell | |------|------------|-------| | 含 LDAP | `.\scripts\docker-up.ps1 -Ldap` | `./scripts/docker-up.sh --ldap` | | 导入分类示例 | `-WithSeed` | `--seed` | | 清空重建 | `-Reset` | `--reset` | 也可直接使用 Compose: ```bash docker compose up -d docker compose --profile ldap up -d # 含 LDAP ``` 默认连接(与 `application-druid.yml` / `application.yml` 一致): | 项 | 值 | |----|-----| | MySQL | `root` / `root`,库 `knowledge` | | Redis | 无密码,`6379` | | MinIO | `minioadmin` / `minioadmin`,bucket `ruoyi-minio` | ### 3. 手动初始化数据库(可选) 若不用 Docker 自带的 MySQL,请自行建库并按顺序导入: ```bash mysql -u root -p knowledge < sql/ry_20260417.sql mysql -u root -p knowledge < sql/quartz.sql mysql -u root -p knowledge < sql/kb_module.sql mysql -u root -p knowledge < sql/kb_category_multilevel.sql mysql -u root -p knowledge < sql/kb_roles.sql ``` ### 4. 检查后端配置 主要配置文件:`ruoyi-admin/src/main/resources/application.yml` | 配置项 | 说明 | |--------|------| | `spring.data.redis` | Redis 连接 | | `minio.url` | 后端上传/下载地址,本机建议 `http://127.0.0.1:9000` | | `minio.previewUrl` | kkFileView 容器内访问 MinIO 的地址,同 compose 网络为 `http://minio:9000` | | `minio.bucketName` | `ruoyi-minio` | | `kkfileview.url` | `http://localhost:8012` | | `kkfileview.fileBaseUrl` | kk 容器访问宿主机后端,默认 `http://host.docker.internal:8080` | | `kkfileview.browserFileBaseUrl` | 浏览器访问后端,默认 `http://127.0.0.1:8080` | | `ldap.enabled` | 默认 `false`;启用 LDAP 请在管理端配置页操作 | 数据源配置:`application-druid.yml` ### 5. 启动后端 ```bash # 方式一:IDE 运行主类 # ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java # 方式二:Maven 打包后运行 mvn clean package -DskipTests java -jar ruoyi-admin/target/ruoyi-admin.jar ``` 后端默认端口:**8080** 接口文档:[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html) ### 6. 启动前端 ```bash cd ruoyi-ui npm install npm run dev ``` 开发服务器默认端口:**80**,代理前缀 `/dev-api` → `http://localhost:8080`。 浏览器访问:[http://localhost](http://localhost) 生产构建: ```bash npm run build:prod # 将 dist/ 部署到 Nginx 等静态服务器,并反向代理 /prod-api 到后端 ``` --- ## 默认账号 | 账号 | 密码 | 说明 | |------|------|------| | `admin` | `admin123` | 超级管理员 | | `ry` | `admin123` | 普通测试用户(脚手架自带) | 知识库相关角色请在 **系统管理 → 角色管理 / 用户管理** 中分配 `kb_admin` 或 `common`。 --- ## LDAP 启用(可选) 1. 使用 `.\scripts\docker-up.ps1 -Ldap` 或 `./scripts/docker-up.sh --ldap` 启动 OpenLDAP(`sys_ldap.sql` 已在首次建库时默认导入) 2. 重启后端,超管登录后进入 **系统管理 → LDAP 配置** 3. 测试连接 → 立即同步 → 开启「启用 LDAP 登录」并保存 4. 使用同步出的 LDAP 账号登录(本地测试环境统一密码 `123456`) 详细说明见 [docker/ldap/README.md](docker/ldap/README.md)。 --- ## 项目结构 ``` knowledge/ ├── ruoyi-admin/ # 后端入口、Controller(含 knowledge 包) ├── ruoyi-system/ # 业务 Service、Mapper、Domain ├── ruoyi-framework/ # 安全、配置、LDAP 等框架层 ├── ruoyi-common/ # 工具类、MinIO 封装 ├── ruoyi-ui/ # Vue 2 前端 │ └── src/views/knowledge/ # 知识库页面 │ ├── category/ # 分类管理 │ ├── document/ # 文档工作区 │ └── archived/ # 归档库 ├── sql/ # 数据库脚本 │ ├── ry_20260417.sql # 若依基础表与数据 │ ├── kb_module.sql # 知识库表、菜单、字典 │ ├── kb_roles.sql # 知识库角色权限 │ └── sys_ldap.sql # LDAP 表结构(含 ldap_dn,应用必选) ├── docker/ # Docker 说明、MySQL 初始化、LDAP 种子 ├── scripts/ # docker-up / docker-down 一键脚本 └── docker-compose.yml # MySQL / Redis / MinIO / kkFileView / LDAP ``` --- ## 常见问题 **预览空白或 kkFileView 报错** - 确认 kkFileView 容器运行:`docker ps` - 确认后端 8080 可从容器访问(Windows/Mac 使用 `host.docker.internal`) - 图片预览依赖 `browserFileBaseUrl`,Office/PDF 依赖 `fileBaseUrl` **上传失败** - 确认 MinIO 已启动且 bucket `ruoyi-minio` 已创建 - Windows 上 `minio.url` 建议使用 `127.0.0.1` 而非 `localhost`(避免 IPv6 问题) **LDAP 登录提示「本地无此用户」** - 需先在 LDAP 配置页执行「立即同步」,将用户写入若依后再登录 --- ## 许可证 本项目基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 脚手架开发,遵循 MIT 许可证。若依官方文档:[http://doc.ruoyi.vip](http://doc.ruoyi.vip)