# Wukong_HRM: Java HRM Setup, Architecture, and Deployment

> Wukong_HRM is a Java and Vue human resource management system covering employee records, recruitment, attendance, payroll, social insurance, and performance. Its bundled frontend simplifies deployment, but the documented setup requires several external services.

**WuKongOpenSource/Wukong_HRM** — 悟空HRM人力资源管理系统-提供入职管理、招聘管理、绩效考核管理等一站式人力管理流程

- Repository: https://github.com/WuKongOpenSource/Wukong_HRM
- Website: https://www.72crm.com
- Stars: 1,592 · Forks: 102
- Language: Java
- License: NOASSERTION
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/wukongopensource-wukong-hrm

## Wukong_HRM's Scope for Centralized Personnel Administration

Wukong_HRM addresses the administrative work that follows a company from recruiting a person to managing that person's employment. The repository description identifies onboarding, recruitment, and performance management, while the README expands the scope to organizational planning, employee records, attendance, payroll, social insurance, performance, and employee self-service. The intended user is an organization that wants these records in one system rather than handling each process through unrelated tools.

The repository separates its Java backend from a Vue client, but the normal backend package also contains the compiled frontend. The README explicitly says this arrangement removes the need to run or build a separate frontend service. That is a meaningful deployment simplification for an internal HR system. It does not remove the browser, identity, database, cache, or search dependencies needed by the server.

The repository contains `common`, `DB`, `hrm`, and `ux`. Based on those directory names, shared code, database initialization files, backend implementation, and frontend source are separate concerns. The README does not document tenant isolation, approval workflows, data retention, or detailed permission behavior. Organizations that intend to use Wukong_HRM for sensitive employee records need to inspect those areas directly before treating the system as their authoritative HR record.

## Spring Boot, MyBatis, Vue, and External Service Boundaries

The backend uses Spring Boot 2.7.15 and Spring Cloud Alibaba 2021.0.5.0, with MyBatis-Plus 3.5.3.2 providing the ORM layer. The client uses Vue 2.5.17, Vue Router 3.0.1, Vuex 3.0.1, Element 2.12.0, and Axios 0.18.0. This is a separated frontend and backend arrangement in the source tree, even though the packaged application can serve the compiled client.

The documented runtime also depends on MySQL 8 or later, Redis with no stated version limit, and Elasticsearch 8.5.3. Database initialization SQL lives under `DB`. Redis is configured with a password during installation, and Elasticsearch has its security features enabled while SSL is disabled for HTTP and transport in the README's example. Those choices define operational boundaries. MySQL stores application data, Redis participates in runtime operation, and Elasticsearch provides search indexing for the application. The README does not map individual endpoints to these services, so more detailed claims would require reading the module configuration.

The interface documentation is exposed at `http://localhost:44311/doc.html` after the application starts. This indicates a separate HTTP port for the documented API, but the README does not explain deployment behind a reverse proxy or the settings for a public-facing production endpoint.

## Preparing CentOS, Redis, and Elasticsearch 8.5.3

The documented installation targets Linux and recommends CentOS. It asks for at least 16 GB of memory, four CPU cores, and 100 GB of disk. These are substantial prerequisites for evaluation as well as deployment. The README lists Java 8, Maven 3.5 or later, MySQL 8 or later, Redis, and Elasticsearch 8.5.3.

The following block is the README's Redis setup sequence. The password shown there is an installation example rather than a production credential.

```bash
yum -y install epel-release
yum -y install redis
systemctl start redis
requirepass 123456
systemctl restart redis
```

The README says to append the password to `/etc/redis.conf`, or replace the commented example, and then restart Redis. Operators should confirm that access is restricted to the networks that require it. The README does not document a procedure for managing production Redis credentials.

Elasticsearch 8.5.3 is installed from a separate archive and started under an `elasticsearch` account. The README also installs the `analysis-icu` plugin and resets the `elastic` password.

```bash
useradd elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.3-linux-x86_64.tar.gz
tar xvf elasticsearch-8.5.3-linux-x86_64.tar.gz
chown -R elasticsearch:elasticsearch elasticsearch-8.5.3
chmod -R 777 elasticsearch-8.5.3
./elasticsearch-plugin install analysis-icu
./elasticsearch-reset-password -u elastic
su elasticsearch
./elasticsearch
```

The documented `elasticsearch.yml` additions disable the GeoIP downloader and disable SSL for the shown HTTP and transport settings. This may simplify a local evaluation, but it does not define network boundaries, backups, access control, or recovery.

## Importing wk_hrm_open and Building the Java Modules

After creating the `wk_hrm_open` database, the README instructs users to import SQL from `DB`. Its example ends with an unfilled project-path marker, so the documentation does not identify the exact SQL filename.

```text
create database wk_hrm_open character set utf8mb4 collate utf8mb4_general_ci;
use wk_hrm_open;
source XXX（项目路径）
```

Maven is installed through the CentOS package repository if needed. The next documented build is `mvn install` from the project root.

```bash
yum -y install maven
mvn install
```

Database and Redis credentials are configured under the `hrm` module's resource directory. Identity settings require an account from `https://id.72crm.com/`. After registration, the README directs users to select a default enterprise, choose the human resources application from its application list, and copy three values into `hrm-web/src/main/resources/application.yml`: `appId`, `clientId`, and `clientSecret`. It also says to place the App ID in `hrm-web/src/main/resources/static/APPLICATION_ID.txt`.

This identity setup is an external dependency beyond the local services. The README does not state what happens when these values are absent, whether credentials can be rotated without rebuilding, or how an isolated environment should authenticate. Those points need verification before deployment.

## Deploying hrm-web and Checking the Interface Documentation

Wukong_HRM can be packaged without a separate frontend build. The README builds `hrm-web.zip`, copies it under `/opt/package`, extracts it into `hrm`, and starts it with `72crm.sh`.

```bash
mkdir /opt/package
mvn clean -Dmaven.test.skip=true package
cp hrm-web/target/hrm-web.zip /opt/package
cd /opt/package
unzip hrm-web.zip -d hrm
cd hrm-web
sh 72crm.sh start
```

Skipping Maven tests is part of the documented packaging command. It produces a deployment artifact, but it is not evidence that the application has passed its tests. The repository has no GitHub releases, so the source-tree Maven build is the documented route rather than a formal release download.

Once the service is available, the first documented integration check is its interface page at port 44311.

```text
http://localhost:44311/doc.html
```

The README does not document a stop command, health endpoint, log location, rollback procedure, backup schedule, or upgrade sequence. Loading the interface page is therefore only an initial check. Database behavior, identity integration, file persistence, and the individual HR workflows still require validation.

Source-based frontend development is available through the `ux` directory. The instructions require Node LTS, `npm install`, and `npm run dev`, after which the documented URL is `http://localhost:8090`. Before building, `config/prod.env.js` must receive the required `BASE_API` value. This route is optional when deploying the packaged backend because the compiled frontend files are included.

## Wukong_HRM's Operational and Licensing Boundaries

The main limitation is operational complexity. A working environment needs several separately installed services plus a Wukong ID account. The recommended hardware also exceeds what a developer might expect for an initial evaluation. The README says a Docker image is forthcoming, and it provides no rollback or upgrade documentation. Recovery planning and infrastructure ownership must therefore be addressed outside the published installation guide.

The documented dependencies are version-sensitive. Elasticsearch is fixed at 8.5.3, Java is listed as 1.8, and MySQL is listed as 8 or later. The README does not state whether different patch releases or later major versions are supported. Substituting them moves beyond the documented setup and requires separate compatibility checks.

The repository is not archived, and its last push was on 2026-09-11. However, it has no GitHub releases. That push date shows recent repository activity, not a documented support schedule, compatibility matrix, or upgrade policy.

The repository declares a custom license under GitHub's `Other` classification. The README does not summarize its permissions or restrictions, so `LICENSE.txt` must be reviewed before modifying or redistributing the source. GitHub's classification alone does not establish equivalent permissions to a standard open source license.

A practical alternative is a set of specialized systems for recruitment, attendance, payroll, and performance, joined by a small service that maintains organization and employee identifiers. That approach reduces the number of processes owned by one codebase but adds integration work and makes consistent employee records harder. Wukong_HRM takes the opposite approach by placing multiple HR processes in one repository and runtime stack.

## Conclusion

Wukong_HRM fits organizations that want a centralized, Chinese-language HRM and are prepared to operate MySQL, Redis, Elasticsearch, Java services, and a packaged Vue application. It is a poor fit for a small team seeking a documented one-command installation or for evaluators who require a conventional open source license and a formal release process. Before adoption, verify `LICENSE.txt`, inspect the service configuration under `hrm`, confirm compatibility with the documented CentOS dependencies, and test `72crm.sh` in a disposable environment.

## FAQ

### Does Wukong_HRM require a separately built Vue frontend?

No. The README says the repository includes the packaged Vue files, so the documented backend deployment does not require a separate frontend build. Developers can still work with the `ux` source directory.

### What services are required to install Wukong_HRM?

The README lists Java 8, Maven 3.5 or later, MySQL 8 or later, Redis, and Elasticsearch 8.5.3. Setup also requires a Wukong ID account and the corresponding App ID, client ID, and secret values.

### How are Wukong_HRM releases and upgrades handled?

The repository has no GitHub releases, and the README does not document a rollback or upgrade procedure. It directs users to build `hrm-web.zip` with Maven and start the extracted package through `72crm.sh`.

## Sources

- [Issues](https://github.com/WuKongOpenSource/Wukong_HRM/issues)
- [Project website](https://www.72crm.com)
- [README](https://github.com/WuKongOpenSource/Wukong_HRM/blob/main/README.md)
- [WuKongOpenSource/Wukong_HRM on GitHub](https://github.com/WuKongOpenSource/Wukong_HRM)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/wukongopensource-wukong-hrm
