# Jpom(Java Project Online Management)Java项目在线管理
#### 你为什么需要[Jpom](https://gitee.com/keepbx/Jpom)
> SpringBoot、Jboot等框架开发的项目通常是以Jar的方式在后台运行的,如果只有一两个项目,管理起来不是太麻烦,但是当项目多了以后,管理起来就不是那么方便了,当项目出现问题时,能够通过Jpom即时排查问题,问题解决后还可以直接上传修改后的Jar,项目的堆栈信息,服务器CPU、内存使用情况一目了然,不必再登录服务器管理。
> 当多个项目运行在同一台服务器时,运维人员通常也不只一个,如果每个人都登录服务器管理项目,难免会造成一些不必要的麻烦,甚至给服务器的安全性带来问题(服务器密码知道的人越多,越容易泄露),因为不需要登录服务器管理项目,维护人员不需要知道服务器的登录密码,只需要有Jpom的账号就行,Jpom本身可以通过权限管理,给不同用户不同的权限,这样也使得项目的稳定性得到提升。
> Jpom可以在Linux和Windows服务器上运行
### Jpom 目标
> 一款简而轻的低侵入式Java运维、监控软件
#### 项目主要功能及特点
1. 创建、修改、删除项目、Jar包管理
2. 实时查看控制台日志、备份日志、删除日志、导出日志
3. cpu、ram 监控、导出堆栈信息、查看项目进程端口、服务器状态监控
4. 多节点管理、多节点自动分发
5. 多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志
6. 系统路径白名单模式,杜绝用户误操作系统文件
7. 在线管理Nginx配置、ssl证书文件
8. [阿里云 CodePipeline + Oss在线管理](/doc/CodePipeline-Oss.md)
#### 基本操作演示
### 下载安装
1. 下载安装包 [https://gitee.com/keepbx/Jpom/attach_files](https://gitee.com/keepbx/Jpom/attach_files)
2. 上传到服务解压对应路径
3. 命令运行(Jpom.sh、Jpom.bat)
### 编译安装
1. 访问[Jpom](https://gitee.com/keepbx/Jpom)的码云主页,拉取最新完整代码(建议使用master分支)
2. 进入项目目录执行:`mvn clean package`
3. 插件端
1. 查看插件端安装包 modules/agent/target/agent-x.x.x-release
2. 打包上传服务器运行
3. 命令运行(Agent.sh、Agent.bat)
4. 服务端
1. 查看插件端安装包 modules/server/target/server-x.x.x-release
2. 打包上传服务器运行
3. 命令运行(Server.sh、Server.bat)
### 编译运行
1. 访问[Jpom](https://gitee.com/keepbx/Jpom)的码云主页,拉取最新完整代码(建议使用master分支)
2. 运行插件端
1. 运行`cn.keepbx.jpom.JpomAgentApplication`
2. 注意控制台打印的默认账号密码信息
3. 运行服务端
1. 运行`cn.keepbx.jpom.JpomServerApplication`
2. 浏览器访问(如:http://127.0.0.1:2122)
### 管理命令
1. windows中Agent.bat 、Server.bat
```
# 服务端
Server.bat 启动管理面板(按照面板提示输入操作)
# 插件端
Agent.bat 启动管理面板(按照面板提示输入操作)
```
2. linux中Agent.bat 、Server.bat
```
# 服务端
Server.sh start 启动Jpom服务端
Server.sh stop 停止Jpom服务端
Server.sh restart 重启Jpom服务端
Server.sh status 查看Jpom服务端运行状态
# 插件端
Agent.sh start 启动Jpom插件端
Agent.sh stop 停止Jpom插件端
Agent.sh restart 重启Jpom插件端
Agent.sh status 查看Jpom插件端运行状态
```
### 视频教程
[教程列表](https://mp.weixin.qq.com/mp/homepage?__biz=Mzg2OTEzMDIwNg==&hid=5&sn=3712b3edbe0af22c88ac3178a840a799)
[直播回放](https://yq.aliyun.com/live/970)
### Jpom 的参数配置
在项目运行的根路径下创建[`extConfig.yml`](/src/main/resources/bin/extConfig.yml)
具体的配置说明示例请查看[`extConfig.yml`](/src/main/resources/bin/extConfig.yml)
### 演示项目
[https://jpom.keepbx.cn](https://jpom.keepbx.cn)
```
账号:demo
密码:demo123
```
> 演示系统有部分功能做了限制,完整功能请自行部署体验
> 如果出现登录不上,请联系我们,联系方式在最底部
1. [Jboot案例代码](https://gitee.com/keepbx/Jpom-demo-case/tree/master/jboot-test)
2. [SpringBoot案例代码(ClassPath)](https://gitee.com/keepbx/Jpom-demo-case/tree/master/springboot-test)
3. [SpringBoot案例代码(Jar)](https://gitee.com/keepbx/Jpom-demo-case/tree/master/springboot-test-jar)
### 常见问题
[常见问题>>](/FQA.md)
[启动失败问题>>](https://gitee.com/keepbx/Jpom/wikis/pages?sort_id=1395625&doc_id=264493)
[安装说明>>](https://gitee.com/keepbx/Jpom/wikis/pages?sort_id=1395348&doc_id=264493)
[用户角色说明>>](/doc/userRole.md)
[阿里云Oss配置>>](/doc/CodePipeline-Oss.md)
[更新日志>>](/CHANGELOG.md)
[开发计划>>](/PLANS.md)
### 交流讨论 、提供bug反馈或建议
1. QQ群:[136715345](https://shang.qq.com/wpa/qunwpa?idkey=93ff8d8a37a436b752fe38d32075bb1b32a8e0b3d3ff19d0b541ca840433f561)
2. 微信公众号:[CodeGzh](/doc/CodeGzh-QrCode.jpg)
3. 码云: [issues](https://gitee.com/keepbx/Jpom/issues)