Deploy Prozesswerk | (Just Updated) Text to BPMN 2.0 Diagram Generator API, Any LLM, Access Key From Boot
Prozesswerk text to BPMN 2.0 process diagram API for any LLM, key on
prozesswerk
Just deployed
Deploy and Host Prozesswerk on Railway
Built for an LLM agent to deploy and use. The deploy form has one field, your own LLM API key. Everything else is generated at deploy time, and the contract below lists every address, variable name and one script that checks the service and generates a BPMN diagram.
Prozesswerk is an open-source (MIT) text-to-BPMN generator. You describe a business process in plain text, any OpenAI-compatible LLM turns it into a structured process, and Prozesswerk returns a BPMN 2.0 XML file that imports into Camunda, bpmn.io, Signavio and other BPMN tools. It also serves an in-browser bpmn-js editor with automatic layout, so a person can refine the diagram by hand.
About Hosting Prozesswerk
This template runs one service: Prozesswerk (pinned to one upstream commit) in a small wrapper image, pinned by digest, with no volume because the service keeps no state. Upstream has no authentication, and POST /api/generate spends your LLM key, so the wrapper puts one access key in front of every route except GET /api/health. The key is PROZESSWERK_PASSWORD, generated for you at deploy time. The wrapper listens on Railway's injected PORT on IPv4 and IPv6, so the public domain and the private network both work. The LLM endpoint defaults to OpenAI (https://api.openai.com/v1, model gpt-4o); LLM_BASE_URL and LLM_MODEL can be added as variables to point at OpenRouter, Ollama, vLLM or any other OpenAI-compatible server.
Agent contract
- Public URL:
PROZESSWERK_PUBLIC_URL(https://plus the service'sRAILWAY_PUBLIC_DOMAIN). It serves the BPMN editor at/and the API under/api. - Private URL:
http://prozesswerk.railway.internal:8080(alsoPROZESSWERK_PRIVATE_URL). - Credentials:
PROZESSWERK_PASSWORD(generated, 32 characters; the Basic username isadmin) andLLM_API_KEY(yours, the only field the deploy form asks for). - Auth: any one of
Authorization: Bearer $PROZESSWERK_PASSWORD,X-API-Key: $PROZESSWERK_PASSWORD, or HTTP Basicadmin:$PROZESSWERK_PASSWORD(the browser prompts for this one). - Health:
GET /api/healthreturns 200 without credentials.
# needs: PROZESSWERK_PUBLIC_URL and PROZESSWERK_PASSWORD from the service variables
curl -s -o /dev/null -w "health: %{http_code}\n" "$PROZESSWERK_PUBLIC_URL/api/health"
curl -s -o /dev/null -w "no key: %{http_code}\n" "$PROZESSWERK_PUBLIC_URL/api/config"
curl -s -H "Authorization: Bearer $PROZESSWERK_PASSWORD" "$PROZESSWERK_PUBLIC_URL/api/config"
curl -s -X POST "$PROZESSWERK_PUBLIC_URL/api/generate" \
-H "Authorization: Bearer $PROZESSWERK_PASSWORD" -H "Content-Type: application/json" \
-d '{"text":"A customer submits an order. Sales checks stock. If in stock the warehouse ships it, otherwise the customer is notified."}' \
| grep -o -E '"success":true|process id='
A fresh deploy prints health: 200, then no key: 401, then {"llm_configured":true,"llm_model":"gpt-4o","llm_base_url":"https://api.openai.com/v1"}, then "success":true and a process id= match from the generated BPMN 2.0 XML. The generate call is the only one that reaches your LLM provider and bills your key. Responses are JSON: bpmn_xml (the importable diagram), process_definition (the structured lanes and flows) and notes (assumptions and open questions).
Why Deploy Prozesswerk on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Prozesswerk on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
- Agent-ready - one deployer field, a contract block and one working request script.
- Not an open LLM proxy - upstream ships without authentication; here every route except the health check needs the generated access key.
- Any LLM - OpenAI by default, or any OpenAI-compatible endpoint through
LLM_BASE_URLandLLM_MODEL. - Stateless - nothing to back up, and the image is pinned by digest.
Common Use Cases
- Process documentation - turn interview notes or an SOP written in prose into a BPMN 2.0 diagram a process team can import and edit.
- Agent tool for workflow design - an orchestrating agent calls
POST /api/generateto draft a diagram and passesexisting_definitionback to refine it. - Internal BPMN generator - give a team a private text-to-BPMN editor behind one access key, backed by a model you choose.
Dependencies for Prozesswerk Hosting
- An API key for an OpenAI-compatible LLM provider (
LLM_API_KEY).
Deployment Dependencies
Implementation Details
| Variable | Purpose |
|---|---|
PROZESSWERK_PASSWORD | Generated access key, accepted as Bearer, X-API-Key or the Basic password for user admin. |
LLM_API_KEY | Your LLM provider key. The only field the deploy form asks for. |
PROZESSWERK_PUBLIC_URL | HTTPS address of the editor and API. |
PROZESSWERK_PRIVATE_URL | Address other services in the project use. |
The image runs railway_app.py, which wraps the upstream ASGI app in the access-key check and opens separate IPv4 and IPv6 sockets on $PORT. Optional variables you can add: LLM_BASE_URL, LLM_MODEL.
Template Content
prozesswerk
ghcr.io/bon5co/prozesswerk:0.1.0LLM_API_KEY

