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 miragon/bpmn-to-code-web:latest
docker run -p 8080:8080 miragon/bpmn-to-code-web:latest

Then open http://localhost:8080.

Docker Hub: miragon/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.