🌐 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 miragon/bpmn-to-code-web:latest
docker run -p 8080:8080 miragon/bpmn-to-code-web:latestThen open http://localhost:8080.
Docker Hub: miragon/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.