[dromara] Simple and lightweight low-intrusive online construction, automatic deployment, daily operation and maintenance, and project monitoring software
[ It is a native ops software /English]
International site: https://jpom.dromara.org ?
Mainland station: https://jpom.top?
If it is a distributed project, the above steps are more complicated.
Let Jpom help you solve these pain points! However, these are only the most basic functions that Jpom addresses.
- Some functions in Windows servers may cause compatibility issues due to system characteristics. It is recommended to fully test them in actual use. Linux currently has good compatibility
- Please install the server and plug-in in different directories, never install them in the same directory.
- To uninstall the Jpom plug-in or server, first stop the corresponding service, and then delete the corresponding program files, log folders, and data directory folders.
- Local build depends on the system environment. If the build command requires maven or node, the corresponding environment needs to be installed on the server where the project is built. If you have already started the server and then installed the corresponding environment, you need to restart the server through the command line before the environment will take effect.
- On Ubuntu/Debian server, the plug-in may fail to be added. Please create a .bash_profile file in the root directory of the current user.
- It is not recommended to downgrade after upgrading to 2.7.x, as it may involve data incompatibility.
- Since the current version 2.xx plug-in and server mainly use the http protocol to communicate, the plug-in and server networks require interoperability, so please pay attention when using them.
- Jpom 3.0 version has begun planning and updating, please look forward to the birth of the new version.
Must read before upgrading: CHANGELOG.md
Jpom supports multiple installation methods to meet the personalized needs of different users. You only need to choose one installation method.
Note: The installation directory is located in the directory where the command is executed!
️ Special reminder: When performing one-click installation, please note that the execution commands cannot be in the same directory, that is, the Server side and Agent side cannot be installed in the same directory!If you need to modify the path where server data and logs are stored, please modify the
jpom.path
configuration property in theapplication.yml
file.
# 一键默认安装
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
After successful startup, the server port is 2122
, and the management page can be accessed through http://127.0.0.1:2122/
(if it is not accessed locally, you need to replace 127.0.0.1 with the IP address of the server you installed).
If you cannot access the management system, execute the command
systemctl status firewalld
to check whether the firewall is turned on. If the status bar displays greenActive: active (running)
you need to allow port2122
.# 放行管理系统的 2122 端口 firewall-cmd --add-port=2122/tcp --permanent # 重启防火墙才会生效 firewall-cmd --reloadIf the port is still inaccessible after being released on the operating system and you are using a cloud server, please go to the cloud server backend to check whether the security group rules allow port 2122.
️ Note: There are many kinds of firewalls in Linux systems: Firewall, Iptables, SELinux, etc. You need to check them all when checking the firewall configuration.
If the server where the server is installed also needs to be managed, the plug-in also needs to be installed on the server (the server and the plug-in can be installed on the same server at the same time)
️ Special reminder: When performing one-click installation, please note that the execution commands cannot be in the same directory, that is, the Server side and Agent side cannot be installed in the same directory!If you need to modify the path for plug-in data and log storage, please modify the
jpom.path
configuration property in theapplication.yml
file.
# 一键默认安装
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
After successful startup, the port of the plug-in is 2123
, and the plug-in is provided to the server.
️ Note: The containerized installation method requires you to install docker first. Click to jump to the docker installation document.
docker run -p 2122:2122 --name jpom-server jpomdocker/jpom
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
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
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
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
Containerized installation is only available in the server version. Due to the isolation between the container and the host environment, many functions on the plug-in side cannot be used normally, so containerization on the plug-in side is of little significance.
For information on installing docker, configuring images, automatically starting, and finding the directory after installation, please refer to the document https://jpom.top/pages/b63dc5/
When running in a lower version of docker, the error
ls: cannot access'/usr/local/jpom-server/lib/': Operation not permitted
may occur. In this case, you need to add the--privileged
parameter, such as:docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged
agent-xxx-release
directory is all installation files on the plug-in side.2123
server-xxx-release
directory contains all installation files of the server.2122
Access the management page: http://127.0.0.1:2122/
(for non-local access, replace 127.0.0.1
with your server IP address)web-vue
directory and execute npm install
(the vue environment needs to be built and installed in advance for dependency packages, please check the README.md in the web-vue directory for details)npm run build
to package the vue projectmvn clean package
modules/agent/target/agent-xxx-release
2123
modules/server/target/server-xxx-release
2122
Access the management page: http://127.0.0.1:2122/
(for non-local access, replace 127.0.0.1
with your server IP address)You can also use
script/release.bat
orscript/release.sh
for quick packaging.
Need to pay attention to modifying the token value in the
.env
file
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
org.dromara.jpom.JpomAgentApplication
2123
org.dromara.jpom.JpomServerApplication
2122
web-vue
directory (the prerequisite is that the local development environment has node and npm environments)npm install
on the consolenpm run dev
on the consolehttp://127.0.0.1:3000/
(for non-local access, replace 127.0.0.1
with your server IP address) # 服务端管理脚本 (命令行)
./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
After startup in Windows system, you need to follow the startup status according to the log. If garbled characters appear, please check or modify the encoding format. The recommended bat encoding format in Windows system is
GB2312
# 服务端
./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)
The installation service here is for reference only. In practice, the configuration can be customized according to needs.
After using
./bin/Service.sh install
successfullysystemctl {status | start | stop | restart} jpom-server
systemctl {status | start | stop | restart} jpom-agent
In the root path of the project running:
./conf/application.yml
application.yml
application.yml
./conf/logback.xml
logback.xml
logback.xml
Some pictures may load slowly.
Node.js compiles the specified directory:
yarn --cwd xxxx/ install
yarn --cwd xxxx/ build
Maven compiles the specified directory:
mvn -f xxxx/pom.xml clean package
Thank you to all friends who appreciate and contribute. Your support is the driving force for us to continue to update and move forward!
In order to better maintain the open source project, we decided to launch peripheral products.
Support us by purchasing so that you not only get a small product but we also get the profit from your purchase (the price of peripheral products will be slightly higher than the market price, please do not place an order if you mind)
Submitting a contribution is deemed to have signed the CLA agreement
As an open source project, Jpom cannot do without the support of the community. Anyone is welcome to modify and make suggestions. No matter how big or small your contribution is, your contribution will help thousands of users and developers behind it, and your contribution will always remain in the project's contributor list. This is also the meaning of open source projects!
In order to ensure the quality and specification of the project code, and to help you understand the structure of the project faster, please read before contributing:
Fork this repository.
After Fork, there will be an additional warehouse under your account that is exactly the same as this warehouse. Clone your account's warehouse locally.
Pay attention to replacing分支名
and用户名
in the link.
If you are contributing code, fill in dev
for the branch name; if you are contributing documents, fill in docs
for the branch name.
git clone -b 分支名 https://gitee.com/用户名/Jpom.git
Modify the code/document and submit it after modification.
# 把修改的文件添加到暂存区
git add .
# 提交到本地仓库,说明您具体做了什么修改
git commit -m '填写您做了什么修改'
# 推送到远程仓库,分支名替换成 dev 或者 docs
git push origin 分支名
Log in to your warehouse, and then you will see a PR request. Click Request Merge and wait for the administrator to merge your code.
branch | illustrate |
---|---|
master | Master branch, protected branch, this branch does not accept PR. After the beta branch is tested and there are no problems, it will be merged into this branch. |
beta | Beta version branch, protected branch, this branch does not accept PR. After testing on the dev branch, it will be merged into this branch. |
dev | Development branch, accepts PR, please submit PR to dev branch. |
docs | Project document branch, accepting PR, introducing project functions, summarizing frequently asked questions, etc. |
Currently, the dev and docs branches are mainly used and accept PR modifications. The other branches are archive branches and contributors can ignore them.
Made with contrib.rocks.
Project name | Project address | Project introduction |
---|---|---|
SpringBoot_v2 | https://gitee.com/bdj/SpringBoot_v2 | A pure scaffolding based on springboot |
TLog GVP Project | https://gitee.com/dromara/TLog | A lightweight distributed log tag tracking artifact that can be accessed in 10 minutes and automatically tags logs to complete link tracking of microservices. |
Sa-Token | https://gitee.com/dromara/sa-token | This may be the most comprehensive Java authority authentication framework in history! |
Erupt | https://gitee.com/erupt/erupt | Zero front-end code, pure annotation development admin management background |
hippo4j | https://gitee.com/magegoofy/hippo4j | Powerful dynamic thread pool framework with monitoring and alarm functions. |
HertzBeat | https://gitee.com/dromara/hertzbeat | Easy-to-use and friendly cloud monitoring system, no Agent required, powerful custom monitoring capabilities. |