Deployment Guide

Deploy on Docker / Windows / Linux — pick the setup that fits your server

The package contains: application JAR, Docker build files, multi-platform start scripts and documentation. JDK 17+ must be installed before running (except for the Docker option).

Recommended build: Adoptium Temurin — https://adoptium.net/

Docker Deployment Recommended

Works on any host OS and is the simplest option. It ships with MySQL / Redis / app container orchestration and persistent volumes — ready to run out of the box.

1. Requirements

ComponentVersionNotes
Docker20.10+Docker Compose v2 plugin required
Memory2 GB+Three containers (MySQL / Redis / app)

The front-end pages and Tomcat are embedded in the JAR; only port 8080 needs to be exposed.

2. Package layout

crm-system-<version>-docker/ ├── crm-system.jar # Executable backend jar (embedded front-end, default config and DDL SQL) ├── application.yml # Editable config (mounted into the container; restart app after changes) ├── init.sql # DDL SQL (schema is created automatically; kept for manual init / audit) ├── demo-data.sql # Optional demo business data (import after tables are created) ├── Dockerfile # Application image ├── docker-compose.yml # One-click orchestration (MySQL + Redis + app) ├── .env.example # Template of license master key and other variables └── VERSION

3. Steps

3.1 Unzip and run

A demo master key is bundled (Crm2026@MasterKey!X8zQwL9p, matching the ciphertext inside the code). Database / Redis connections and the license key are pre-configured, so no .env file is needed — just unzip and start.

3.2 One command startup

docker compose up -d --build

On first start it pulls the MySQL / Redis images, builds the application image, and creates the database and tables automatically (no manual SQL import). After about 1–2 minutes, visit:

http://<server-ip>:8080

3.3 Common commands

docker compose ps # Show status docker compose logs -f app # Follow application logs docker compose restart app # Restart app (after config changes) docker compose down # Stop and remove containers (volumes kept) docker compose down -v # Stop and remove containers and volumes (destroys data)

4. Changing configuration

Built-in defaults: MySQL user root / password rootroot, Redis without password.

Host port mapping (high ports are used so they never clash with a MySQL / Redis already listening on 3306 / 6379; inside the containers the default ports are still used):

ServiceHost portContainer port
Web80808080
MySQL133063306
Redis163796379

If host port 8080 is taken too, change the app service mapping from - "8080:8080" to - "8081:8080".

There are two ways to configure the app (priority: environment variables > application.yml):

Option A: edit application.yml in the package root (mounted into the container as /app/application.yml)

Apply the change with:

docker compose restart app

Option B: change the environment variables in docker-compose.yml

For example to change the MySQL password: update MYSQL_ROOT_PASSWORD on the mysql service and DB_PASSWORD on the app service, then rebuild:

docker compose up -d --build

init.sql is the full DDL script. The application creates the schema automatically on first start — no manual import is required; the file is kept for manual initialization or structure auditing.

Optional demo data: a fresh deployment contains no business data. To preload demo customers / leads / contracts, run this after tables are created (empty database or demo environments only):
docker compose exec -T mysql mysql -uroot -prootroot crm_db --default-character-set=utf8mb4 < demo-data.sql
The script is idempotent, so repeated runs never duplicate rows; if legacy demo data has grown, clean it up with fix-dup-data.sql.

About the license master key: this Docker package is encrypted with the demo master key so it works out of the box. Do not change CRM_LICENSE_MASTER_KEY casually — for a custom key, use ./start.sh configure from the Linux/Windows native package to regenerate the matching ciphertext from your new master key and fill in both values together; otherwise the app fails to start (error: license master key does not match the ciphertext / Tag mismatch).

5. License activation

  • After the first login, follow the dialog to start a “free trial” (14 days) or upload a formal License Key
  • Manage licenses: log in as admin → System → License Management (view / issue licenses)
  • The machine fingerprint is derived from the host hardware serial + MAC address, so keep the hardware stable; replacing the machine requires a new license

6. Demo accounts

AccountPasswordRole
admin123456Super Administrator
sales01123456Sales Manager
sales02123456Sales Rep
market01123456Marketing Administrator

Change these default passwords immediately after the first login in production.

← Back to Home
WeChat QR code WeChat
WeChat QR code

Scan to chat on WeChat

WeChat group Group
WeChat group

Scan to join the WeChat group

Manager Yang 18710213152