π Web App β
Browser-based code generation from BPMN models β no Gradle or Maven setup needed. Uses the same bpmn-to-code-core engine as the build plugins, so the output is identical. Three ways to use it:
- Use the hosted version β visit the web app, upload BPMN, download code
- Self-host with Docker β run the web app on your own infrastructure
- Call the REST API β programmatic access from CI/CD, scripts, or HTTP clients
Use the hosted version β
The fastest way to try bpmn-to-code. Visit the live web app, upload your BPMN file, pick your language and engine, and download the generated Process API. No installation, no Docker, nothing to set up.
Open Web AppSelf-host with Docker β
For teams that want the web app on their own infrastructure β no data leaves your environment.
docker pull emaarco/bpmn-to-code-web:latest
docker run -p 8080:8080 emaarco/bpmn-to-code-web:latestThen open http://localhost:8080.
Docker Hub: emaarco/bpmn-to-code-web
Environment Variables β
| Variable | Description |
|---|---|
ALLOWED_CORS_ORIGINS | Comma-separated list of allowed CORS origins, or * for all |
LEGAL_LINKS_ENABLED | Enable imprint/privacy links in the UI (true/false) |
IMPRINT_URL | URL for the imprint page |
PRIVACY_URL | URL for the privacy policy page |
Call the REST API β
The web app exposes POST /api/generate for programmatic access β call it from CI/CD pipelines, scripts, or any HTTP client. This is a valid option for projects that don't use Gradle or Maven.
INFO
The REST API works but hasn't seen wide adoption yet. If you run into issues, please open a GitHub issue.
Request β
BPMN file content must be Base64-encoded. Up to 3 files per request.
{
"files": [
{
"fileName": "newsletter.bpmn",
"content": "<base64-encoded BPMN XML>"
}
],
"config": {
"outputLanguage": "KOTLIN",
"processEngine": "ZEEBE"
}
}Response β
{
"success": true,
"files": [
{
"fileName": "NewsletterSubscriptionProcessApi.kt",
"content": "// Generated by bpmn-to-code ...",
"processId": "newsletterSubscription"
}
],
"error": null
}curl example β
curl -X POST https://bpmn-to-code.miragon.io/api/generate \
-H "Content-Type: application/json" \
-d '{
"files": [{
"fileName": "process.bpmn",
"content": "'$(base64 < process.bpmn)'"
}],
"config": {
"outputLanguage": "KOTLIN",
"processEngine": "ZEEBE"
}
}'API Documentation β
Interactive API documentation is available when running the web app:
- Swagger UI:
/swagger - OpenAPI/ReDoc:
/openapi
Running from Source β
Prerequisites: JDK 21+
./gradlew :bpmn-to-code-web:runAccess the app at http://localhost:8080.