Installing Drools with Business Central and KIE Server (via Docker Compose)
Step-by-step guide to installing Drools with Docker. Learn how to set up Business Central and KIE Server, deploy rules, and verify your installation.
Understanding the Components
Before installing, it’s important to understand how the Drools ecosystem works:
- Drools (BRM/Rule Engine)
Drools is the core rules engine. It executes your business rules written in DRL (Drools Rule Language) or managed via decision tables, guided rules, or DMN models. - Business Central
Business Central is the web-based workbench for authoring, testing, and managing business rules, processes, and decision models. It provides a UI for business users and developers to collaborate.
➝ Think of it as the “IDE” for Drools, but in a browser. - KIE Server
KIE Server is the runtime execution server. It runs the rules and processes deployed from Business Central. Once you design and package a project in Business Central, you deploy it to KIE Server for execution.
➝ Think of it as the “production runtime” for your rules. - Relationship
Business Central controls and manages projects, while KIE Server executes them.
Business Central communicates with KIE Server via REST APIs (theKIE_SERVER_CONTROLLER
setting in the Docker config links them).
See our full article on this section:
Installation with Docker Compose
Steps to Install
Here’s the provided docker-compose.yml
(simplified for explanation):
version: "3.8"
services:
business-central:
image: jboss/drools-workbench-showcase:latest
container_name: business-central
ports:
- "8080:8080"
environment:
- KIE_SERVER_CONTROLLER=http://kie-server:8080/kie-server/services/rest/server
- KIE_SERVER_CONTROLLER_USER=admin
- KIE_SERVER_CONTROLLER_PWD=admin
- KIE_SERVER_USER=admin
- KIE_SERVER_PWD=admin
- KIE_MAVEN_REPO=http://business-central:8080/business-central/maven2
volumes:
- ./data/businesscentral/data:/opt/jboss/wildfly/standalone/data
- ./data/maven:/opt/jboss/.m2/repository
networks:
- kie-net
kie-server:
image: jboss/kie-server-showcase:latest
container_name: kie-server
ports:
- "8180:8080"
environment:
- KIE_SERVER_ID=kie-server
- KIE_SERVER_LOCATION=http://kie-server:8080/kie-server/services/rest/server
- KIE_SERVER_CONTROLLER=http://business-central:8080/business-central/rest/controller
- KIE_SERVER_CONTROLLER_USER=admin
- KIE_SERVER_CONTROLLER_PWD=admin
- KIE_SERVER_USER=admin
- KIE_SERVER_PWD=admin
- KIE_MAVEN_REPO=http://business-central:8080/business-central/maven2
volumes:
- ./data/kieserver/data:/opt/jboss/wildfly/standalone/data
- ./data/maven:/opt/jboss/.m2/repository
networks:
- kie-net
networks:
kie-net:
driver: bridge
- Save the file as
docker-compose.yml
. - Run Docker Compose in the same directory:
docker-compose up -d
Wait for containers to start (it may take a few minutes on the first run as images are downloaded).
Accessing the Applications
Business Central UI
Open http://localhost:8080/business-central
Credentials:
- Username:
admin
- Password:
admin
You will see home page like below:

That’s verify your business central up and running.
KIE Server REST API
Open http://localhost:8180/kie-server/services/rest/server
Credentials:
- Username:
admin
- Password:
admin
You will see XML content like below:
<response type="SUCCESS" msg="Kie Server info">
<kie-server-info>
<capabilities>KieServer</capabilities>
<capabilities>BRM</capabilities>
<capabilities>BPM</capabilities>
<capabilities>CaseMgmt</capabilities>
<capabilities>BPM-UI</capabilities>
<capabilities>BRP</capabilities>
<capabilities>DMN</capabilities>
<capabilities>Swagger</capabilities>
<location>
http://kie-server:8080/kie-server/services/rest/server
</location>
<messages>
<content>
Server KieServerInfo{serverId='kie-server', version='7.61.0.Final',
name='kie-server',
location='http://kie-server:8080/kie-server/services/rest/server',
capabilities=[KieServer, BRM, BPM, CaseMgmt, BPM-UI, BRP, DMN, Swagger]',
messages=null', mode=DEVELOPMENT}started successfully at Sat Sep 06 15:55:33 UTC
2025
</content>
<severity>INFO</severity>
<timestamp>2025-09-06T15:55:33.682Z</timestamp>
</messages>
<mode>DEVELOPMENT</mode>
<name>kie-server</name>
<id>kie-server</id>
<version>7.61.0.Final</version>
</kie-server-info>
</response>
that’s verify your kie-server up and running.
Test the installed Drools
Define a mocked rule
Login to Business Central, create new project, open Menu → Projects, then create new project:

Once added, Business Central will open project “hello-rules”, click add new asset:

Select DRL:

set name = hello.drl

define the rule:

package com.myspace.hello_rules;
declare Message
message : String
status : String
end
rule "Hello Drools"
when
$m : Message( message == "Hello Drools" )
then
// set status so we can inspect the object after rules fired
$m.setStatus("processed");
System.out.println("Rule fired for message: " + $m.getMessage());
end
Save!
Deploy mocked rule
Deploy the rule to KIE-Server. Open project page in Business Central

Click “deploy”:

Verify container exists on KIE Server
From your host shell:
curl.exe -u admin:admin -H "Accept: application/json" http://localhost:8180/kie-server/services/rest/server/containers
you will see:
{
"type" : "SUCCESS",
"msg" : "List of created containers",
"result" : {
"kie-containers" : {
"kie-container" : [ {
"container-id" : "hello-rules_1.0.0-SNAPSHOT",
"release-id" : {
"group-id" : "com.myspace",
"artifact-id" : "hello-rules",
"version" : "1.0.0-SNAPSHOT"
},
"resolved-release-id" : {
"group-id" : "com.myspace",
"artifact-id" : "hello-rules",
"version" : "1.0.0-SNAPSHOT"
},
"status" : "STARTED",
"scanner" : {
"status" : "DISPOSED",
"poll-interval" : null
},
"config-items" : [ {
"itemName" : "KBase",
"itemValue" : "",
"itemType" : "BPM"
}, {
"itemName" : "KSession",
"itemValue" : "",
"itemType" : "BPM"
}, {
"itemName" : "MergeMode",
"itemValue" : "MERGE_COLLECTIONS",
"itemType" : "BPM"
}, {
"itemName" : "RuntimeStrategy",
"itemValue" : "SINGLETON",
"itemType" : "BPM"
} ],
"messages" : [ {
"severity" : "INFO",
"timestamp" : {
"java.util.Date" : 1757180128747
},
"content" : [ "Container hello-rules_1.0.0-SNAPSHOT successfully created with module com.myspace:hello-rules:1.0.0-SNAPSHOT." ]
} ],
"container-alias" : "hello-rules"
} ]
}
}
}
meaning that Business Central and KIE-Server connected each other.