Skip to content

🌐 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:

  1. Use the hosted version β€” visit the web app, upload BPMN, download code
  2. Self-host with Docker β€” run the web app on your own infrastructure
  3. 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 App

Self-host with Docker ​

For teams that want the web app on their own infrastructure β€” no data leaves your environment.

bash
docker pull emaarco/bpmn-to-code-web:latest
docker run -p 8080:8080 emaarco/bpmn-to-code-web:latest

Then open http://localhost:8080.

Docker Hub: emaarco/bpmn-to-code-web

Environment Variables ​

VariableDescription
ALLOWED_CORS_ORIGINSComma-separated list of allowed CORS origins, or * for all
LEGAL_LINKS_ENABLEDEnable imprint/privacy links in the UI (true/false)
IMPRINT_URLURL for the imprint page
PRIVACY_URLURL 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.

json
{
  "files": [
    {
      "fileName": "newsletter.bpmn",
      "content": "<base64-encoded BPMN XML>"
    }
  ],
  "config": {
    "outputLanguage": "KOTLIN",
    "processEngine": "ZEEBE"
  }
}

Response ​

json
{
  "success": true,
  "files": [
    {
      "fileName": "NewsletterSubscriptionProcessApi.kt",
      "content": "// Generated by bpmn-to-code ...",
      "processId": "newsletterSubscription"
    }
  ],
  "error": null
}

curl example ​

bash
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+

bash
./gradlew :bpmn-to-code-web:run

Access the app at http://localhost:8080.