<a href="https://jpom.top/" target="_blank">
<img src="https://jpom.top/images/logo/jpom_logo.svg" width="400" alt="logo">
</a>
<strong>【dromara】🚀Simple and lightweight low-invasive online build, automated deployment, daily operations, and project monitoring software.</strong>
【It is also a native ops software / 中文】
<a target="_blank" href="https://gitee.com/dromara/Jpom">
<img src='https://gitee.com/dromara/Jpom/badge/star.svg?theme=gvp' alt='gitee star'/>
</a>
<a target="_blank" href="https://github.com/dromara/Jpom">
<img src="https://img.shields.io/github/stars/dromara/Jpom.svg?style=social" alt="github star"/>
</a>
<a target="_blank" href="https://license.coscl.org.cn/MulanPSL2">
<img src="https://img.shields.io/:license-MulanPSL2-blue.svg" alt="license"/>
</a>
<a target="_blank" href="https://gitee.com/dromara/Jpom">
<img src='https://img.shields.io/badge/JDK-1.8.0_40+-green.svg' alt='jdk'/>
</a>
<a target="_blank" href="https://www.codacy.com/gh/dromara/Jpom/dashboard?utm_source=github.com&utm_medium=referral&utm_content=dromara/Jpom&utm_campaign=Badge_Grade">
<img src="https://app.codacy.com/project/badge/Grade/843b953f1446449c9a075e44ea778336" alt="codacy"/>
</a>
👉 International Station:<a target="_blank" href="https://jpom.dromara.org">https://jpom.dromara.org</a> 👈
👉Mainland Station:<a target="_blank" href="https://jpom.top">https://jpom.top/</a> 👈
For distributed projects, these steps are even more cumbersome.
Let Jpom help you solve these pain points! And these are just the basic features that Jpom offers.
- On Windows servers, some features may have compatibility issues due to system characteristics. It is recommended to thoroughly test in practical use. Linux currently has good compatibility.
- Install the server and plugin components in different directories; do not install them in the same directory.
- To uninstall Jpom plugin or server components, first stop the corresponding service, then delete the related program files, log folders, and data directories.
- Local builds depend on the system environment. If build commands require Maven or Node.js, ensure the corresponding environment is installed on the build server. If the environment is installed after the server is started, restart the server via the command line for the environment to take effect.
- On Ubuntu/Debian servers, the plugin component may fail to add. Please create a .bash_profile file in the root directory of the current user.
- After upgrading to version 2.7.x, downgrading is not recommended due to potential data incompatibility issues.
- Currently, version 2.x.x uses HTTP for communication between the plugin and server components, so ensure network connectivity between them during use.
- Jpom version 3.0 is already being planned. Stay tuned for the new release!
Must-read before upgrading: CHANGELOG.md
Jpom supports various installation methods to meet different user needs. Just choose one method to install.
Note: The installation directory is the current directory where the command is executed!
⚠️ Special Reminder: When using the one-click installation, ensure the command is executed in different directories. The Server and Agent cannot be installed in the same directory!
To change the data and log storage paths of the server, modify the
jpom.pathconfiguration property in the fileapplication.yml
# Default one-click installation
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
# Default one-click installation and automatic startup service configuration
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default+service
# Install server and jdk environment
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
# Install server and jdk, maven environment
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 a successful startup, the server port is 2122. You can access the management page via http://127.0.0.1:2122/
(if not accessing from the local machine, replace 127.0.0.1 with the IP address of the installed server).
If you cannot access the management system, run the command
systemctl status firewalldto check if the firewall is enabled. If you seeActive: active (running)in green in the status bar, you need to allow port2122.```bash
Allow port 2122 for the management system
firewall-cmd --add-port=2122/tcp --permanent
Reload the firewall to take effect
firewall-cmd --reload ```
If you have allowed the port in the operating system but still cannot access it, and you are using a cloud server, check the security group rules in the cloud server's control panel to see if port 2122 is allowed.
⚠️ Note: There are multiple firewalls in Linux systems: Firewall, Iptables, SELinux, etc. When checking firewall configurations, make sure to check all of them.
If the server where the server side is installed also needs to be managed, you need to install the agent on the server side as well (both the server and agent can be installed on the same server but in different directories).
⚠️ Special reminder: Do not execute the one-click installation command in the same directory for both the Server and Agent!
If you need to modify the agent data and log storage paths, update the
jpom.pathconfiguration property in the fileapplication.yml
# Default one-click installation
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default
# Default one-click installation and auto-configure startup service
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default+service
# Install agent and JDK environment
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 a successful startup, the agent port is 2123, which is used by the server.
⚠️ Note: Container installation requires Docker to be installed first. Click here for Docker installation documentation
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
Container installation only provides the server version. Due to isolation between the container and the host environment, many functionalities of the agent cannot be used properly. Therefore, containerization of the agent is not very meaningful.
For more information on installing Docker, configuring images, auto-start, and locating the installation directory, refer to the documentation https://jpom.top/pages/b63dc5/
In lower versions of Docker, you may encounter the error
ls: cannot access'/usr/local/jpom-server/lib/': Operation not permittedIn this case, add the--privilegedparameter Example:docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged
agent-x.x.x-release directory contains all the installation files for the agent2123server-x.x.x-release directory contains all the installation files for the server