--- id: development title: How to Run or Build HertzBeat? sidebar_label: Development --- ## Getting HertzBeat code up and running > To get HertzBeat code running on your development tools, and able to debug with breakpoints. > This is a front-end and back-end separation project. > To start the local code, the back-end [manager](https://github.com/apache/hertzbeat/tree/master/hertzbeat-manager) and the front-end [web-app](https://github.com/apache/hertzbeat/tree/master/web-app) must be started separately. ### Backend start 1. Requires `maven3+`, `java25` and `lombok` environments 2. (Optional) Modify the configuration file: `hertzbeat-startup/src/main/resources/application.yml` 3. Execute under the project root directory: `mvn clean install -DskipTests` 4. Add VM Options: `--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED` 5. Start `springboot startup` service: `hertzbeat-startup/src/main/java/org/apache/hertzbeat/startup/HertzBeatApplication.java` ### Frontend start 1. Need `Node pnpm` Environment, Make sure `Node.js >= 18` 2. Cd to the `web-app` directory: `cd web-app` 3. Install pnpm if not existed `npm install -g pnpm` 4. Install Dependencies: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` 5. After the local backend is started, start the local frontend in the web-app directory: `pnpm start` 6. Browser access to localhost:4200 to start, default account/password is *admin/hertzbeat* ## Build HertzBeat binary package > Requires `maven3+`, `java25`, `node` and `pnpm` environments. ### Frontend build 1. Need `Node pnpm` Environment, Make sure `Node.js >= 18` 2. Cd to the `web-app` directory: `cd web-app` 3. Install pnpm if not existed `npm install -g pnpm` 4. Install Dependencies: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` 5. Build web-app: `pnpm package` ### Backend build 1. Requires `maven3+`, `java25` environments 2. Execute under the project root directory: `mvn clean package -Prelease` The HertzBeat install package will be generated at `dist/apache-hertzbeat-{version}-bin.tar.gz` ### Collector build 1. Requires `maven3+`, `java25` environments 2. Execute under the project root directory: `mvn clean install` 3. Cd to the `hertzbeat-collector` directory: `cd hertzbeat-collector` 4. Build the JVM collector package under `hertzbeat-collector` directory: `mvn clean package -Pcluster` 5. Build the native collector package under `hertzbeat-collector` directory: `mvn clean package -pl hertzbeat-collector-collector -am -Pnative` > Native collector packaging requires GraalVM for JDK 25 with the `native-image` tool available in `PATH`. The HertzBeat collector packages will be generated at `dist/apache-hertzbeat-collector-{version}-bin.tar.gz` and a platform-specific native package such as `dist/apache-hertzbeat-collector-native-{version}-linux-amd64-bin.tar.gz`