Deploy Bonita application artifacts to a local Bonita server via Docker Compose. Use when the user wants to deploy, build and deploy, or launch the application locally.
Deploy Bonita application artifacts to a local Bonita Studio server using the bonita-la-deployer tool.
This skill automates the deployment process by building the project (if needed), locating artifacts, and deploying them to the local Bonita runtime.
# Deploy with default settings (builds project first)
/bonita-deploy-local
# Deploy without building (use existing artifacts)
/bonita-deploy-local --skip-build
# Deploy to specific URL
/bonita-deploy-local --url http://localhost:8080/bonita
# Deploy with custom credentials
/bonita-deploy-local --username install --password install
--skip-build - Skip Maven build, use existing artifacts in app/target/--url <url> - Target Bonita server URL (default: http://localhost:8080/bonita)--username <user> - Bonita username (default: install)--password <pass> - Bonita password (default: )installThe infrastructure/build.sh script is a comprehensive deployment tool that handles all deployment steps in a single execution:
Build & Package:
./mvnw clean package -Pdocker -Dbonita.environment=presalesInfrastructure Setup:
Artifact Deployment (automatic):
Process Enablement (automatic):
Note: The infrastructure script replaces the traditional bonita-la-deployer approach by deploying directly through Docker Compose.
IMPORTANT: This skill assumes a running Bonita server at the target URL. Ensure Bonita Studio or Bonita Runtime is started before running this skill.
Default Configuration:
infrastructure/build.shhttp://localhost:8080/bonitainstallinstallArguments: Apply user-provided options from
$ARGUMENTS(e.g.,--skip-build,--url,--username,--password) before starting.
--skip-build flag is setinfrastructure/build.shQuick Verification Commands:
# Check Docker containers
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "bonita|postgres|mail|NAMES"
# Test Bonita server
curl -s -o /dev/null -w "%{http_code}" "http://localhost:8080/bonita/loginservice"
# Expected: 401 (server is running)
# Login and list processes
curl -s -c /tmp/bonita-cookies.txt -d 'username=install&password=install&redirect=false' http://localhost:8080/bonita/loginservice
API_TOKEN=$(grep X-Bonita-API-Token /tmp/bonita-cookies.txt | awk '{print $7}')
curl -s -b /tmp/bonita-cookies.txt -H "X-Bonita-API-Token: $API_TOKEN" http://localhost:8080/bonita/API/bpm/process | jq -r '.[] | "\(.name) v\(.version): \(.activationState)"'
rm /tmp/bonita-cookies.txt
# Check artifact
ls -lh app/target/poc-cnaf-rh2026-*.zip
Verification tasks:
Automated Verification Script:
.claude/skills/bonita-deploy-local/verify.sh
This script performs all verification checks automatically and provides a comprehensive report.
The skill executes the comprehensive deployment script:
cd infrastructure && ./build.sh
What the script does:
docker compose down -v./mvnw bonita-project:install./mvnw clean package -Pdocker -Dbonita.environment=presalesdocker compose up -d./healthz.shEnvironment Variables Used:
BONITA_ENVIRONMENT=presalesBONITA_PROJECT_NAME (from .env file)BONITA_PROJECT_VERSION (from .env file)Docker Compose Services:
Note: Process enablement is built into the Docker container initialization, not done via REST API.
The skill provides deployment status:
Deployment Successful
=====================
Script: infrastructure/build.sh
Environment: presales
Docker Image: poc-cnaf-rh2026:1.0.0
Deployed Components:
✓ Organization: CNAF_organization.xml
✓ Processes: ValidationRecrutement--1.6.bar, ValidationRecrutementZ--1.4.bar
✓ Profiles: default_profile.xml, CNAF_profiles.xml
✓ BDM: bdm.zip
✓ Pages: 16 pages deployed
✓ Theme: presales-template
✓ Extensions: reportingRestAPI
Docker Services:
✓ bonita: Running (http://localhost:8080/bonita)
✓ postgres: Running
✓ mail: Running
Health Check: PASSED
Processes: Automatically enabled
Application is ready at: http://localhost:8080/bonita
Deployment Failed
=================
Error: Connection refused to http://localhost:8080/bonita
Possible causes:
- Bonita server is not running
- Incorrect URL or port
- Firewall blocking connection
Please ensure Bonita Studio/Runtime is started and try again.
After deployment, verify with these commands:
# 1. Check containers are running
docker ps | grep -E "bonita|postgres|mail"
# 2. Test Bonita server
curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/bonita/loginservice
# Expected: 401 or 200
# 3. List processes via REST API
curl -s -c /tmp/cookies.txt -d 'username=install&password=install&redirect=false' http://localhost:8080/bonita/loginservice
API_TOKEN=$(grep X-Bonita-API-Token /tmp/cookies.txt | awk '{print $7}')
curl -s -b /tmp/cookies.txt -H "X-Bonita-API-Token: $API_TOKEN" http://localhost:8080/bonita/API/bpm/process | jq -r '.[] | "\(.name) v\(.version): \(.activationState)"'
rm /tmp/cookies.txt
# 4. Open Bonita Portal
open http://localhost:8080/bonita
# Login: install / install
Deploy to local Bonita Studio during development:
# Build and deploy in one command
/bonita-deploy-local
If Docker services are already running and you only need to rebuild:
# Just rebuild without full infrastructure reset
cd infrastructure && ./build.sh
# Or use --skip-build if only verifying existing deployment
/bonita-deploy-local --skip-build
Deploy to a remote Bonita server:
# Deploy to remote server with custom credentials
/bonita-deploy-local --url http://remote-server:8080/bonita --username admin --password admin123
After generating process diagrams with /bonita-generate-process:
# 1. Generate process diagram
/bonita-generate-process --input docs/out/analyse-project.adoc
# 2. Copy .proc file to app/diagrams/
cp docs/artifacts/ProcessName-1.0.proc app/diagrams/
# 3. Build and deploy
/bonita-deploy-local
This skill integrates well with artifact generation skills:
# Full workflow: Generate → Validate → Deploy
/bonita-generate # Generate all artifacts
/bonita-validate-artifacts # Validate XSD compliance
# Copy artifacts to app/ structure
cp docs/artifacts/bom.xml app/bdm/
cp docs/artifacts/organization.xml app/organizations/
cp docs/artifacts/*.proc app/diagrams/
cp docs/artifacts/profile.xml app/profiles/
/bonita-deploy-local # Build and deploy
If Maven build fails:
app/environments/If artifacts are missing:
--skip-build flagapp/target/ directoryIf deployment fails with connection error:
If deployment fails with auth error:
Location: infrastructure/build.sh
Key Features:
Docker Images Used:
bonitasoft.jfrog.io/docker-releases/bonita-subscription (base image)Configuration Files:
infrastructure/sca/.env-local-laurent - Environment variablesinfrastructure/sca/docker-compose-*.yml - Service definitionsThe infrastructure script operates in development mode by default:
Important: This setup is for local development only. Production deployments use different tooling.
tools/enable-processes/enable-processes.sh script is not needed - processes are enabled during container startupSolution:
<bonita-home>/server/logs/bonita.logcurl http://localhost:8080/bonita/loginserviceSolution:
Solution:
/bonita-validate-artifacts before deployment/bonita-generate - Generate all Bonita artifacts/bonita-validate-artifacts - Validate artifacts before deploymentdeploy.sh - Manual deployment scriptCLAUDE.md - Project build and deployment instructions