Jpom

dromara活跃维护

轻量级低侵入的在线构建、自动部署与运维监控平台,支持 SSH 远程管理、Docker 部署和项目状态监控,适合中小团队快速搭建 CI/CD 流程。

【dromara】🚀简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件

v2.11.13发布于 2026-11-07 10:07 UTC1,954star +2 / 7 天378fork同步于 2026-11-10 17:48 UTC

怎么上手

由 README 提炼,执行前请确认
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
硬件要求按 README 说明

README 未说明显存或 GPU 要求;需 JDK 1.8.0_40+ 运行环境,服务端与插件端分别部署,Linux 兼容性良好,Windows 部分功能可能存在兼容性问题

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

轻量低侵入的在线构建、自动部署与运维监控平台,让没有专职运维的团队也能管好服务器

轻量级低侵入的在线构建、自动部署与运维监控平台,支持 SSH 远程管理、Docker 部署和项目状态监控,适合中小团队快速搭建 CI/CD 流程。

核心能力

  • 在线构建支持拉取 GIT、SVN 仓库并定时或 WebHook 触发
  • 内置在线 SSH 终端,可禁用高风险命令并记录命令日志
  • 项目分发一键完成集群多机部署
  • 监控项目状态异常自动报警并尝试重启,支持邮件、钉钉、微信群通知
  • 集成 Docker 容器与 Swarm 集群管理界面,可在线编辑 nginx 配置并 reload

容易踩的坑

服务端和插件端不能安装在同一目录,且安装目录就是执行命令所在目录;本地构建依赖系统环境,用 maven 或 node 需先在服务器装好并重启服务端才生效;默认端口为服务端 2122、插件端 2123,需放行防火墙和云服务器安全组;容器化安装仅提供服务端,插件端容器化意义不大;升级到 2.7.x 后不建议降级,会有数据不兼容

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.11.13
  1. v2.11.132.11.13 (security release)最新正式版2026-11-07 · 2026-11-07 10:07 UTC

    🛡️ Security notice — this is a security release; upgrade if you run ≤ 2.11.12

    Jpom 2.11.13 (released 2026-11-07) fixes multiple security vulnerabilities. All versions ≤ 2.11.12 are affected — upgrade both server and agents.

    • Fixed IDs: CVE-2026-120201 (CVSS 9.8), CVE-2026-111605 (8.1), CVE-2026-91993 (4.3), and a fastjson2-related RCE risk (QVD-2026-45876).
    • Official advisory (authoritative source): https://jpom.top/pages/security/2.11.13/
    • Upgrade: Admin → Online upgrade; or https://d2.jpom.download/release/2.11.13/; Docker jpomdocker/jpom:2.11.13 and jpomdocker/jpom-agent:2.11.13.
    • After upgrade: if jpom.user.token-jwt-key is not configured, a <data>/.jwt-key is generated and existing login tokens become invalid (re-login required; configure the same key on cluster nodes); configure jpom.web.trusted-proxies when the reverse proxy is not on the same host.

    Original release notes below.

    2.11.13-release (2026-11-07)

    🐣 新增功能

    1. 【server】新增 数据库支持使用达梦数据库(感谢@wxyShine )
    2. 【server】新增 FTP 管理,文件查看和构建发布方式新增 FTP 支持
    3. 【server】新增 差异构建支持配置监听路径、排除路径(Ant 风格通配),仅当变更文件匹配规则时才触发构建(感谢@凉拌西瓜 Gitee pr 295 )
    4. 【server】新增 项目文件列表支持分页展示,可切换每页条数(感谢@Justubborn Gitee pr 294 )
    5. 【server】新增 容器构建 java 插件支持 JDK 21、25(#114)
    6. 【server】新增 仓库导入支持 GitLab 私人令牌方式,可直接使用 token 拉取项目(Gitee issues I9AZSS)

    🐞 解决BUG、优化功能

    1. 【server】优化 数据库表支持配置前缀 jpom.db.table-prefix (感谢@ccx2480)
    2. 【server】修复 终端输入命令,按Backspace 会退出终端(感谢@dgs Gitee issues ICA57K )
    3. 【server】优化 脚本日志和 SSH 命令日志支持批量删除(感谢@lin_yeqi Gitee issues IBIM6W )
    4. 【server】修复 表格自定义列在部分字段不生效情况
    5. 【server】优化 构建发布方式中 Docker 镜像支持配置网络模式(感谢@酱总)
    6. 【server】修复 跨工作空间越权访问问题:Docker、SSH 命令、构建仓库、SSH/FTP 文件、监控、节点项目与节点分发等接口未校验资产所属工作空间(#115 #119 #120,CVE-2026-91993、CVE-2026-111605)
    7. 【server】修复 用户身份校验(checkUser)将入参解析为查询条件,可能被利用匹配任意用户的越权风险(#121,CVE-2026-120201)
    8. 【server】修复 系统初始化接口缺少用户名、密码参数校验,可能被绕过初始化的问题
    9. 【server】修复 数据库查询条件注入风险:主键条件以及分页过滤、排序字段统一使用占位符绑定和字段名白名单校验
    10. 【all】升级 Tomcat 9.0.123、JGit、BouncyCastle、commons-lang3 等依赖,修复已知安全漏洞(#118;#116 已评估为不受影响)
    11. 【all】优化 下载中心域名由 d.jpom.download 切换为 d2.jpom.download
    12. 【server】优化 节点监控异常通知内容不再包含完整异常堆栈,仅保留错误信息,减少正式环境无效日志(感谢@Robot Gitee pr 293 )
    13. 【server】修复 JWT 签名密钥未配置时回退到源码公开固定值的问题:现在首次启动自动生成随机密钥并持久化到 <data>/.jwt-key(权限 600),空白配置也视为未配置;建议显式配置至少 32 位随机 jpom.user.token-jwt-key
    14. 【server】修复 客户端可通过伪造 X-Forwarded-For / X-Real-IP 绕过 IP 白名单和登录 IP 失败锁定的问题:新增可信代理配置 jpom.web.trusted-proxies(默认仅信任本机回环),统一 IP 解析并在存在 IPv4 白名单时拒绝非 IPv4 客户端
    15. 【agent】修复 Agent 未配置授权密码时把自动生成的明文密码写入日志的问题:日志不再输出密码,data/agent_authorize.json 权限收紧为 600
    16. 【server】修复 /tools/net-ping、/tools/net-telnet、/tools/ip-list 缺少功能权限、任意登录用户可做服务端网络探测和网卡信息读取的问题:现在要求系统管理员权限,并限制端口/超时、增加操作日志;普通用户仍可使用 Cron 工具
    17. 【server】修复 登录验证码可被空串绕过、账号不存在与密码错误返回码不同导致账号枚举的问题:验证码校验前移并改为一次性、5 分钟有效,账号不存在与密码错误统一返回 501
    18. 【all】升级 fastjson2 及 fastjson1 兼容包到 2.0.66,修复 fastjson2 AutoType 哈希碰撞绕过导致的远程代码执行风险(影响 fastjson2 ≤2.0.62,QVD-2026-45876;openapi 批量接口在鉴权前会解析请求体)
    19. 【all】修复 后端参数校验失败时直接返回 i18n key 未翻译的问题(例如节点注册接口 workspaceId 为空时会提示 i18n.workspace_id_required.c967),现在按请求语言返回提示文案
    20. 【all】优化 补全后端 i18n 遗漏:构建差异检查、JWT 密钥、可信代理、数据库初始化/备份/导入、达梦列 SQL 长度、节点注册错误等 31 处提示与日志支持多语言(新增/补登记 19 个 key,同步 4 种语言),并修正登录验证码提示 key 未登记 words.json、后缀不符合规范的问题
    21. 【all】修复 管理脚本通过 sh xxx.sh 调用时报语法错误的问题,脚本自动切换到 bash 执行(Gitee issues IC20RL )
    22. 【server】修复 终端在空命令行按退格、方向键等按键时数组越界的问题(#109)
    23. 【server】优化 容器构建 runsOn 镜像构建失败时输出明确错误并中断构建,避免后续流程只报 404 No such image(#103)
    24. 【server】修复 构建产物目录配置为绝对路径时构建列表接口 500 的问题(Gitee issues IA6VM8 )
    25. 【server】优
  2. v2.11.122025-05-06 · 2025-05-06 06:49 UTC
    查看更新说明

    🐣 新增功能

    1. 【server】新增 远程安装时的授权码支持(感谢@奇奇)
    2. 【server】修复 SSH控制台输入Control + R后无法记录日志的问题
    3. 【server】优化 容器构建镜像新增 毫秒镜像 临时仓库
    4. 【all】优化 修改 tomcat版本到9.0.99安全版本 (感谢@龙猫 Gitee pr 292)
    5. 【server】新增 服务端在线升级页面支持配置下载授权码,方便国内用户使用全速 CDN
    6. 【server】新增 支持使用 TOPIAM 企业数字身份管控平台登录(oauth2)

    🐞 解决BUG、优化功能

    1. 【server】优化 构建页面保存按钮使用 loading (感谢@hhh Gitee issues IBD8WF )
    2. 【server】优化 SSH 文件列表支持跟随目录排序
    3. 【server】优化 用户操作日志记录表中用户 id 长度不够照成登录失败问题(感谢@Halo Gitee issues IBFNKE )
    4. 【agent】优化 DSL 项目备份支持配置开启或者关闭差异备份(默认使用差异备份:仅备份变动过的文件)(感谢@ercats Gitee issues IBF73J )
    5. 【server】优化 构建 webhook 新增 git 的提交id和提交信息参数(感谢@皮儿卡啦没有丘 Gitee issues IBDEU0 )
    6. 【server】优化 文件中心发布文件支持保存为模板方便后续使用(感谢@lin_yeqi Gitee issues IB2FRF )
    7. 【all】升级 hutool 版本
    8. 【server】修复 ssh文件管理显示错位(感谢@lin_yeqi Gitee issues IB98AU )
  3. v2.11.112024-12-02 · 2024-12-02 02:25 UTC
    查看更新说明
    1. 【server】升级 docker-java 版本到 3.4.0
    2. 【server】优化 数据库备份支持外部调用触发器来实现自定义备份周期(感谢@刘志远)
    3. 【server】优化 SSH、项目 文件管理树加载 loading 避免网络卡顿影响树渲染错误(感谢@Bo)
    4. 【server】优化 SSH、项目 文件管理树支持横向滚动条
    5. 【server】优化 构建记录存储最后 commitId commitMsg 信息(感谢@program)
    6. 【server】优化 引用脚本库时出现 ${xxxx} 出现引用失败:No group with name {xxxx} (感谢@foot_print Gitee issues IAW413 )
    7. 【server】优化 构建环境变量自动识别系统变量密文相关关键词:pwd、pass、password、token 为隐私变量(感谢@lin_yeqi Gitee issues IB34L9 )
    8. 【agent】优化 项目状态触发器 result 参数返回 json 类型,DSL 项目重启成功返回 pid(感谢@新)
    9. 【server】优化 日志查看器中行号增加无法选中样式(感谢@ning Gitee pr 284 )
    10. 【server】修复 容器构建自定义插件,环境变量不匹配问题(感谢@杨晓龙 Gitee pr 285 )
    11. 【agent】优化 项目日志文件编码格式支持独立配置(感谢@不渡 Gitee issues IB3DCP )
    12. 【all】优化 使用默认语言时增加判断所在时区来识别中文环境
    13. 【all】升级 fastjson 依赖版本
  4. v2.11.102024-09-20 · 2024-09-20 08:40 UTC
    查看更新说明

    🐣 新增功能

    1. 【server】新增 项目监控新增沉默时间配置,避免报警后不再触发报警

    🐞 解决BUG、优化功能

    1. 【all】修复 多会话使用文件跟踪器可能出现多个线程未关闭问题(感谢@沐剑屏 Gitee issues IAI0I1 )
    2. 【all】修复 windows 管理脚本在 JDK 1.8 无法正常启动(感谢@流浪的墨染青衫、@LL)
    3. 【server】修复 多个工作空间分组后子工作空间层级异常造成不能正常使用
    4. 【server】修复 监控日志标题字段长度太短在英语模式下字段异常(感谢@Deer)
    5. 【server】优化 监控新增使用语言来实现通知消息国际化
    6. 【server】修复 git仓库账号/密码包含特殊符号导致系统Git工具无法成功认证的问题(感谢@🇩)
    7. 【server】修复 SSH 分片上传极大概率上传失败问题(感谢@勤思·、@张飞鸿)
    8. 【all】升级 hutool、logback、tomcat 版本
    9. 【server】优化 时长格式化工具支持 i18n 国际化
    10. 【server】修复 终端日志处理字节'7'导致的日志补全记录不全 (感谢@adao Github issues 91 )
    11. 【server】升级 spring 包到 5.3.39 修复漏洞 CVE-2024-38808,CVE-2024-38809(感谢@龙猫)Gitee Pr 281
    12. 【server】优化 构建 webhook 携带工作空间和集群id参数(workspaceId、clusterInfoId、workspaceName)(感谢@🦁子)
    13. 【server】修复 构建命令引用脚本时相关脚本引用脚本库未生效问题(感谢@木迷榖)
    14. 【server】优化 构建命令、本地发布命令支持直接引起脚本库(G@("xx") xx 为脚本标记)
    15. 【server】修复 构建时日志记录器异常关闭未提示并且构建状态未修改(感谢@陈晨🍊)
    16. 【server】优化 构建日志弹窗支持查看可用环境变量
    17. 【server】优化 构建支持查看可用环境变量(感谢@慌i Gitee issues IALAUW )
    18. 【server】升级 mysql 驱动版本到 8.2.0
    19. 【server】优化 ssh docker 独立配置是否需要 sudo 执行
    20. 【server】修复 ssh docker 选型固定只有最新 10 条调整为搜索下拉(@山上雪)
  5. v2.11.92024-08-02 · 2024-08-02 08:52 UTC
    查看更新说明

    🐞 解决BUG、优化功能

    1. 【server】修复 静态文件扫描到空时更新数据库异常(感谢@blackcat Gitee issues IA6UO0 )
    2. 【server】修复 SSH命令行操作日志支持更全展示(感谢@beens Gitee issues IA6P3J )
    3. 【all】优化 升级 hutool、oshi、mwiede-jsch、fastjson2 版本
    4. 【server】修复 非管理员用户无法使用脚本库数据(感谢@丁炳坤 Gitee issues IA8ZKP )
    5. 【server】修复 构建编辑页面未输入构建命令提示错误(感谢@yt Gitee issues IAAI8D )
    6. 【server】优化 构建容器镜像支持推送到远程仓库后自动删除本地镜像(感谢 @爱琳琳真是太好了 Gitee issues IA6UBO )
    7. 【server】修复 淘汰 javax.security.cert.X509Certificate(感谢@Jie Github issues 84 )
    8. 【all】优化 启动控制台日志完善 i18n
    9. 【server】修复 证书删除后弹窗未正常关闭
    10. 【server】优化 登录验证码去除易混淆字母(oO0、lL1、q9Q、pP)
    11. 【server】修复 批量构建引起环境变量丢失问题(感谢@xieliangza Github issues 88 )
    12. 【all】优化 解析 HTTP Accept-Language 请求头支持多语言最高优先级
    13. 【server】修复 页面未刷新情况下打开弹窗次数过多不能提示窗口层级太低(感谢@lin_yeqi Gitee issues IAEBUZ )
    14. 【server】优化 分发日志显示关联数据信息(感谢@pumpkinor Gitee issues IAF7IV )
    15. 【server】优化 分发文件使用文件中心或者静态文件上传至节点使用实际文件名(感谢@pumpkinor Gitee issues IAF7GD )
    16. 【server】优化 SSH 文件管理支持浏览器分片上传(感谢@超人那个超i Gitee issues IAD9W4 )
    17. 【all】优化 管理脚本判断 JDK9+ 自动添加解除限制反射参数:--add-opens=xxxx
    18. 【server】优化 更多组件的页面层级问题,避免层级错乱无法正常使用页面相关功能
    19. 【server】修复 容器构建 DSL 配置示例错乱

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    https://jpom.top/pages/project-suspended/

    😭 日常开发中,您是否有以下痛点?

    • 团队中没有专业的运维,开发还要做运维的活,需要自己手动构建、部署项目。
    • 不同的项目有不同的构建、部署命令。
    • 有开发、测试、生产等多环境打包的需求。
    • 需要同时监控多个项目的运行状态。
    • 需要下载 SSH 工具远程连接服务器。
    • 需要下载 FTP 工具传输文件到服务器。
    • 多台服务器时,在不同电脑之间账号密码同步不方便。
    • 想使用一些自动化工具,但是对服务器性能太高,搭建太麻烦。
    • 对自动化工具有个性化的需求,想自己修改项目,但是市面上的工具太复杂了。

    如果是分布式的项目,以上步骤则更加繁琐。

    让 Jpom 来帮您解决这些痛点吧!然而,这些只是 Jpom 解决的最基础的功能。

    😁 使用 Jpom 后

    • 方便的用户管理
      1. 用户操作监控,监控指定用户指定操作以邮件形式通知
      2. 多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志,使用工作空间隔离权限
      3. 账号可以开启 MFA 两步验证提高账号安全性
    • 界面形式实时查看项目运行状态、控制台日志、管理项目文件
      1. 在线修改项目文本文件
    • Docker 容器管理、Docker Swarm 集群管理(Docker UI)
    • 在线 SSH 终端,让您在没有 PuTTY、Xshell、FinalShell 等软件也能轻松管理服务器
      1. 登录 Jpom 系统后不需要知道服务器密码
      2. 能指定 SSH 禁止执行的命令,避免执行高风险命令,并且能自动执行命令日志
      3. 设置文件目录,在线查看管理对应项目文件及配置文件
      4. SSH 命令模版在线执行脚本还能定时执行
      5. 在线修改文本文件
      6. 轻量的实现了简单的"堡垒机"功能
    • 使用项目分发一键搞定集群项目多机部署
    • 在线构建不用手动更新升级项目
      1. 支持拉取 GIT、SVN 仓库
      2. 支持容器构建(docker)
      3. 支持 SSH 方式发布
      4. 支持定时构建
      5. 支持 WebHook 形式触发构建
    • 支持在线编辑 nginx 配置文件并自动 reload 等操作
      1. 管理 nginx 状态,管理 SSL 证书
    • 项目状态监控异常自动报警、自动尝试重启
      1. 支持邮件 + 钉钉群 + 微信群通知,主动感知项目运行状况
    • 节点脚本模版+定时执行或者触发器,拓展更多功能
    • 重要路径授权配置,杜绝用户误操作系统文件

    🔔️ 特别提醒

    1. 在 Windows 服务器中可能有部分功能因为系统特性造成兼容性问题,建议在实际使用中充分测试。Linux 目前兼容性良好
    2. 服务端和插件端请安装到不同目录中,切勿安装到同一目录中
    3. 卸载 Jpom 插件端或者服务端,先停止对应服务,然后删除对应的程序文件、日志文件夹、数据目录文件夹即可
    4. 本地构建依赖的是系统环境,如果构建命令需要使用 maven 或者 node 需要在构建项目的服务器安装好对应的环境。如果已经启动服务端再安装的对应环境需要通过命令行重启服务端后环境才会生效。
    5. 在 Ubuntu/Debian 服务器作为插件端可能会添加失败,请在当前用户的根目录创建 .bash_profile 文件
    6. 升级 2.7.x 后不建议降级操作,会涉及到数据不兼容的情况
    7. 由于目前 2.x.x 版本插件端和服务端主要采用 http 协议通讯,插件端和服务端网络要求互通,在使用的时候请注意。
    8. Jpom 3.0 版本已经开始规划更新了,尽请期待新版本的诞生吧

    🗒️ 版本更新日志

    升级前必看:CHANGELOG.md

    📥 安装 Jpom

    Jpom 支持多种安装方式,满足不同用户的个性化需求,您只需要选择一种方式安装即可。

    方式一:🚀(推荐) 一键安装(Linux)

    一键安装服务端

    注意:安装的目录位于执行命令的目录!

    ⚠️ 特别提醒:一键安装的时候注意执行命令不可在同一目录下,即 Server 端和 Agent 端不可安装在同一目录下!

    如果需要修改服务端数据、日志存储的路径请修改 application.yml 文件中 jpom.path 配置属性。

    # 一键默认安装
    curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
    # 一键默认安装 + 自动配置开机自启服务
    curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default+service
    
    # 安装服务端和 jdk 环境
    yum install -y wget && \
    wget -O install.sh https://jpom.top/docs/install.sh && \
    bash install.sh Server jdk
    
    # 安装服务端和 jdk、maven 环境
    yum install -y wget && \
    wget -O install.sh https://jpom.top/docs/install.sh && \
    bash install.sh Server jdk+mvn
    
    # ubuntu
    apt-get install -y wget && \
    wget -O install.sh https://jpom.top/docs/install.sh && \
    bash install.sh Server jdk
    

    启动成功后,服务端的端口为 2122,可通过 http://127.0.0.1:2122/ 访问管理页面(如果不是本机访问,需要把 127.0.0.1 换成您安装的服务器 IP 地址)。

    如无法访问管理系统,执行命令 systemctl status firewalld 检查下是否开启了防火墙 ,如状态栏看到绿色显示 Active: active (running) 需要放行 2122 端口。

    # 放行管理系统的 2122 端口
    firewall-cmd --add-port=2122/tcp --permanent
    # 重启防火墙才会生效
    firewall-cmd --reload
    

    如果在操作系统上放行了端口仍无法访问,并且您使用的是云服务器,请到云服务器后台中检查安全组规则是否放行 2122 端口。

    ⚠️ 注意: Linux 系统中有多种防火墙:Firewall、Iptables、SELinux 等,再检查防火墙配置时候需要都检查一下。

    一键安装插件端

    如果安装服务端的服务器也需要被管理,在服务端上也需要安装插件端(同一个服务器中可以同时安装服务端和插件端)

    ⚠️ 特别提醒:一键安装的时候注意执行命令不可在同一目录下,即 Server 端和 Agent 端不可安装在同一目录下!

    如果需要修改插件端数据、日志存储的路径请修改 application.yml 文件中 jpom.path 配置属性。

    # 一键默认安装
    curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default
    # 一键默认安装 + 自动配置开机自启服务
    curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default+service
    
    # 安装插件端和 jdk 环境
    yum install -y wget && \
    wget -O install.sh https://jpom.top/docs/install.sh && \
    bash install.sh Agent jdk
    
    # ubuntu
    apt-get install -y wget && \
    wget -O install.sh https://jpom.top/docs/install.sh && \
    bash install.sh Agent jdk
    

    启动成功后,插件端的端口为 2123,插件端提供给服务端使用。

    方式二:📦 容器化安装

    ⚠️ 注意:容器化安装方式需要先安装 docker,点击跳转docker安装文档

    一条命令安装
    docker run -p 2122:2122 --name jpom-server jpomdocker/jpom
    
    使用挂载方式存储相关数据(在部分环境可能出现兼容性问题)
    1. 阿里仓库
    docker pull registry.cn-chengdu.aliyuncs.com/jpomdocker/jpom
    mkdir -p /home/jpom-server/logs
    mkdir -p /home/jpom-server/data
    mkdir -p /home/jpom-server/conf
    docker run -d -p 2122:2122 \
    	--name jpom-server \
    	-v /home/jpom-server/logs:/usr/local/jpom-server/logs \
    	-v /home/jpom-server/data:/usr/local/jpom-server/data \
    	-v /home/jpom-server/conf:/usr/local/jpom-server/conf \
    	jpomdocker/jpom
    
    1. dockerhub 仓库
    docker pull jpomdocker/jpom
    mkdir -p /home/jpom-server/logs
    mkdir -p /home/jpom-server/data
    mkdir -p /home/jpom-server/conf
    docker run -d -p 2122:2122 \
    	--name jpom-server \
    	-v /home/jpom-server/logs:/usr/local/jpom-server/logs \
    	-v /home/jpom-server/data:/usr/local/jpom-server/data \
    	-v /home/jpom-server/conf:/usr/local/jpom-server/conf \
    	jpomdocker/jpom
    
    使用容器卷方式存储相关数据
    1. 阿里仓库
    docker pull registry.cn-chengdu.aliyuncs.com/jpomdocker/jpom
    docker volume create jpom-server-data
    docker volume create jpom-server-logs
    docker volume create jpom-server-conf
    docker run -d -p 2122:2122 \
    	--name jpom-server \
    	-v jpom-server-data:/usr/local/jpom-server/data \
    	-v jpom-server-logs:/usr/local/jpom-server/logs \
    	-v jpom-server-conf:/usr/local/jpom-server/conf \
    	jpomdocker/jpom
    
    1. dockerhub 仓库
    docker pull jpomdocker/jpom
    docker volume create jpom-server-data
    docker volume create jpom-server-logs
    docker volume create jpom-server-conf
    docker run -d -p 2122:2122 \
    	--name jpom-server \
    	-v jpom-server-data:/usr/local/jpom-server/data \
    	-v jpom-server-logs:/usr/local/jpom-server/logs \
    	-v jpom-server-conf:/usr/local/jpom-server/conf \
    	jpomdocker/jpom
    

    容器化安装仅提供服务端版。由于容器和宿主机环境隔离,而导致插件端的很多功能无法正常使用,因此对插件端容器化意义不大。

    安装docker、配置镜像、自动启动、查找安装后所在目录等可参考文档 https://jpom.top/pages/b63dc5/

    在低版本 docker 中运行可能出现 ls: cannot access'/usr/local/jpom-server/lib/': Operation not permitted 错误,此时需要添加 --privileged 参数 如:docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged

    方式三:💾 下载安装

    1. 下载安装包 https://jpom.top/pages/all-downloads/
    2. 解压文件
    3. 安装插件端
      1. agent-x.x.x-release 目录为插件端的全部安装文件
      2. 上传到对应服务器(整个目录)
      3. 启动插件端,Windows 环境用 bat 脚本,Linux 环境用 sh 脚本。(如果出现乱码或者无法正常执行,请检查编码格式、换行符是否匹配。)
      4. 插件端默认运行端口:2123
    4. 安装服务端
      1. server-x.x.x-release 目录为服务端的全部安装文件
      2. 上传到对应服务器(整个目录)
      3. 启动服务端,Windows 环境用 bat 脚本,Linux 环境用 sh 脚本。(如果出现乱码或者无法正常执行,请检查编码格式、换行符是否匹配。)
      4. 服务端默认运行端口:2122,访问管理页面:http://127.0.0.1:2122/(非本机访问把 127.0.0.1 换成您的服务器 IP 地址)

    方式四:⌨️ 编译安装

    1. 访问 Jpom 的码云主页,拉取最新完整代码(建议使用 master 分支)
    2. 切换到 web-vue 目录,执行 npm install(vue 环境需要提前搭建和安装依赖包详情可以查看 web-vue 目录下 README.md)
    3. 执行 npm run build 进行 vue 项目打包
    4. 切换到项目根目录执行:mvn clean package
    5. 安装插件端
      1. 查看插件端安装包 modules/agent/target/agent-x.x.x-release
      2. 打包上传服务器运行(整个目录)
      3. 启动插件端,Windows 环境用 bat 脚本,Linux 环境用 sh 脚本。(如果出现乱码或者无法正常执行,请检查编码格式、换行符是否匹配。)
      4. 默认运行端口:2123
    6. 安装服务端
      1. 查看插件端安装包 modules/server/target/server-x.x.x-release
      2. 打包上传服务器运行(整个目录)
      3. 启动服务端,Windows 环境用 bat 脚本,Linux 环境用 sh 脚本。(如果出现乱码或者无法正常执行,请检查编码格式、换行符是否匹配。)
      4. 服务端默认运行端口:2122,访问管理页面:http://127.0.0.1:2122/(非本机访问把 127.0.0.1 换成您的服务器 IP 地址)

    也可以使用 script/release.bat 或 script/release.sh 快速打包。

    方式五:📦 一键启动 docker-compose

    • 无需安装任何环境,自动编译构建

    需要注意修改 .env 文件中的 token 值

    yum install -y git
    git clone https://gitee.com/dromara/Jpom.git
    cd Jpom
    docker-compose -f docker-compose.yml up
    # docker-compose -f docker-compose.yml up --build
    # docker-compose -f docker-compose.yml build --no-cache
    # docker-compose -f docker-compose-local.yml up
    # docker-compose -f docker-compose-local.yml build --build-arg TEMP_VERSION=.0
    # docker-compose -f docker-compose-cluster.yml up --build
    

    方式六:💻 编译运行

    1. 访问 Jpom 的码云主页 拉取最新完整代码 (建议使用 master 分支,如果想体验新功能可以使用 dev 分支)
    2. 运行插件端
      1. 运行 org.dromara.jpom.JpomAgentApplication
      2. 留意控制台打印的默认账号密码信息
      3. 插件端默认运行端口:2123
    3. 运行服务端
      1. 运行 org.dromara.jpom.JpomServerApplication
      2. 服务端默认运行端口:2122
    4. 构建 vue 页面,切换到 web-vue 目录(前提需要本地开发环境有 node、npm 环境)
    5. 安装项目 vue 依赖,控制台执行 npm install
    6. 启动开发模式,控制台执行 npm run dev
    7. 根据控制台输出的地址访问前端页面:http://127.0.0.1:3000/(非本机访问把 127.0.0.1 换成您的服务器 IP 地址)

    管理 Jpom 命令

    1. Windows 系统使用 bat 脚本文件。
    # 服务端管理脚本 (命令行)
    ./bin/Server.bat start   # 启动Jpom服务端
    ./bin/Server.bat stop    # 停止Jpom服务端
    ./bin/Server.bat restart # 重启Jpom服务端
    ./bin/Server.bat status  # 查看Jpom服务端运行状态
    # 服务端管理脚本 (控制面板),按照面板提示输入操作
    ./bin/Server.bat
    
    # 插件端管理脚本
    ./bin/Agent.bat start   # 启动Jpom插件端
    ./bin/Agent.bat stop    # 停止Jpom插件端
    ./bin/Agent.bat restart # 重启Jpom插件端
    ./bin/Agent.bat status  # 查看Jpom插件端运行状态
    # 插件端管理脚本(控制面板),按照面板提示输入操作
    ./bin/Agent.bat
    
    

    Windows 系统中执行启动后需要根据日志去跟进启动的状态,如果出现乱码请检查或者修改编码格式,Windows 系统中 bat 编码格式推荐为 GB2312

    1. Linux 系统中使用 sh 脚本文件。
    # 服务端
    ./bin/Server.sh start     # 启动Jpom服务端
    ./bin/Server.sh stop      # 停止Jpom服务端
    ./bin/Server.sh restart   # 重启Jpom服务端
    ./bin/Server.sh status    # 查看Jpom服务端运行状态
    ./bin/Service.sh install  # 创建Jpom服务端的应用服务(jpom-server)
    
    # 插件端
    ./bin/Agent.sh start     # 启动Jpom插件端
    ./bin/Agent.sh stop      # 停止Jpom插件端
    ./bin/Agent.sh restart   # 重启Jpom插件端
    ./bin/Agent.sh status    # 查看Jpom插件端运行状态
    ./bin/Service.sh install # 创建Jpom插件端的应用服务(jpom-agent)
    

    Linux 服务方式管理

    这里安装服务仅供参考,实际中可以根据需求自定义配置

    在使用 ./bin/Service.sh install 成功后

    systemctl {status | start | stop | restart} jpom-server

    systemctl {status | start | stop | restart} jpom-agent

    ⚙️ Jpom 的参数配置

    在项目运行的根路径下的 :

    程序配置 ./conf/application.yml

    1. 插件端示例: application.yml
    2. 服务端示例: application.yml

    项目日志 ./conf/logback.xml

    1. 插件端示例: logback.xml
    2. 服务端示例: logback.xml

    📝 常见问题、操作说明

    实践案例

    里面有部分图片加载可能比较慢

    1. 本地构建 + SSH 发布 java 项目
    2. 本地构建 + 项目发布 node 项目
    3. 本地构建 + SSH 发布 node 项目
    4. 本地构建 + 自定义管理 python 项目
    5. 自定义管理 java 项目
    6. 管理编译安装的 nginx
    7. 管理 docker
    8. 容器构建 + 项目发布 java 项目
    9. 更新实践案例>>

    构建案例仓库代码

    1. Jboot 案例代码
    2. SpringBoot 案例代码(ClassPath)
    3. SpringBoot 案例代码(Jar)
    4. node vue 案例代码(antdv)
    5. python 案例代码

    Node.js 编译指定目录:

    yarn --cwd xxxx/ install
    yarn --cwd xxxx/ build
    

    Maven 编译指定目录:

    mvn -f xxxx/pom.xml clean package
    

    🛠️ 整体架构

    jpom-func-arch

    🐞 交流讨论 、反馈 BUG、提出建议等

    1. 快扫描下方左侧微信群二维码和我们一起交流讨论吧!(添加小助手:备注 Jpom 进群)
    2. 开源项目离不开社区的支持,如果项目帮助到了您,并且想给我们加个餐。 欢迎扫描下方微信、支付宝收款码赞赏 或通过码云赞赏 (在项目首页下方点击捐赠,支持微信和支付宝)。赞赏记录
    3. 购买开源周边商品:周边介绍
    4. 企业技术服务请单独与我们联系沟通服务方案
    5. 反馈 BUG、提出建议,欢迎新建:issues,开发人员会不定时查看回复。
    6. 参与贡献,请查看贡献指南。

    感谢所有赞赏以及参与贡献的小伙伴,您们的支持是我们不断更新前进的动力!

    💖 周边商品

    为了更好地维持开源项目,我们决定推出周边商品。

    购买支持我们这样您既获得了一份小商品我们也获得了您购买商品的利润(周边商品的价格会比市场价稍高,介意请勿下单)

    🔨贡献指南

    提交贡献即认为签署了 CLA 协议

    贡献须知

    Jpom 作为开源项目,离不开社区的支持,欢迎任何人修改和提出建议。贡献无论大小,您的贡献会帮助背后成千上万的使用者以及开发者,您做出的贡献也会永远的保留在项目的贡献者名单中,这也是开源项目的意义所在!

    为了保证项目代码的质量与规范,以及帮助您更快的了解项目的结构,请在贡献之前阅读:

    贡献步骤

    1. Fork 本仓库。

    2. Fork 后会在您的账号下多了一个和本仓库一模一样的仓库,把您账号的仓库 clone 到本地。

      注意替换掉链接中的分支名和用户名。

      如果是贡献代码,分支名填 dev;如果是贡献文档,分支名填 docs

      git clone -b 分支名 https://gitee.com/用户名/Jpom.git
      
    3. 修改代码/文档,修改后提交上来。

      # 把修改的文件添加到暂存区
      git add .
      # 提交到本地仓库,说明您具体做了什么修改
      git commit -m '填写您做了什么修改'
      # 推送到远程仓库,分支名替换成 dev 或者 docs
      git push origin 分支名
      
    4. 登录您的仓库,然后会看到一条 PR 请求,点击请求合并,等待管理员把您的代码合并进来。

    项目分支说明

    分支说明
    master主分支,受保护分支,此分支不接受 PR。在 beta 分支后经过测试没问题后会合并到此分支。
    betabeta 版本 分支,受保护分支,此分支不接受 PR。在 dev 分支后经过测试没问题后会合并到此分支。
    dev开发分支,接受 PR,PR 请提交到 dev 分支。
    docs项目文档分支,接受 PR,介绍项目功能、汇总常见问题等。

    目前用到的主要是 dev 和 docs 分支,接受 PR 修改,其他的分支为归档分支,贡献者可以不用管。

    贡献者

    Made with contrib.rocks.

    🌍 知识星球

    🔔 精品项目推荐

    项目名称项目地址项目介绍
    SpringBoot_v2https://gitee.com/bdj/SpringBoot_v2基于springboot的一款纯净脚手架
    TLog GVP 项目https://gitee.com/dromara/TLog一个轻量级的分布式日志标记追踪神器,10分钟即可接入,自动对日志打标签完成微服务的链路追踪
    Sa-Tokenhttps://gitee.com/dromara/sa-token这可能是史上功能最全的 Java 权限认证框架!
    Erupthttps://gitee.com/erupt/erupt零前端代码,纯注解开发 admin 管理后台
    hippo4jhttps://gitee.com/magegoofy/hippo4j强大的动态线程池框架,附带监控报警功能。
    HertzBeathttps://gitee.com/dromara/hertzbeat易用友好的云监控系统, 无需 Agent, 强大自定义监控能力。

    🤝 鸣谢

    • 感谢 JetBrains 提供的免费开源 License: