[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-laigeoffer--pmhub":3,"tool-laigeoffer--pmhub":62},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,27],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":116,"forks":117,"last_commit_at":118,"license":119,"difficulty_score":120,"env_os":121,"env_gpu":122,"env_ram":122,"env_deps":123,"category_tags":136,"github_topics":137,"view_count":24,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":151,"updated_at":152,"faqs":153,"releases":169},9972,"laigeoffer\u002Fpmhub","pmhub","PmHub，一个基于 SpringCloud & LLM 的智能项目管理系统，该项目旨在帮助小伙伴们快速掌握微服务\u002F分布式项目的架构设计和开发流程。如果你想在校招或者社招中拿到一个满意的 offer，PmHub 将是一个非常 nice 的选择😄。","PmHub 是一款基于 SpringCloud 与大语言模型（LLM）构建的智能项目管理系统，旨在帮助开发者深入掌握微服务与分布式架构的设计精髓。它有效解决了学习者在从单体应用向微服务转型过程中面临的架构理解难、技术栈分散以及缺乏真实企业级实战场景等痛点。\n\n该项目特别适合计算机专业学生、求职开发者以及希望提升架构能力的后端工程师使用。无论是零基础入门还是进阶深造，PmHub 都提供了单体和微服务两种版本，支持循序渐进的学习路径。其核心技术亮点在于全面集成了业界主流技术栈，包括 Nacos 服务注册、Sentinel 熔断限流、Seata 分布式事务、RocketMQ 消息队列及 SkyWalking 链路追踪等，并由前大厂专家严格遵循代码规范打造。\n\n除了代码实战，PmHub 还独具特色地提供了完整的产品设计文档、原型图及企业级工作流引擎，填补了传统开源项目在“产品思维”与“工程落地”之间的空白。通过该项目，用户不仅能体验从开发到 Docker 容器化部署的全流程，还能基于其开源的工作流框架进行二次开发，真正获得媲美企业生产环境的实战经验，为职业发展和技术面试打下坚实基础。","\u003Cp align=\"center\">\u003Cimg src= \"https:\u002F\u002Fcdn.tobebetterjavaer.com\u002Fstutymore\u002Fpmhub_%E7%AE%80%E4%BB%8B%E7%89%88.png\" alt=\"MaxKB\" width=\"300\" \u002F>\u003C\u002Fp>\n\u003Ch3 align=\"center\">PmHub，一个基于 SpringCloud & LLM 的智能项目管理系统\u003C\u002Fh3>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicense\u002FMIT\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flaigeoffer\u002Fpmhub?color=rgb(25%2C%20121%2C%20255)\" alt=\"The MIT License\">\u003C\u002Fa>\n  \u003Ca href=\"\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Flaigeoffer\u002Fpmhub?color=green\" alt=\"Forks\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flaigeoffer.cn\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPmHub-%E5%AE%98%E7%BD%91-green\" alt=\"Official\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flaigeoffer\u002Fpmhub?style=flat-square&color=rgb(25%2C%20121%2C%20255)\" alt=\"Stars\">\u003C\u002Fa>    \n  \u003Ca href=\"https:\u002F\u002Fpmhub.laigeoffer.cn\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPmHub-%E4%BD%93%E9%AA%8C%E5%9C%B0%E5%9D%80-blue\" alt=\"Experience\">\u003C\u002Fa>  \n\u003C\u002Fp>\n\n\u003Chr\u002F>\nPmHub 是一套基于 SpringCloud & LLM 的微服务智能项目管理系统，这个项目旨在帮助小伙伴们快速掌握微服务\u002F分布式项目的架构设计和开发流程，如果想在校招或者社招中拿到一个满意的 offer，PmHub 将是一个非常 nice 的选择。\n\n## 项目亮点\n\n- **热门技术**：采用时下企业最热门的技术框架，如 SpringCloud-Gateway、Nacos、Sentinel 等，主打一个硬核，与真实的企业项目接轨。\n- **单体与微服务**：提供单体和微服务两个版本，完美照顾零基础和需要进阶的同学，带大家体验从单体到微服务架构的改造全过程，并深入理解两种架构的优缺点。\n- **硬核面试题**：我们将结合付费球友的实际面试体验，为大家提供可以真正吊打面试官的真是面试场景和题目，并提供 1v1 的简历修改服务，主打一个投了就有、面了就拿 offer 的快乐体感。\n- **代码质量**：由蚂蚁金服工作过的技术专家苍何亲自下场，严格遵循代码规范和最佳实践，帮大家养成优雅的代码编写习惯。\n- **持续集成**：提供持续集成和持续部署的完整配置，带你从 0-1 用 Docker 上线 生产环境级别的真实项目。\n- **产品设计**：[提供完整的产品设计文档](https:\u002F\u002Flanhuapp.com\u002Flink\u002F#\u002Finvite?sid=qxZji4oa)，包括产品需求、产品架构、产品原型等，这是别的项目不曾给你的，但工作后又不可或缺的能力。\n- **企业工作流**：提供企业级的工作流系统，代码完全开源，你可以在此基础上进行二开，为公司节省巨额的研发成本，从而升职加薪。\n\n\n## 一、项目简介\n\nPmHub 包括认证、流程、项目管理、用户、网关等服务。包含了 Redis 缓存、RocketMQ 消息队列、Docker 容器化、Jenkins 自动化部署、Spring Security 安全框架、Nacos 服务注册和发现、Sentinel 熔断限流、Seata 分布式事务、Spring Boot Actuator 服务监控、SkyWalking 链路追踪、OpenFeign 服务调用，Vue3 前端框架等互联网开发中需要用到的主流技术栈，可以帮助同学们快速掌握微服务\u002F分布式项目的核心知识点。\n\n并且同时 PmHub 也是一套企业工作流的开发框架，您可以根据自身需求，快速定制出适合自己公司的企业工作流系统。\n\n\n\n>如果对开源项目感兴趣，可以关注来个 offer 的另外一个实战项目：技术派，一个前后端分离的社区项目。[GitHub](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding) 上已经星标 1.5k+，不少同学就是靠这个项目在往年的校招中拿到了不错的 offer。\n\n\n为了方便大家循序渐进式的学习，我们已经推出两个版本：\n\n- 单体架构版本：适合初学者，直接运行 pmhub-boot 模块下的 pmhub-admin 中的 PmhubApplication 类即可。\n- 微服务架构版本：适合有一定基础，想进阶学习微服务\u002F分布式的同学，可以分别启动网关、认证、流程、项目管理、代码生成等多个服务。\n\n可以根据自己的实际情况选择合适的版本进行学习，我们将会倾其所有，在第一时间帮助大家解决所有学习过程遇到的问题，让你的学习曲线变得非常丝滑😁。\n\n* 项目文档教程：https:\u002F\u002Flaigeoffer.cn\u002F\n* 在线体验地址：https:\u002F\u002Fpmhub.laigeoffer.cn\u002F\n\n![pmhub-业务架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_a6500f163965.png)\n\n此为 PmHub 微服务版本说明文档！单体版本说明文档请移步：[单体版本说明](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fblob\u002Fmaster\u002Fpmhub-boot\u002FREADME.md)\n\n\n## 二、关于来个 offer 组织\n\n来个 offer 组织由二哥发起，苍何主理，旨在帮助同学们在校招、社招中拿到满意的 offer。\n\n- 二哥，原创公众号“沉默王二”累计 18 万+ 读者，GitHub 星标 11000+ 开源知识库《二哥的 Java 进阶之路》作者，帮助很多很多同学成功拿到满意的 offer。\n- 苍何，原创公众号“苍何”作者，CSDN 博客专家，阿里云专家博主，GitHub 开发者计划成员，前大厂技术专家，技术、管理、面试经验丰富。\n\n加入[PmHub官方编程星球](https:\u002F\u002Flaigeoffer.cn\u002Fzsxq\u002F)后，即可解锁来个 offer 组织下的所有项目的付费文档及产品原型，以及 1 对 1 的技术面试辅导服务。\n\n\n项目|码云|GitHub|简介\n---|---|---|---\nPmHub| [Gitee](https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub) | [GitHub](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub) | 一套智能项目管理系统，即将帮助不少同学在接下来的校招\u002F社招中斩获满意 offer。\n技术派| [Gitee](https:\u002F\u002Fgitee.com\u002Fitwanger\u002Fpaicoding) | [GitHub](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding) | 一个前后端分离的社区项目，帮助过不少同学在秋招中斩获满意 offer。\n\n## 三、项目详情\n### 3.1、技术架构\n\n下面这张系统架构图可以帮助大家快速了解 PmHub 项目的系统架构，从前端到网关、从服务应用到基础服务组件、从存储技术到运维部署，可以说是一目了然。\n\n![pmhub-系统架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_bad99bf5037c.png)\n\n下面这张架构选型图可以帮助大家快速了解 PmHub 项目的技术选型，以及在[官方手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Ftech-architecture\u002F)中会更详细的说明我们为什么选择该技术，毕竟授人以鱼不如授人以渔嘛。\n\n![pmhub-架构选型](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_bd048df255be.png)\n\n下面这张技术架构图可以帮助大家快速了解 PmHub 项目的技术架构，以及各个模块之间的交互关系。\n\n![pmhub-技术架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_1ccba1b73bef.png)\n\n优质的项目，离不开一张清晰的鸟瞰图（😄）。\n\n### 3.2、项目演示\n- 项目仓库（GitHub）：https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\n- 项目仓库（码云）：https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub （国内访问速度更快）\n- 项目演示地址：https:\u002F\u002Fpmhub.laigeoffer.cn（微信搜索「苍何」，关注我们的公众号，回复 `pmhub` 获取账号和密码，帮我们增加一个粉丝，哈哈哈，开源不易，请满足一下我的虚荣心（😁）。）\n\n![首页展示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_90471c65c7e2.png)\n![项目概览页](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c446ea67991a.png)\n![任务编辑页](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_94434060d11f.png)\n![PmHub表单设计](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_162d9d841f5a.png)\n![PmHub流程设计页面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_caa12b196317.png)\n\n### 3.3、代码展示\n![pmhub代码展示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_feab9c338607.png)\n\n### 3.4、代码结构\n\n```\ncom.laigeoffer.pmhub     \n├── pmhub-ui              \u002F\u002F 前端框架 [1024]\n├── pmhub-gateway         \u002F\u002F 网关模块 [6880]\n├── pmhub-auth            \u002F\u002F 认证中心 [6800]\n├── pmhub-api             \u002F\u002F 接口模块\n│       └── pmhub-api-system                          \u002F\u002F 系统接口\n│       └── pmhub-api-workflow                        \u002F\u002F 流程接口\n├── pmhub-base          \u002F\u002F 通用模块\n│       └── pmhub-base-core                           \u002F\u002F 核心模块组件\n│       └── pmhub-base-datasource                     \u002F\u002F 多数据源组件\n│       └── pmhub-base-seata                          \u002F\u002F 分布式事务组件\n│       └── pmhub-base-security                       \u002F\u002F 安全模块组件\n│       └── pmhub-base-swagger                        \u002F\u002F 系统接口组件\n│       └── pmhub-base-notice                         \u002F\u002F 消息组件组件\n├── pmhub-modules         \u002F\u002F 业务模块\n│       └── pmhub-system                              \u002F\u002F 系统模块 [6801]\n│       └── pmhub-gen                                 \u002F\u002F 代码生成 [6802]\n│       └── pmhub-job                                 \u002F\u002F 定时任务 [6803]\n│       └── pmhub-project                             \u002F\u002F 项目服务 [6806]\n│       └── pmhub-workflow                            \u002F\u002F 流程服务 [6808]\n├── pmhub-monitor             \t\t\t\t\t\t  \u002F\u002F 监控中心 [6888]                 \n├──pom.xml                                            \u002F\u002F 公共依赖\n```\n\n## 四、项目部署\n> 单体版本请参考：[单体版本部署手册](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fblob\u002Fmaster\u002Fdocs\u002F%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%AF%E5%8A%A8%E6%95%99%E7%A8%8B.md)\n### 4.1、环境准备\n|    | 技术                  | 名称        | 版本         | 官网                                                                                                 |\n|----|---------------------|-----------|------------|----------------------------------------------------------------------------------------------------|\n| 1  | Spring Boot         | 基础框架      | 2.7.18     | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot)                   |\n| 2  | SpringCloud         | 微服务框架     | 2021.0.8   | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud)                 |\n| 3  | SpringCloud Alibaba | 阿里微服务框架   | 2021.0.5.0 | [https:\u002F\u002Fgithub.com\u002Falibaba\u002Fspring-cloud-alibaba](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fspring-cloud-alibaba) |\n| 4  | SpringCloud Gateway | 服务网关      | 3.1.8      | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud-gateway](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud-gateway) |\n| 5  | MyBatis-Plus        | 持久层框架     | 3.5.1      | [https:\u002F\u002Fbaomidou.com](https:\u002F\u002Fbaomidou.com)                                                       |\n| 6  | Redis               | 分布式缓存数据库  | Latest     | [https:\u002F\u002Fredis.io](https:\u002F\u002Fredis.io)                                                               |\n| 7  | RocketMQ            | 消息队列      | 2.2.3      | [https:\u002F\u002Frocketmq.apache.org](https:\u002F\u002Frocketmq.apache.org)                                         |\n| 8  | HuTool              | 小而全的工具集项目 | 5.8.11     | [https:\u002F\u002Fhutool.cn](https:\u002F\u002Fhutool.cn)                                                             |\n| 9  | Maven               | 项目构建管理    | 3.9.1      | [http:\u002F\u002Fmaven.apache.org](http:\u002F\u002Fmaven.apache.org)                                                 |\n| 10 | Sentinel            | 流控防护框架    | 1.8.6      | [https:\u002F\u002Fgithub.com\u002Falibaba\u002FSentinel](https:\u002F\u002Fgithub.com\u002Falibaba\u002FSentinel)                         |\n| 11 | Java                | 开发版本      | 1.8        | [https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies](https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies)               |\n\n\n\n### 4.2、后端项目启动\n\n#### 第一步，下载项目源码\n\n①、使用 Git 命令\n\n网络比较通畅的小伙伴可以直接从 GitHub 上拉取，命令如下：\n\n```\ngit clone git@github.com:laigeoffer\u002Fpmhub.git\n```\n\n国内的小伙伴也可以直接使用码云 Gitee 上的镜像仓库地址拉取：\n\n```\ngit clone https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub.git\n```\n\n②、直接下载压缩包\n\n也可以直接下载 GitHub 上的压缩包，然后解压到本地。\n\n- GitHub 地址：[https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub)\n- 码云地址：[https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub](https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub)\n\n![下载项目源码压缩包](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_8fe9281a26c6.png)\n\n③、直接通过 GitHub 桌面版\n\n我个人一直比较喜欢实用 GitHub 桌面版来管理仓库，图形化界面操作起来也比较舒服。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_4b48b81ce635.png)\n\n#### 第二步，使用 Intellij IDEA 导入项目\n\n这一步应该就不需要我多讲了，相信大家都能搞定。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_d47772d05aed.png)\n#### 第三步，导入数据库\n\n推荐大家使用 [Navicat](https:\u002F\u002Fjavabetter.cn\u002Fnice-article\u002Fitmind\u002Fnavicatmacyjpx.html) 这款图形化数据库管理工具。\n\n\n数据库文件路径在 pmhub\u002Fsql\u002F,在Navicat中导入所有数据库文件（每一个微服务对应一个数据库）\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_51797bca0abf.png)\n\n可以直接右键在 terminal 终端中打开，然后通过 pwd 和 ls 命令查看文件的绝对路径。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c5b0dc220a35.png)\n\n拿到绝对路径后，就可以在 Navicat 中导入数据库文件了。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c9e692df667d.png)\n\n导入完成后，刷新一下就可以看到最新的数据库表了。\n（当然你也可以直接复制sql，然后在Navicat执行）\n\n#### 第四步，基础环境准备\n* 1、启动 MySQL（必须）\n\n可以选择本机直接安装 MySQL，也可以通过 Docker 的方式，但需要做好磁盘挂载，推荐本机安装！\n\n\n* 2、启动 Redis（必须）\n\n①、如果你是 macOS 用户，可以直接在终端输入`redis-server`启动 Redis。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_662ed0aa0e52.png)\n\n②、如果你是 Windows 用户，可以直接双击 redis-server.exe 启动 Redis。\n\n③、当然也可以直接通过 Docker 启动 Redis。\n```shell\n# 拉取 Redis 镜像:\ndocker pull redis\n# 启动 Redis 容器:\ndocker run --name my-redis -d redis\n```\n\n* 3、启动 Nacos（必须）\n\n[官网](https:\u002F\u002Fnacos.io\u002Fdownload\u002Fnacos-server\u002F)下载 Nacos，找到 \u002Fconf\u002Fapplication.properties 文件，修改数据库连接信息。可以直接复制 pmhub\u002Fdocker\u002Fnacos\u002Fconf\u002Fapplication.properties 内容。\n\n修改下数据库配置信息为你自己的数据库，本地启动可以把鉴权关了。\n\n```\n1. 如果数据库名也是 pmhub-nacos，那么只需要修改用户名和密码即可。\n2. 如果用户名也是 root，那么只需要修改密码即可。\n3. 如果密码也一样，那么就不需要修改了（不可能，绝对不可能这么巧😂）。\n```\n\n![修改nacos配置文件](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_f70ccff8cb5d.png)\n\n①、如果你是 macOS 用户，可以直接在终端输入`sh startup.sh -m standalone`启动 Nacos。\n\n②、如果你是 Windows 用户，可以直接双击 startup.cmd 启动 Nacos。\n\n启动成功后访问 http:\u002F\u002Flocalhost:8848\u002Fnacos 即可看到 Nacos 控制台。默认用户名密码都是 nacos。\n\n![nacos启动成功界面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_716954ff7ba6.png)\n\n* 4、启动 SkyWalking 分布式链路追踪（非必须）\n\n参考手册：[SkyWalking 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fskywalking\u002F)\n\n* 5、启动 Sentinel 分布式熔断和降级（非必须）\n\n参考手册：[Sentinel 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Ffeign-sentinel\u002F)\n\n\n* 6、启动 Seata 分布式事务（非必须）\n\n参考手册：[Seata 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fseata\u002F)\n\n* 7、启动 Rocketmq 消息队列（非必须）\n\n参考手册：[Rocketmq 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Frocketmq\u002F)\n\n\n\n#### 第五步，启动各个微服务\n\n> 注意：如果遇到服务启动失败，可自行查看 nacos 配置是否做了修改，如数据库连接信息等。\n\n①、启动 pmhub-gateway 网关服务\n\n找到 pmhub-gateway 项目，右键 Run PmHubGatewayApplication.main()。\n\n![pmhub-gateway启动成功](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_844b58ef4546.png)\n\n②、启动 pmhub-auth 认证服务\n\n找到 pmhub-auth 项目，右键 Run PmHubAuthApplication.main()。\n\n③、启动 pmhub-system 系统服务\n\n找到 pmhub-system 项目（在pmhub-modules 下），右键 Run PmHubSystemApplication.main()。\npmhub-system 启动前需要修改 nacos 中的 pmhub-system-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n\n![修改pmhub-system配置](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_0567e6748293.png)\n\n④、启动 pmhub-project 项目管理服务\n\n找到 pmhub-project 项目（在pmhub-modules 下），右键 Run PmHubProjectApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-project-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑤、启动 pmhub-workflow 流程管理服务\n\n找到 pmhub-workflow 项目（在pmhub-modules 下），右键 Run PmHubWorkflowApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-workflow-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑥、启动 pmhub-gen 代码生成服务\n\n找到 pmhub-gen 项目（在pmhub-modules 下），右键 Run PmHubGenApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-gen-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑦、启动 pmhub-job 定时任务调度服务\n\n找到 pmhub-job 项目（在pmhub-modules 下），右键 Run PmHubJobApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-job-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑧、启动 pmhub-monitor 监控服务\n\n找到 pmhub-monitor 项目，右键 Run PmHubMonitorApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-monitor-dev.yml 配置文件，修改监控后台的用户名和密码，以及首页展示标题。\n\n启动成功后可访问：http:\u002F\u002Flocalhost:6888\u002Fwallboard\n\n可以在线实时查案各个服务的状态以及日志：\n\n![主界面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_3fa48db691fa.webp)\n\n\n\n\n### 4.3、前端项目启动\n\n请参考 pmhub-ui 项目的 README.md 文档，[前端工程结构说明](pmhub-ui\u002FREADME.md)\n\n> 注意：微服务版本直接启动 pmhub-ui 即可，如果是单体版本的前端需要到 pmhub-boot下的 pmhub-ui 启动。\n\n### 4.4、在线接口文档\n\n[https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fapi-doc.html](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fapi-doc.html)\n\n### 4.5、服务器部署（Docker 方式）\n\n请参考 [云容器部署系统](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker\u002F)\n\n## 五、技术选型\n\n后端技术栈\n\n|         技术          | 说明                   | 官网                                                                                                                         |\n|:-------------------:|----------------------|----------------------------------------------------------------------------------------------------------------------------|\n| Spring & SpringMVC  | Java全栈应用程序框架和WEB容器实现 | [https:\u002F\u002Fspring.io\u002F](https:\u002F\u002Fspring.io\u002F)                                                                                   |\n|     SpringBoot      | Spring应用简化集成开发框架     | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot)                                           |\n|     SpringCloud     | 微服务框架                | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud)                                         |\n|    mybatis-plus     | 数据库orm框架             | [https:\u002F\u002Fbaomidou.com\u002F](https:\u002F\u002Fbaomidou.com\u002F)                                                                             |\n| mybatis PageHelper  | 数据库翻页插件              | [https:\u002F\u002Fgithub.com\u002Fpagehelper\u002FMybatis-PageHelper](https:\u002F\u002Fgithub.com\u002Fpagehelper\u002FMybatis-PageHelper)                       |\n|    elasticsearch    | 近实时文本搜索              | [https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Felasticsearch\u002Fservice](https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Felasticsearch\u002Fservice)                         |\n|        redis        | 内存数据存储               | [https:\u002F\u002Fredis.io](https:\u002F\u002Fredis.io)                                                                                       |\n|      rocketmq       | 消息队列                 | [https:\u002F\u002Frocketmq.apache.org\u002F](https:\u002F\u002Frocketmq.apache.org\u002F)                                                               |\n|       mongodb       | NoSql数据库             | [https:\u002F\u002Fwww.mongodb.com\u002F](https:\u002F\u002Fwww.mongodb.com\u002F)                                                                       |\n|        nginx        | 服务器                  | [https:\u002F\u002Fnginx.org](https:\u002F\u002Fnginx.org)                                                                                     |\n|       docker        | 应用容器引擎               | [https:\u002F\u002Fwww.docker.com](https:\u002F\u002Fwww.docker.com)                                                                           |\n|      hikariCP       | 数据库连接                | [https:\u002F\u002Fgithub.com\u002Fbrettwooldridge\u002FHikariCP](https:\u002F\u002Fgithub.com\u002Fbrettwooldridge\u002FHikariCP)                                 |\n|         oss         | 对象存储                 | [https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31883.html](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31883.html)                   |\n|        https        | 证书                   | [https:\u002F\u002Fletsencrypt.org\u002F](https:\u002F\u002Fletsencrypt.org\u002F)                                                                       |\n|         jwt         | jwt登录                | [https:\u002F\u002Fjwt.io](https:\u002F\u002Fjwt.io)                                                                                           |\n|       lombok        | Java语言增强库            | [https:\u002F\u002Fprojectlombok.org](https:\u002F\u002Fprojectlombok.org)                                                                     |\n|        guava        | google开源的java工具集     | [https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fguava](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fguava)                                                         |\n|      thymeleaf      | html5模板引擎            | [https:\u002F\u002Fwww.thymeleaf.org](https:\u002F\u002Fwww.thymeleaf.org)                                                                     |\n|       swagger       | API文档生成工具            | [https:\u002F\u002Fswagger.io](https:\u002F\u002Fswagger.io)                                                                                   |\n| hibernate-validator | 验证框架                 | [hibernate.org\u002Fvalidator\u002F](hibernate.org\u002Fvalidator\u002F)                                                                       |\n|     quick-media     | 多媒体处理                | [https:\u002F\u002Fgithub.com\u002Fliuyueyi\u002Fquick-media](https:\u002F\u002Fgithub.com\u002Fliuyueyi\u002Fquick-media)                                         |\n|      liquibase      | 数据库版本管理              | [https:\u002F\u002Fwww.liquibase.com](https:\u002F\u002Fwww.liquibase.com)                                                                     |\n|       jackson       | json\u002Fxml处理           | [https:\u002F\u002Fwww.jackson.com](https:\u002F\u002Fwww.jackson.com)                                                                         |\n|      ip2region      | ip地址                 | [https:\u002F\u002Fgithub.com\u002Fzoujingli\u002Fip2region](https:\u002F\u002Fgithub.com\u002Fzoujingli\u002Fip2region)                                           |\n|      websocket      | 长连接                  | [https:\u002F\u002Fdocs.spring.io\u002Fspring\u002Freference\u002Fweb\u002Fwebsocket.html](https:\u002F\u002Fdocs.spring.io\u002Fspring\u002Freference\u002Fweb\u002Fwebsocket.html)   |\n|   sensitive-word    | 敏感词                  | [https:\u002F\u002Fgithub.com\u002Fhoubb\u002Fsensitive-word](https:\u002F\u002Fgithub.com\u002Fhoubb\u002Fsensitive-word)                                         |\n|       chatgpt       | chatgpt              | [https:\u002F\u002Fopenai.com\u002Fblog\u002Fchatgpt](https:\u002F\u002Fopenai.com\u002Fblog\u002Fchatgpt)                                                         |\n|        讯飞星火         | 讯飞星火大模型              | [https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E) |\n\n## 六、PmHub 教程\nPmHub 高质量教程共 70+ 篇，从中整理出 10 篇，供大家免费学习。\n- [（🌟 新人必看）PmHub 系统架构&功能模块一览](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fintroduction\u002Farchitecture-function.html)\n- [（🌟 新人必看）小白如何学习 PmHub](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fintroduction\u002Fbeginner-learn.html)\n- [（🌟 新人必看）如何将 PmHub 写入简历](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fwrite-to-resume.html)\n- [（🌟 新人必看）PmHub 产品原型](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fproductdesign\u002Fproduct-prototype.html)\n- [（🌟 新人必看）项目真实面经](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fglobal-filter-statistics-gateway.html)\n- [（🌟 新人必看）本地快速启动](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fbackend.html)\n- [（🌟 新人必看）PmHub 微服务网关设计](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Farchitecture\u002Fpmhub-gateway.html)\n- [（🌟 新人必看）PmHub 项目工程搭建手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker.html#%E6%9C%AC%E5%9C%B0%E5%87%86%E5%A4%87)\n- [（👍 强烈推荐）如何做好产品设计](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fproductdesign\u002Feveryone-is-producter.html)\n- [（👍 强烈推荐）项目真实面经](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fglobal-filter-statistics-gateway.html)\n\n\n\n## 七、环境搭建\n\n### 开发工具\n\n|        工具        | 说明           | 官网                                                                                                                       | \n|:----------------:|--------------|--------------------------------------------------------------------------------------------------------------------------|\n|       IDEA       | java开发工具     | [https:\u002F\u002Fwww.jetbrains.com](https:\u002F\u002Fwww.jetbrains.com)                                                                   |\n|   visualstudio   | web开发工具      | [https:\u002F\u002Fcode.visualstudio.com\u002F](https:\u002F\u002Fcode.visualstudio.com\u002F)                                                         |\n|      Chrome      | 浏览器          | [https:\u002F\u002Fwww.google.com\u002Fintl\u002Fzh-CN\u002Fchrome](https:\u002F\u002Fwww.google.com\u002Fintl\u002Fzh-CN\u002Fchrome)                                     |\n|   ScreenToGif    | gif录屏        | [https:\u002F\u002Fwww.screentogif.com](https:\u002F\u002Fwww.screentogif.com)                                                               |\n|     SniPaste     | 截图           | [https:\u002F\u002Fwww.snipaste.com](https:\u002F\u002Fwww.snipaste.com)                                                                     |\n|     PicPick      | 图片处理工具       | [https:\u002F\u002Fpicpick.app](https:\u002F\u002Fpicpick.app)                                                                               |\n|     MarkText     | markdown编辑器  | [https:\u002F\u002Fgithub.com\u002Fmarktext\u002Fmarktext](https:\u002F\u002Fgithub.com\u002Fmarktext\u002Fmarktext)                                             |\n|       curl       | http终端请求     | [https:\u002F\u002Fcurl.se](https:\u002F\u002Fcurl.se)                                                                                       |\n|     Postman      | API接口调试      | [https:\u002F\u002Fwww.postman.com](https:\u002F\u002Fwww.postman.com)                                                                       |\n|     draw.io      | 流程图、架构图绘制    | [https:\u002F\u002Fwww.diagrams.net\u002F](https:\u002F\u002Fwww.diagrams.net\u002F)                                                                   |\n|      Axure       | 原型图设计工具      | [https:\u002F\u002Fwww.axure.com](https:\u002F\u002Fwww.axure.com)                                                                           |\n|     navicat      | 数据库连接工具      | [https:\u002F\u002Fwww.navicat.com](https:\u002F\u002Fwww.navicat.com)                                                                       |\n|     DBeaver      | 免费开源的数据库连接工具 | [https:\u002F\u002Fdbeaver.io](https:\u002F\u002Fdbeaver.io)                                                                                 |\n|      iTerm2      | mac终端        | [https:\u002F\u002Fiterm2.com](https:\u002F\u002Fiterm2.com)                                                                                 |\n| windows terminal | win终端        | [https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Finstall](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Finstall) |\n|   SwitchHosts    | host管理       | [https:\u002F\u002Fgithub.com\u002Foldj\u002FSwitchHosts\u002Freleases](https:\u002F\u002Fgithub.com\u002Foldj\u002FSwitchHosts\u002Freleases)                             |\n\n\n### 开发环境\n\n|      工具       | 版本        | 下载                                                                                                                     |\n|:-------------:|:----------|------------------------------------------------------------------------------------------------------------------------|\n|      jdk      | 1.8+      | [https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F#java8](https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F#java8) |\n|     maven     | 3.4+      | [https:\u002F\u002Fmaven.apache.org\u002F](https:\u002F\u002Fmaven.apache.org\u002F)                                                                 |\n|     mysql     | 5.7+\u002F8.0+ | [https:\u002F\u002Fwww.mysql.com\u002Fdownloads\u002F](https:\u002F\u002Fwww.mysql.com\u002Fdownloads\u002F)                                                   |\n|     redis     | 5.0+      | [https:\u002F\u002Fredis.io\u002Fdownload\u002F](https:\u002F\u002Fredis.io\u002Fdownload\u002F)                                                               |\n| elasticsearch | 8.0.0+    | [https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Fdownloads\u002Felasticsearch](https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Fdownloads\u002Felasticsearch)                 |\n|     nginx     | 1.10+     | [https:\u002F\u002Fnginx.org\u002Fen\u002Fdownload.html](https:\u002F\u002Fnginx.org\u002Fen\u002Fdownload.html)                                               |\n|   rocketmq    | 5.0.4+    | [https:\u002F\u002Fwww.rabbitmq.com\u002Fnews.html](https:\u002F\u002Fwww.rabbitmq.com\u002Fnews.html)                                               |\n|    ali-oss    | 3.15.1    | [https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31946.html](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31946.html)               |\n|      git      | 2.34.1    | [http:\u002F\u002Fgithub.com\u002F](http:\u002F\u002Fgithub.com\u002F)                                                                               |\n|    docker     | 4.10.0+   | [https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002F](https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002F)                                                   |\n|    freessl    | https证书   | [https:\u002F\u002Ffreessl.cn\u002F](https:\u002F\u002Ffreessl.cn\u002F)                                                                             |\n\n### 搭建步骤\n\n#### 本地部署教程\n\n> [本地开发环境手把手教程](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fenvironment\u002F)\n\n### 云服务器部署教程\n\n> [环境搭建 & 基于源码的部署教程](docs\u002F安装环境.md)\n\n> [服务器docker启动教程](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker\u002F)\n\n## 八、内置功能\n> 内置功能我们使用了若依的框架，为什么要用若依，一来我们觉得基础的后台功能没有必要再重复造轮子，我们需要节省时间花力气在项目核心业务上，二来我们希望站在巨人的肩膀上，若依是后台系统中很优秀的框架，我们基于其做的二次开发，相信也能再创辉煌！\n\n1.  用户管理：用户是系统操作者，该功能主要完成系统用户配置。\n2.  部门管理：配置系统组织机构（公司、部门、小组），树结构展现支持数据权限。\n3.  岗位管理：配置系统用户所属担任职务。\n4.  菜单管理：配置系统菜单，操作权限，按钮权限标识等。\n5.  角色管理：角色菜单权限分配、设置角色按机构进行数据范围权限划分。\n6.  字典管理：对系统中经常使用的一些较为固定的数据进行维护。\n7.  参数管理：对系统动态配置常用参数。\n8.  通知公告：系统通知公告信息发布维护。\n9.  操作日志：系统正常操作日志记录和查询；系统异常信息日志记录和查询。\n10. 登录日志：系统登录日志记录查询包含登录异常。\n11. 在线用户：当前系统中活跃用户状态监控。\n12. 定时任务：在线（添加、修改、删除)任务调度包含执行结果日志。\n13. 代码生成：前后端代码的生成（java、html、xml、sql）支持CRUD下载 。\n14. 系统接口：根据业务代码自动生成相关的api接口文档。\n15. 服务监控：监视当前系统CPU、内存、磁盘、堆栈等相关信息。\n16. 缓存监控：对系统的缓存信息查询，命令统计等。\n17. 在线构建器：拖动表单元素生成相应的HTML代码。\n18. 连接池监视：监视当前系统数据库连接池状态，可进行分析SQL找出系统性能瓶颈。\n\n## 九、友情链接\n\n- [paicoding](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding?tab=readme-ov-file) ：⭐️一款好用又强大的开源社区，基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等主流技术栈\n- [toBeBetterjavaer](https:\u002F\u002Fgithub.com\u002Fitwanger\u002FtoBeBetterJavaer) ：🚀一份通俗易懂、风趣幽默的Java学习指南，内容涵盖Java基础、Java并发编程、Java虚拟机、Java企业级开发、Java面试等核心知识点。学Java，就认准二哥的Java进阶之路😄\n- [CodeCanvas](https:\u002F\u002Fgithub.com\u002Ffreestylefly\u002FCodeCanvas) ：📚本代码仓库是作者苍何多年从事一线互联网Java开发的学习历程技术汇总，旨在为大家提供一个清晰详细的学习教程，侧重点更倾向编写Java核心内容。💪🏻\n\n## 十、鸣谢\n感谢所有参与开源贡献的小伙伴，PmHub 因你们而更强大！\n\n## 十一、star 趋势图\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_55c76f00af6f.png)](https:\u002F\u002Fstar-history.com\u002F#laigeoffer\u002Fpmhub&Date)\n\n## 十二、公众号\n\n微信搜 **苍何** 或扫描下方二维码关注苍何的原创公众号，回复 **666** 即可免费领取 2000G 编程学习资源。\n\n![苍何微信公众号](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_70eccfad82cf.png)\n\n## 十三、许可证\n\n[MIT License (MIT)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\u003Chr\u002F>\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nCopyright (c) 2023-2024 PmHub（苍何、沉默王二）\n\n\n","\u003Cp align=\"center\">\u003Cimg src= \"https:\u002F\u002Fcdn.tobebetterjavaer.com\u002Fstutymore\u002Fpmhub_%E7%AE%80%E4%BB%8B%E7%89%88.png\" alt=\"MaxKB\" width=\"300\" \u002F>\u003C\u002Fp>\n\u003Ch3 align=\"center\">PmHub，一个基于 SpringCloud & LLM 的智能项目管理系统\u003C\u002Fh3>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicense\u002FMIT\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flaigeoffer\u002Fpmhub?color=rgb(25%2C%20121%2C%20255)\" alt=\"The MIT License\">\u003C\u002Fa>\n  \u003Ca href=\"\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Flaigeoffer\u002Fpmhub?color=green\" alt=\"Forks\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flaigeoffer.cn\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPmHub-%E5%AE%98%E7%BD%91-green\" alt=\"Official\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flaigeoffer\u002Fpmhub?style=flat-square&color=rgb(25%2C%20121%2C%20255)\" alt=\"Stars\">\u003C\u002Fa>    \n  \u003Ca href=\"https:\u002F\u002Fpmhub.laigeoffer.cn\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPmHub-%E4%BD%93%E9%AA%8C%E5%9C%B0%E5%9D%80-blue\" alt=\"Experience\">\u003C\u002Fa>  \n\u003C\u002Fp>\n\n\u003Chr\u002F>\nPmHub 是一套基于 SpringCloud & LLM 的微服务智能项目管理系统，这个项目旨在帮助小伙伴们快速掌握微服务\u002F分布式项目的架构设计和开发流程，如果想在校招或者社招中拿到一个满意的 offer，PmHub 将是一个非常 nice 的选择。\n\n## 项目亮点\n\n- **热门技术**：采用时下企业最热门的技术框架，如 SpringCloud-Gateway、Nacos、Sentinel 等，主打一个硬核，与真实的企业项目接轨。\n- **单体与微服务**：提供单体和微服务两个版本，完美照顾零基础和需要进阶的同学，带大家体验从单体到微服务架构的改造全过程，并深入理解两种架构的优缺点。\n- **硬核面试题**：我们将结合付费球友的实际面试体验，为大家提供可以真正吊打面试官的真是面试场景和题目，并提供 1v1 的简历修改服务，主打一个投了就有、面了就拿 offer 的快乐体感。\n- **代码质量**：由蚂蚁金服工作过的技术专家苍何亲自下场，严格遵循代码规范和最佳实践，帮大家养成优雅的代码编写习惯。\n- **持续集成**：提供持续集成和持续部署的完整配置，带你从 0-1 用 Docker 上线 生产环境级别的真实项目。\n- **产品设计**：[提供完整的产品设计文档](https:\u002F\u002Flanhuapp.com\u002Flink\u002F#\u002Finvite?sid=qxZji4oa)，包括产品需求、产品架构、产品原型等，这是别的项目不曾给你的，但工作后又不可或缺的能力。\n- **企业工作流**：提供企业级的工作流系统，代码完全开源，你可以在此基础上进行二开，为公司节省巨额的研发成本，从而升职加薪。\n\n\n## 一、项目简介\n\nPmHub 包括认证、流程、项目管理、用户、网关等服务。包含了 Redis 缓存、RocketMQ 消息队列、Docker 容器化、Jenkins 自动化部署、Spring Security 安全框架、Nacos 服务注册和发现、Sentinel 熔断限流、Seata 分布式事务、Spring Boot Actuator 服务监控、SkyWalking 链路追踪、OpenFeign 服务调用，Vue3 前端框架等互联网开发中需要用到的主流技术栈，可以帮助同学们快速掌握微服务\u002F分布式项目的核心知识点。\n\n并且同时 PmHub 也是一套企业工作流的开发框架，您可以根据自身需求，快速定制出适合自己公司的企业工作流系统。\n\n\n\n>如果对开源项目感兴趣，可以关注来个 offer 的另外一个实战项目：技术派，一个前后端分离的社区项目。[GitHub](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding) 上已经星标 1.5k+，不少同学就是靠这个项目在往年的校招中拿到了不错的 offer。\n\n\n为了方便大家循序渐进式的学习，我们已经推出两个版本：\n\n- 单体架构版本：适合初学者，直接运行 pmhub-boot 模块下的 pmhub-admin 中的 PmhubApplication 类即可。\n- 微服务架构版本：适合有一定基础，想进阶学习微服务\u002F分布式的同学，可以分别启动网关、认证、流程、项目管理、代码生成等多个服务。\n\n可以根据自己的实际情况选择合适的版本进行学习，我们将会倾其所有，在第一时间帮助大家解决所有学习过程遇到的问题，让你的学习曲线变得非常丝滑😁。\n\n* 项目文档教程：https:\u002F\u002Flaigeoffer.cn\u002F\n* 在线体验地址：https:\u002F\u002Fpmhub.laigeoffer.cn\u002F\n\n![pmhub-业务架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_a6500f163965.png)\n\n此为 PmHub 微服务版本说明文档！单体版本说明文档请移步：[单体版本说明](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fblob\u002Fmaster\u002Fpmhub-boot\u002FREADME.md)\n\n\n## 二、关于来个 offer 组织\n\n来个 offer 组织由二哥发起，苍何主理，旨在帮助同学们在校招、社招中拿到满意的 offer。\n\n- 二哥，原创公众号“沉默王二”累计 18 万+ 读者，GitHub 星标 11000+ 开源知识库《二哥的 Java 进阶之路》作者，帮助很多很多同学成功拿到满意的 offer。\n- 苍何，原创公众号“苍何”作者，CSDN 博客专家，阿里云专家博主，GitHub 开发者计划成员，前大厂技术专家，技术、管理、面试经验丰富。\n\n加入[PmHub官方编程星球](https:\u002F\u002Flaigeoffer.cn\u002Fzsxq\u002F)后，即可解锁来个 offer 组织下的所有项目的付费文档及产品原型，以及 1 对 1 的技术面试辅导服务。\n\n\n项目|码云|GitHub|简介\n---|---|---|---\nPmHub| [Gitee](https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub) | [GitHub](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub) | 一套智能项目管理系统，即将帮助不少同学在接下来的校招\u002F社招中斩获满意 offer。\n技术派| [Gitee](https:\u002F\u002Fgitee.com\u002Fitwanger\u002Fpaicoding) | [GitHub](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding) | 一个前后端分离的社区项目，帮助过不少同学在秋招中斩获满意 offer。\n\n## 三、项目详情\n### 3.1、技术架构\n\n下面这张系统架构图可以帮助大家快速了解 PmHub 项目的系统架构，从前端到网关、从服务应用到基础服务组件、从存储技术到运维部署，可以说是一目了然。\n\n![pmhub-系统架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_bad99bf5037c.png)\n\n下面这张架构选型图可以帮助大家快速了解 PmHub 项目的技术选型，以及在[官方手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Ftech-architecture\u002F)中会更详细的说明我们为什么选择该技术，毕竟授人以鱼不如授人以渔嘛。\n\n![pmhub-架构选型](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_bd048df255be.png)\n\n下面这张技术架构图可以帮助大家快速了解 PmHub 项目的技术架构，以及各个模块之间的交互关系。\n\n![pmhub-技术架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_1ccba1b73bef.png)\n\n优质的项目，离不开一张清晰的鸟瞰图（😄）。\n\n### 3.2、项目演示\n- 项目仓库（GitHub）：https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\n- 项目仓库（码云）：https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub （国内访问速度更快）\n- 项目演示地址：https:\u002F\u002Fpmhub.laigeoffer.cn（微信搜索「苍何」，关注我们的公众号，回复 `pmhub` 获取账号和密码，帮我们增加一个粉丝，哈哈哈，开源不易，请满足一下我的虚荣心（😁）。）\n\n![首页展示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_90471c65c7e2.png)\n![项目概览页](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c446ea67991a.png)\n![任务编辑页](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_94434060d11f.png)\n![PmHub表单设计](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_162d9d841f5a.png)\n![PmHub流程设计页面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_caa12b196317.png)\n\n### 3.3、代码展示\n![pmhub代码展示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_feab9c338607.png)\n\n### 3.4、代码结构\n\n```\ncom.laigeoffer.pmhub     \n├── pmhub-ui              \u002F\u002F 前端框架 [1024]\n├── pmhub-gateway         \u002F\u002F 网关模块 [6880]\n├── pmhub-auth            \u002F\u002F 认证中心 [6800]\n├── pmhub-api             \u002F\u002F 接口模块\n│       └── pmhub-api-system                          \u002F\u002F 系统接口\n│       └── pmhub-api-workflow                        \u002F\u002F 流程接口\n├── pmhub-base          \u002F\u002F 通用模块\n│       └── pmhub-base-core                           \u002F\u002F 核心模块组件\n│       └── pmhub-base-datasource                     \u002F\u002F 多数据源组件\n│       └── pmhub-base-seata                          \u002F\u002F 分布式事务组件\n│       └── pmhub-base-security                       \u002F\u002F 安全模块组件\n│       └── pmhub-base-swagger                        \u002F\u002F 系统接口组件\n│       └── pmhub-base-notice                         \u002F\u002F 消息组件组件\n├── pmhub-modules         \u002F\u002F 业务模块\n│       └── pmhub-system                              \u002F\u002F 系统模块 [6801]\n│       └── pmhub-gen                                 \u002F\u002F 代码生成 [6802]\n│       └── pmhub-job                                 \u002F\u002F 定时任务 [6803]\n│       └── pmhub-project                             \u002F\u002F 项目服务 [6806]\n│       └── pmhub-workflow                            \u002F\u002F 流程服务 [6808]\n├── pmhub-monitor             \t\t\t\t\t\t  \u002F\u002F 监控中心 [6888]                 \n├──pom.xml                                            \u002F\u002F 公共依赖\n```\n\n## 四、项目部署\n> 单体版本请参考：[单体版本部署手册](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fblob\u002Fmaster\u002Fdocs\u002F%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%AF%E5%8A%A8%E6%95%99%E7%A8%8B.md)\n\n### 4.1、环境准备\n|    | 技术                  | 名称        | 版本         | 官网                                                                                                 |\n|----|---------------------|-----------|------------|----------------------------------------------------------------------------------------------------|\n| 1  | Spring Boot         | 基础框架      | 2.7.18     | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot)                   |\n| 2  | SpringCloud         | 微服务框架     | 2021.0.8   | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud)                 |\n| 3  | SpringCloud Alibaba | 阿里微服务框架   | 2021.0.5.0 | [https:\u002F\u002Fgithub.com\u002Falibaba\u002Fspring-cloud-alibaba](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fspring-cloud-alibaba) |\n| 4  | SpringCloud Gateway | 服务网关      | 3.1.8      | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud-gateway](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud-gateway) |\n| 5  | MyBatis-Plus        | 持久层框架     | 3.5.1      | [https:\u002F\u002Fbaomidou.com](https:\u002F\u002Fbaomidou.com)                                                       |\n| 6  | Redis               | 分布式缓存数据库  | Latest     | [https:\u002F\u002Fredis.io](https:\u002F\u002Fredis.io)                                                               |\n| 7  | RocketMQ            | 消息队列      | 2.2.3      | [https:\u002F\u002Frocketmq.apache.org](https:\u002F\u002Frocketmq.apache.org)                                         |\n| 8  | HuTool              | 小而全的工具集项目 | 5.8.11     | [https:\u002F\u002Fhutool.cn](https:\u002F\u002Fhutool.cn)                                                             |\n| 9  | Maven               | 项目构建管理    | 3.9.1      | [http:\u002F\u002Fmaven.apache.org](http:\u002F\u002Fmaven.apache.org)                                                 |\n| 10 | Sentinel            | 流控防护框架    | 1.8.6      | [https:\u002F\u002Fgithub.com\u002Falibaba\u002FSentinel](https:\u002F\u002Fgithub.com\u002Falibaba\u002FSentinel)                         |\n| 11 | Java                | 开发版本      | 1.8        | [https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies](https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies)               |\n\n\n\n### 4.2、后端项目启动\n\n#### 第一步，下载项目源码\n\n①、使用 Git 命令\n\n网络比较通畅的小伙伴可以直接从 GitHub 上拉取，命令如下：\n\n```\ngit clone git@github.com:laigeoffer\u002Fpmhub.git\n```\n\n国内的小伙伴也可以直接使用码云 Gitee 上的镜像仓库地址拉取：\n\n```\ngit clone https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub.git\n```\n\n②、直接下载压缩包\n\n也可以直接下载 GitHub 上的压缩包，然后解压到本地。\n\n- GitHub 地址：[https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub](https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub)\n- 码云地址：[https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub](https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub)\n\n![下载项目源码压缩包](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_8fe9281a26c6.png)\n\n③、直接通过 GitHub 桌面版\n\n我个人一直比较喜欢实用 GitHub 桌面版来管理仓库，图形化界面操作起来也比较舒服。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_4b48b81ce635.png)\n\n#### 第二步，使用 Intellij IDEA 导入项目\n\n这一步应该就不需要我多讲了，相信大家都能搞定。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_d47772d05aed.png)\n#### 第三步，导入数据库\n\n推荐大家使用 [Navicat](https:\u002F\u002Fjavabetter.cn\u002Fnice-article\u002Fitmind\u002Fnavicatmacyjpx.html) 这款图形化数据库管理工具。\n\n\n数据库文件路径在 pmhub\u002Fsql\u002F,在Navicat中导入所有数据库文件（每一个微服务对应一个数据库）\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_51797bca0abf.png)\n\n可以直接右键在 terminal 终端中打开，然后通过 pwd 和 ls 命令查看文件的绝对路径。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c5b0dc220a35.png)\n\n拿到绝对路径后，就可以在 Navicat 中导入数据库文件了。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_c9e692df667d.png)\n\n导入完成后，刷新一下就可以看到最新的数据库表了。\n（当然你也可以直接复制sql，然后在Navicat执行）\n\n#### 第四步，基础环境准备\n* 1、启动 MySQL（必须）\n\n可以选择本机直接安装 MySQL，也可以通过 Docker 的方式，但需要做好磁盘挂载，推荐本机安装！\n\n\n* 2、启动 Redis（必须）\n\n①、如果你是 macOS 用户，可以直接在终端输入`redis-server`启动 Redis。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_662ed0aa0e52.png)\n\n②、如果你是 Windows 用户，可以直接双击 redis-server.exe 启动 Redis。\n\n③、当然也可以直接通过 Docker 启动 Redis。\n```shell\n# 拉取 Redis 镜像:\ndocker pull redis\n# 启动 Redis 容器:\ndocker run --name my-redis -d redis\n```\n\n* 3、启动 Nacos（必须）\n\n[官网](https:\u002F\u002Fnacos.io\u002Fdownload\u002Fnacos-server\u002F)下载 Nacos，找到 \u002Fconf\u002Fapplication.properties 文件，修改数据库连接信息。可以直接复制 pmhub\u002Fdocker\u002Fnacos\u002Fconf\u002Fapplication.properties 内容。\n\n修改下数据库配置信息为你自己的数据库，本地启动可以把鉴权关了。\n\n```\n1. 如果数据库名也是 pmhub-nacos，那么只需要修改用户名和密码即可。\n2. 如果用户名也是 root，那么只需要修改密码即可。\n3. 如果密码也一样，那么就不需要修改了（不可能，绝对不可能这么巧😂）。\n```\n\n![修改nacos配置文件](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_f70ccff8cb5d.png)\n\n①、如果你是 macOS 用户，可以直接在终端输入`sh startup.sh -m standalone`启动 Nacos。\n\n②、如果你是 Windows 用户，可以直接双击 startup.cmd 启动 Nacos。\n\n启动成功后访问 http:\u002F\u002Flocalhost:8848\u002Fnacos 即可看到 Nacos 控制台。默认用户名密码都是 nacos。\n\n![nacos启动成功界面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_716954ff7ba6.png)\n\n* 4、启动 SkyWalking 分布式链路追踪（非必须）\n\n参考手册：[SkyWalking 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fskywalking\u002F)\n\n* 5、启动 Sentinel 分布式熔断和降级（非必须）\n\n参考手册：[Sentinel 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Ffeign-sentinel\u002F)\n\n\n* 6、启动 Seata 分布式事务（非必须）\n\n参考手册：[Seata 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fseata\u002F)\n\n* 7、启动 Rocketmq 消息队列（非必须）\n\n参考手册：[Rocketmq 启动手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Frocketmq\u002F)\n\n\n\n#### 第五步，启动各个微服务\n\n> 注意：如果遇到服务启动失败，可自行查看 nacos 配置是否做了修改，如数据库连接信息等。\n\n①、启动 pmhub-gateway 网关服务\n\n找到 pmhub-gateway 项目，右键 Run PmHubGatewayApplication.main()。\n\n![pmhub-gateway启动成功](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_844b58ef4546.png)\n\n②、启动 pmhub-auth 认证服务\n\n找到 pmhub-auth 项目，右键 Run PmHubAuthApplication.main()。\n\n③、启动 pmhub-system 系统服务\n\n找到 pmhub-system 项目（在pmhub-modules 下），右键 Run PmHubSystemApplication.main()。\npmhub-system 启动前需要修改 nacos 中的 pmhub-system-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n\n![修改pmhub-system配置](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_0567e6748293.png)\n\n④、启动 pmhub-project 项目管理服务\n\n找到 pmhub-project 项目（在pmhub-modules 下），右键 Run PmHubProjectApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-project-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑤、启动 pmhub-workflow 流程管理服务\n\n找到 pmhub-workflow 项目（在pmhub-modules 下），右键 Run PmHubWorkflowApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-workflow-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑥、启动 pmhub-gen 代码生成服务\n\n找到 pmhub-gen 项目（在pmhub-modules 下），右键 Run PmHubGenApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-gen-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑦、启动 pmhub-job 定时任务调度服务\n\n找到 pmhub-job 项目（在pmhub-modules 下），右键 Run PmHubJobApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-job-dev.yml 配置文件，修改数据库连接信息为你自己的数据库。\n\n⑧、启动 pmhub-monitor 监控服务\n\n找到 pmhub-monitor 项目，右键 Run PmHubMonitorApplication.main()。\n\n启动前需要修改 nacos 中的 pmhub-monitor-dev.yml 配置文件，修改监控后台的用户名和密码，以及首页展示标题。\n\n启动成功后可访问：http:\u002F\u002Flocalhost:6888\u002Fwallboard\n\n可以在线实时查案各个服务的状态以及日志：\n\n![主界面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_3fa48db691fa.webp)\n\n\n\n\n### 4.3、前端项目启动\n\n请参考 pmhub-ui 项目的 README.md 文档，[前端工程结构说明](pmhub-ui\u002FREADME.md)\n\n> 注意：微服务版本直接启动 pmhub-ui 即可，如果是单体版本的前端需要到 pmhub-boot下的 pmhub-ui 启动。\n\n### 4.4、在线接口文档\n\n[https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fapi-doc.html](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fapi-doc.html)\n\n### 4.5、服务器部署（Docker 方式）\n\n请参考 [云容器部署系统](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker\u002F)\n\n## 五、技术选型\n\n后端技术栈\n\n|         技术          | 说明                   | 官网                                                                                                                         |\n|:-------------------:|----------------------|----------------------------------------------------------------------------------------------------------------------------|\n| Spring & SpringMVC  | Java全栈应用程序框架和WEB容器实现 | [https:\u002F\u002Fspring.io\u002F](https:\u002F\u002Fspring.io\u002F)                                                                                   |\n|     SpringBoot      | Spring应用简化集成开发框架     | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-boot)                                           |\n|     SpringCloud     | 微服务框架                | [https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud](https:\u002F\u002Fspring.io\u002Fprojects\u002Fspring-cloud)                                         |\n|    mybatis-plus     | 数据库orm框架             | [https:\u002F\u002Fbaomidou.com\u002F](https:\u002F\u002Fbaomidou.com\u002F)                                                                             |\n| mybatis PageHelper  | 数据库翻页插件              | [https:\u002F\u002Fgithub.com\u002Fpagehelper\u002FMybatis-PageHelper](https:\u002F\u002Fgithub.com\u002Fpagehelper\u002FMybatis-PageHelper)                       |\n|    elasticsearch    | 近实时文本搜索              | [https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Felasticsearch\u002Fservice](https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Felasticsearch\u002Fservice)                         |\n|        redis        | 内存数据存储               | [https:\u002F\u002Fredis.io](https:\u002F\u002Fredis.io)                                                                                       |\n|      rocketmq       | 消息队列                 | [https:\u002F\u002Frocketmq.apache.org\u002F](https:\u002F\u002Frocketmq.apache.org\u002F)                                                               |\n|       mongodb       | NoSql数据库             | [https:\u002F\u002Fwww.mongodb.com\u002F](https:\u002F\u002Fwww.mongodb.com\u002F)                                                                       |\n|        nginx        | 服务器                  | [https:\u002F\u002Fnginx.org](https:\u002F\u002Fnginx.org)                                                                                     |\n|       docker        | 应用容器引擎               | [https:\u002F\u002Fwww.docker.com](https:\u002F\u002Fwww.docker.com)                                                                           |\n|      hikariCP       | 数据库连接                | [https:\u002F\u002Fgithub.com\u002Fbrettwooldridge\u002FHikariCP](https:\u002F\u002Fgithub.com\u002Fbrettwooldridge\u002FHikariCP)                                 |\n|         oss         | 对象存储                 | [https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31883.html](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31883.html)                   |\n|        https        | 证书                   | [https:\u002F\u002Fletsencrypt.org\u002F](https:\u002F\u002Fletsencrypt.org\u002F)                                                                       |\n|         jwt         | jwt登录                | [https:\u002F\u002Fjwt.io](https:\u002F\u002Fjwt.io)                                                                                           |\n|       lombok        | Java语言增强库            | [https:\u002F\u002Fprojectlombok.org](https:\u002F\u002Fprojectlombok.org)                                                                     |\n|        guava        | google开源的java工具集     | [https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fguava](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fguava)                                                         |\n|      thymeleaf      | html5模板引擎            | [https:\u002F\u002Fwww.thymeleaf.org](https:\u002F\u002Fwww.thymeleaf.org)                                                                     |\n|       swagger       | API文档生成工具            | [https:\u002F\u002Fswagger.io](https:\u002F\u002Fswagger.io)                                                                                   |\n| hibernate-validator | 验证框架                 | [hibernate.org\u002Fvalidator\u002F](hibernate.org\u002Fvalidator\u002F)                                                                       |\n|     quick-media     | 多媒体处理                | [https:\u002F\u002Fgithub.com\u002Fliuyueyi\u002Fquick-media](https:\u002F\u002Fgithub.com\u002Fliuyueyi\u002Fquick-media)                                         |\n|      liquibase      | 数据库版本管理              | [https:\u002F\u002Fwww.liquibase.com](https:\u002F\u002Fwww.liquibase.com)                                                                     |\n|       jackson       | json\u002Fxml处理           | [https:\u002F\u002Fwww.jackson.com](https:\u002F\u002Fwww.jackson.com)                                                                         |\n|      ip2region      | ip地址                 | [https:\u002F\u002Fgithub.com\u002Fzoujingli\u002Fip2region](https:\u002F\u002Fgithub.com\u002Fzoujingli\u002Fip2region)                                           |\n|      websocket      | 长连接                  | [https:\u002F\u002Fdocs.spring.io\u002Fspring\u002Freference\u002Fweb\u002Fwebsocket.html](https:\u002F\u002Fdocs.spring.io\u002Fspring\u002Freference\u002Fweb\u002Fwebsocket.html)   |\n|   sensitive-word    | 敏感词                  | [https:\u002F\u002Fgithub.com\u002Fhoubb\u002Fsensitive-word](https:\u002F\u002Fgithub.com\u002Fhoubb\u002Fsensitive-word)                                         |\n|       chatgpt       | chatgpt              | [https:\u002F\u002Fopenai.com\u002Fblog\u002Fchatgpt](https:\u002F\u002Fopenai.com\u002Fblog\u002Fchatgpt)                                                         |\n|        讯飞星火         | 讯飞星火大模型              | [https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E) |\n\n## 六、PmHub 教程\nPmHub 高质量教程共 70+ 篇，从中整理出 10 篇，供大家免费学习。\n- [（🌟 新人必看）PmHub 系统架构&功能模块一览](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fintroduction\u002Farchitecture-function.html)\n- [（🌟 新人必看）小白如何学习 PmHub](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fintroduction\u002Fbeginner-learn.html)\n- [（🌟 新人必看）如何将 PmHub 写入简历](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fwrite-to-resume.html)\n- [（🌟 新人必看）PmHub 产品原型](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fproductdesign\u002Fproduct-prototype.html)\n- [（🌟 新人必看）项目真实面经](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fglobal-filter-statistics-gateway.html)\n- [（🌟 新人必看）本地快速启动](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fbackend.html)\n- [（🌟 新人必看）PmHub 微服务网关设计](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Farchitecture\u002Fpmhub-gateway.html)\n- [（🌟 新人必看）PmHub 项目工程搭建手册](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker.html#%E6%9C%AC%E5%9C%B0%E5%87%86%E5%A4%87)\n- [（👍 强烈推荐）如何做好产品设计](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fproductdesign\u002Feveryone-is-producter.html)\n- [（👍 强烈推荐）项目真实面经](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Finterview\u002Fglobal-filter-statistics-gateway.html)\n\n\n\n## 七、环境搭建\n\n### 开发工具\n\n|        工具        | 说明           | 官网                                                                                                                       | \n|:----------------:|--------------|--------------------------------------------------------------------------------------------------------------------------|\n|       IDEA       | java开发工具     | [https:\u002F\u002Fwww.jetbrains.com](https:\u002F\u002Fwww.jetbrains.com)                                                                   |\n|   visualstudio   | web开发工具      | [https:\u002F\u002Fcode.visualstudio.com\u002F](https:\u002F\u002Fcode.visualstudio.com\u002F)                                                         |\n|      Chrome      | 浏览器          | [https:\u002F\u002Fwww.google.com\u002Fintl\u002Fzh-CN\u002Fchrome](https:\u002F\u002Fwww.google.com\u002Fintl\u002Fzh-CN\u002Fchrome)                                     |\n|   ScreenToGif    | gif录屏        | [https:\u002F\u002Fwww.screentogif.com](https:\u002F\u002Fwww.screentogif.com)                                                               |\n|     SniPaste     | 截图           | [https:\u002F\u002Fwww.snipaste.com](https:\u002F\u002Fwww.snipaste.com)                                                                     |\n|     PicPick      | 图片处理工具       | [https:\u002F\u002Fpicpick.app](https:\u002F\u002Fpicpick.app)                                                                               |\n|     MarkText     | markdown编辑器  | [https:\u002F\u002Fgithub.com\u002Fmarktext\u002Fmarktext](https:\u002F\u002Fgithub.com\u002Fmarktext\u002Fmarktext)                                             |\n|       curl       | http终端请求     | [https:\u002F\u002Fcurl.se](https:\u002F\u002Fcurl.se)                                                                                       |\n|     Postman      | API接口调试      | [https:\u002F\u002Fwww.postman.com](https:\u002F\u002Fwww.postman.com)                                                                       |\n|     draw.io      | 流程图、架构图绘制    | [https:\u002F\u002Fwww.diagrams.net\u002F](https:\u002F\u002Fwww.diagrams.net\u002F)                                                                   |\n|      Axure       | 原型图设计工具      | [https:\u002F\u002Fwww.axure.com](https:\u002F\u002Fwww.axure.com)                                                                           |\n|     navicat      | 数据库连接工具      | [https:\u002F\u002Fwww.navicat.com](https:\u002F\u002Fwww.navicat.com)                                                                       |\n|     DBeaver      | 免费开源的数据库连接工具 | [https:\u002F\u002Fdbeaver.io](https:\u002F\u002Fdbeaver.io)                                                                                 |\n|      iTerm2      | mac终端        | [https:\u002F\u002Fiterm2.com](https:\u002F\u002Fiterm2.com)                                                                                 |\n| windows terminal | win终端        | [https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Finstall](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Finstall) |\n|   SwitchHosts    | host管理       | [https:\u002F\u002Fgithub.com\u002Foldj\u002FSwitchHosts\u002Freleases](https:\u002F\u002Fgithub.com\u002Foldj\u002FSwitchHosts\u002Freleases)                             |\n\n\n### 开发环境\n\n|      工具       | 版本        | 下载                                                                                                                     |\n|:-------------:|:----------|------------------------------------------------------------------------------------------------------------------------|\n|      jdk      | 1.8+      | [https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F#java8](https:\u002F\u002Fwww.oracle.com\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F#java8) |\n|     maven     | 3.4+      | [https:\u002F\u002Fmaven.apache.org\u002F](https:\u002F\u002Fmaven.apache.org\u002F)                                                                 |\n|     mysql     | 5.7+\u002F8.0+ | [https:\u002F\u002Fwww.mysql.com\u002Fdownloads\u002F](https:\u002F\u002Fwww.mysql.com\u002Fdownloads\u002F)                                                   |\n|     redis     | 5.0+      | [https:\u002F\u002Fredis.io\u002Fdownload\u002F](https:\u002F\u002Fredis.io\u002Fdownload\u002F)                                                               |\n| elasticsearch | 8.0.0+    | [https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Fdownloads\u002Felasticsearch](https:\u002F\u002Fwww.elastic.co\u002Fcn\u002Fdownloads\u002Felasticsearch)                 |\n|     nginx     | 1.10+     | [https:\u002F\u002Fnginx.org\u002Fen\u002Fdownload.html](https:\u002F\u002Fnginx.org\u002Fen\u002Fdownload.html)                                               |\n|   rocketmq    | 5.0.4+    | [https:\u002F\u002Fwww.rabbitmq.com\u002Fnews.html](https:\u002F\u002Fwww.rabbitmq.com\u002Fnews.html)                                               |\n|    ali-oss    | 3.15.1    | [https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31946.html](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F31946.html)               |\n|      git      | 2.34.1    | [http:\u002F\u002Fgithub.com\u002F](http:\u002F\u002Fgithub.com\u002F)                                                                               |\n|    docker     | 4.10.0+   | [https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002F](https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002F)                                                   |\n|    freessl    | https证书   | [https:\u002F\u002Ffreessl.cn\u002F](https:\u002F\u002Ffreessl.cn\u002F)                                                                             |\n\n### 搭建步骤\n\n#### 本地部署教程\n\n> [本地开发环境手把手教程](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fenvironment\u002F)\n\n### 云服务器部署教程\n\n> [环境搭建 & 基于源码的部署教程](docs\u002F安装环境.md)\n\n> [服务器docker启动教程](https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fdocker\u002F)\n\n## 八、内置功能\n> 内置功能我们使用了若依的框架，为什么要用若依，一来我们觉得基础的后台功能没有必要再重复造轮子，我们需要节省时间花力气在项目核心业务上，二来我们希望站在巨人的肩膀上，若依是后台系统中很优秀的框架，我们基于其做的二次开发，相信也能再创辉煌！\n\n1.  用户管理：用户是系统操作者，该功能主要完成系统用户配置。\n2.  部门管理：配置系统组织机构（公司、部门、小组），树结构展现支持数据权限。\n3.  岗位管理：配置系统用户所属担任职务。\n4.  菜单管理：配置系统菜单，操作权限，按钮权限标识等。\n5.  角色管理：角色菜单权限分配、设置角色按机构进行数据范围权限划分。\n6.  字典管理：对系统中经常使用的一些较为固定的数据进行维护。\n7.  参数管理：对系统动态配置常用参数。\n8.  通知公告：系统通知公告信息发布维护。\n9.  操作日志：系统正常操作日志记录和查询；系统异常信息日志记录和查询。\n10. 登录日志：系统登录日志记录查询包含登录异常。\n11. 在线用户：当前系统中活跃用户状态监控。\n12. 定时任务：在线（添加、修改、删除)任务调度包含执行结果日志。\n13. 代码生成：前后端代码的生成（java、html、xml、sql）支持CRUD下载 。\n14. 系统接口：根据业务代码自动生成相关的api接口文档。\n15. 服务监控：监视当前系统CPU、内存、磁盘、堆栈等相关信息。\n16. 缓存监控：对系统的缓存信息查询，命令统计等。\n17. 在线构建器：拖动表单元素生成相应的HTML代码。\n18. 连接池监视：监视当前系统数据库连接池状态，可进行分析SQL找出系统性能瓶颈。\n\n## 九、友情链接\n\n- [paicoding](https:\u002F\u002Fgithub.com\u002Fitwanger\u002Fpaicoding?tab=readme-ov-file) ：⭐️一款好用又强大的开源社区，基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等主流技术栈\n- [toBeBetterjavaer](https:\u002F\u002Fgithub.com\u002Fitwanger\u002FtoBeBetterJavaer) ：🚀一份通俗易懂、风趣幽默的Java学习指南，内容涵盖Java基础、Java并发编程、Java虚拟机、Java企业级开发、Java面试等核心知识点。学Java，就认准二哥的Java进阶之路😄\n- [CodeCanvas](https:\u002F\u002Fgithub.com\u002Ffreestylefly\u002FCodeCanvas) ：📚本代码仓库是作者苍何多年从事一线互联网Java开发的学习历程技术汇总，旨在为大家提供一个清晰详细的学习教程，侧重点更倾向编写Java核心内容。💪🏻\n\n## 十、鸣谢\n感谢所有参与开源贡献的小伙伴，PmHub 因你们而更强大！\n\n## 十一、star 趋势图\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_55c76f00af6f.png)](https:\u002F\u002Fstar-history.com\u002F#laigeoffer\u002Fpmhub&Date)\n\n## 十二、公众号\n\n微信搜 **苍何** 或扫描下方二维码关注苍何的原创公众号，回复 **666** 即可免费领取 2000G 编程学习资源。\n\n![苍何微信公众号](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_readme_70eccfad82cf.png)\n\n## 十三、许可证\n\n[MIT License (MIT)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\u003Chr\u002F>\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nCopyright (c) 2023-2024 PmHub（苍何、沉默王二）","# PmHub 快速上手指南\n\nPmHub 是一套基于 SpringCloud & LLM 的微服务智能项目管理系统，提供单体和微服务两种架构版本，旨在帮助开发者掌握企业级分布式项目的架构设计与开发流程。\n\n## 一、环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n| 组件 | 名称 | 推荐版本 | 说明 |\n| :--- | :--- | :--- | :--- |\n| **JDK** | Java Development Kit | 1.8 | 必须 |\n| **Maven** | 项目构建工具 | 3.9.1+ | 必须 |\n| **MySQL** | 关系型数据库 | 5.7\u002F8.0 | 必须 |\n| **Redis** | 缓存数据库 | Latest | 必须 |\n| **Nacos** | 服务注册与配置中心 | 2.x | 必须 |\n| **IDE** | 开发工具 | IntelliJ IDEA | 推荐 |\n| **Node.js** | 前端运行环境 | 14.x+ | 如需运行前端需安装 |\n\n> **提示**：除 MySQL、Redis、Nacos 可本机安装外，也推荐使用 Docker 部署中间件以简化环境配置。\n\n## 二、安装步骤\n\n### 1. 获取源码\n\n推荐使用国内码云（Gitee）镜像加速下载：\n\n```bash\ngit clone https:\u002F\u002Fgitee.com\u002Flaigeoffer\u002Fpmhub.git\n```\n\n或者从 GitHub 克隆：\n\n```bash\ngit clone git@github.com:laigeoffer\u002Fpmhub.git\n```\n\n### 2. 导入数据库\n\n进入项目 `pmhub\u002Fsql\u002F` 目录，使用 Navicat 或其他数据库工具执行所有 `.sql` 文件。\n*注意：微服务版本中，不同模块可能对应不同的数据库，请根据文件名或注释区分导入。*\n\n### 3. 启动基础中间件\n\n#### 启动 MySQL\n确保本地 MySQL 服务已运行，并创建好对应的数据库。\n\n#### 启动 Redis\n**macOS\u002FLinux:**\n```bash\nredis-server\n```\n**Windows:** 双击 `redis-server.exe` 或使用 Docker：\n```bash\ndocker run --name my-redis -d redis\n```\n\n#### 启动 Nacos\n1. 下载 Nacos Server 并解压。\n2. 修改 `conf\u002Fapplication.properties`，配置数据库连接信息（可参考 `pmhub\u002Fdocker\u002Fnacos\u002Fconf\u002Fapplication.properties`）。\n   - 若本地开发，可关闭鉴权。\n   - 确保数据库用户名、密码与实际一致。\n3. 启动 Nacos：\n   **macOS\u002FLinux:**\n   ```bash\n   sh startup.sh -m standalone\n   ```\n   **Windows:** 双击 `bin\u002Fstartup.cmd`\n\n启动成功后访问 `http:\u002F\u002Flocalhost:8848\u002Fnacos` (账号\u002F密码默认均为 `nacos`) 验证。\n\n*(可选) 其他中间件如 Sentinel、Seata、RocketMQ、SkyWalking 可根据需求参考官方文档单独启动。*\n\n### 4. 配置与启动后端服务\n\n使用 IntelliJ IDEA 打开项目，等待 Maven 依赖下载完成。\n\n#### 关键配置检查\n在启动业务服务前，需登录 Nacos 控制台，找到对应服务的配置文件（如 `pmhub-system-dev.yml`），修改其中的数据库连接地址、用户名和密码为您的本地环境信息。\n\n#### 启动顺序\n建议按照以下顺序启动微服务模块（右键运行 `main` 方法）：\n\n1. **网关服务**: `pmhub-gateway` -> `PmHubGatewayApplication`\n2. **认证服务**: `pmhub-auth` -> `PmHubAuthApplication`\n3. **系统服务**: `pmhub-modules\u002Fpmhub-system` -> `PmHubSystemApplication`\n4. **项目管理服务**: `pmhub-modules\u002Fpmhub-project` -> `PmHubProjectApplication`\n5. **流程管理服务**: `pmhub-modules\u002Fpmhub-workflow` -> `PmHubWorkflowApplication`\n6. **代码生成服务**: `pmhub-modules\u002Fpmhub-gen` -> `PmHubGenApplication`\n\n> **单体版本用户**：只需直接运行 `pmhub-boot\u002Fpmhub-admin` 模块下的 `PmhubApplication` 类即可，无需启动多个微服务。\n\n### 5. 启动前端 (可选)\n\n进入 `pmhub-ui` 目录：\n\n```bash\ncd pmhub-ui\nnpm install\nnpm run dev\n```\n\n## 三、基本使用\n\n1. **访问系统**\n   - 后端网关默认地址：`http:\u002F\u002Flocalhost:8880`\n   - 前端页面地址：`http:\u002F\u002Flocalhost:80` (具体端口视 npm 输出而定)\n   - 在线体验地址：https:\u002F\u002Fpmhub.laigeoffer.cn\u002F\n\n2. **登录系统**\n   - 首次使用请访问 Nacos 或查看项目文档获取默认管理员账号密码。\n   - 微信公众号「苍何」回复 `pmhub` 也可获取测试账号。\n\n3. **核心功能体验**\n   - **项目管理**：创建新项目，分配成员，定义里程碑。\n   - **工作流设计**：进入流程设计页面，可视化配置审批节点与流转规则。\n   - **代码生成**：在代码生成模块选择数据库表，一键生成前后端 CRUD 代码。\n   - **监控看板**：通过 SkyWalking 或 Spring Boot Actuator 查看服务链路追踪与运行状态。\n\n现在您已经成功启动了 PmHub，可以开始探索其微服务架构设计与企业级工作流功能了。","一名即将参加校招的计算机专业学生，正急于在简历中补充一个具备企业级复杂度的微服务项目，以应对大厂面试中的架构设计与分布式事务拷问。\n\n### 没有 pmhub 时\n- **架构认知碎片化**：自学微服务时只能零散地看文档，无法理解 Spring Cloud Gateway、Nacos、Sentinel 等组件在真实业务中如何协同工作，缺乏全局视角。\n- **缺失核心场景实践**：难以亲手实现分布式事务（Seata）、链路追踪（SkyWalking）及高并发下的熔断限流，导致面试时被问到具体落地方案时哑口无言。\n- **工程化能力薄弱**：不懂如何配置 Docker 容器化部署与 Jenkins 持续集成，更缺乏规范的产品设计文档和工作流引擎经验，简历项目显得“学生气”太重。\n- **代码质量无保障**：独自摸索编写的代码缺乏大厂规范指导，存在潜在隐患，无法通过技术专家级别的代码审查模拟。\n\n### 使用 pmhub 后\n- **全景式架构掌握**：直接基于 PmHub 提供的单体到微服务演进版本，直观理清了从网关路由到服务发现的全套交互逻辑，构建起完整的知识体系。\n- **硬核难点逐个击破**：通过复现项目中集成的 RocketMQ 消息队列与 Seata 分布式事务，能够清晰地向面试官阐述数据一致性保证与系统稳定性设计的细节。\n- **具备生产级交付能力**：利用项目内置的 Docker 与 Jenkins 配置，成功将本地项目一键部署至生产环境，并参考完整的产品原型文档，展现出超越应届生的工程素养。\n- **代码风格职业化**：遵循由前蚂蚁金服专家制定的代码规范进行开发，养成了优雅的编码习惯，在模拟面试中能从容应对代码层面的深度提问。\n\nPmHub 不仅是一个开源项目，更是连接校园理论与企业实战的桥梁，帮助求职者用一套真正符合大厂标准的项目作品敲开理想 Offer 的大门。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flaigeoffer_pmhub_90471c65.png","laigeoffer","来个Offer","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flaigeoffer_e52ebbf9.png","🚀来个offer，二哥编程星球的实战项目聚集地，助力每一个渴望进步的小伙伴拿到一个更好的offer💪🏻，欢迎 Follow 关注我们 👉",null,"www.qing_gee@163.com","https:\u002F\u002Flaigeoffer.cn","https:\u002F\u002Fgithub.com\u002Flaigeoffer",[82,86,90,94,98,101,105,109,113],{"name":83,"color":84,"percentage":85},"Java","#b07219",52.9,{"name":87,"color":88,"percentage":89},"Vue","#41b883",27.8,{"name":91,"color":92,"percentage":93},"PLpgSQL","#336790",10,{"name":95,"color":96,"percentage":97},"JavaScript","#f1e05a",7.4,{"name":99,"color":100,"percentage":59},"HTML","#e34c26",{"name":102,"color":103,"percentage":104},"SCSS","#c6538c",0.8,{"name":106,"color":107,"percentage":108},"Shell","#89e051",0.1,{"name":110,"color":111,"percentage":112},"Batchfile","#C1F12E",0,{"name":114,"color":115,"percentage":112},"Dockerfile","#384d54",551,186,"2026-04-16T06:47:28","MIT",4,"Linux, macOS, Windows","未说明",{"notes":124,"python":122,"dependencies":125},"该项目为基于 SpringCloud 和 LLM 的 Java 微服务系统，非纯 Python AI 模型。后端必须运行在 JDK 1.8 环境下，需手动或通过 Docker 部署 MySQL、Redis、Nacos 等中间件。前端为 Vue3。项目提供单体和微服务两种架构版本，微服务版本需依次启动网关、认证、系统及业务模块。",[126,127,128,129,130,131,132,133,134,135],"Java 1.8","Spring Boot 2.7.18","Spring Cloud 2021.0.8","Spring Cloud Alibaba 2021.0.5.0","MySQL (Latest)","Redis (Latest)","RocketMQ 2.2.3","Nacos","Maven 3.9.1","MyBatis-Plus 3.5.1",[36,13],[138,139,140,141,142,143,144,145,146,147,148,149,150],"java","docker-compose","mybatis-plus","mysql","nacos","redis","rocketmq","spring","spring-boot","spring-cloud","spring-cloud-alibaba","spring-cloud-gateway","vue","2026-03-27T02:49:30.150509","2026-04-20T12:57:00.617790",[154,159,164],{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},44785,"启动认证服务和项目管理服务时出现 Bean 依赖错误怎么办？","该错误通常是因为未先启动 Nacos 服务导致的。请按照官方教程先启动 Nacos 服务，教程地址：https:\u002F\u002Flaigeoffer.cn\u002Fpmhub\u002Fquickstart\u002Fenvironment.html","https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fissues\u002F31",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},44786,"点击在线用户功能时报类型转换错误（JSONObject cannot be cast to LoginUser）如何解决？","微服务版本将取消此功能的展示。如需使用该功能，请参考 Boot 单体版本的项目实现。","https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fissues\u002F26",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},44787,"在哪里可以找到 Spring Boot 单体版本的项目代码？","Spring Boot 版本位于项目的 `pmhub-boot` 模块中。","https:\u002F\u002Fgithub.com\u002Flaigeoffer\u002Fpmhub\u002Fissues\u002F23",[170],{"id":171,"version":172,"summary_zh":173,"released_at":174},352277,"v0.0.1","单体架构+微服务，稳定发行版\n\nPmHub 包含认证、流程、项目管理、系统、网关等服务。它集成了 Redis 缓存、RocketMQ 消息队列、Docker 容器化、Jenkins 自动化部署、Spring Security 安全框架、Nacos 服务注册与发现、Sentinel 分布式事务、Spring Boot Actuator 服务监控、SkyWalking 链路追踪、OAuth2 统一认证、OpenFeign 服务调用以及 Vue3 前端框架等互联网开发中常用的主流技术栈，能够帮助开发者快速掌握微服务\u002F分布式项目的核心知识点。\n\n此外，PmHub 也是一套企业工作流开发框架，您可以根据自身需求，迅速定制出适合贵公司的企业工作流系统。","2024-05-29T22:46:26"]