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

Deploy Prozesswerk | (Just Updated) Text to BPMN 2.0 Diagram Generator API, Any LLM, Access Key From Boot

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's RAILWAY_PUBLIC_DOMAIN). It serves the BPMN editor at / and the API under /api.
  • Private URL: http://prozesswerk.railway.internal:8080 (also PROZESSWERK_PRIVATE_URL).
  • Credentials: PROZESSWERK_PASSWORD (generated, 32 characters; the Basic username is admin) and LLM_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 Basic admin:$PROZESSWERK_PASSWORD (the browser prompts for this one).
  • Health: GET /api/health returns 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_URL and LLM_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/generate to draft a diagram and passes existing_definition back 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

VariablePurpose
PROZESSWERK_PASSWORDGenerated access key, accepted as Bearer, X-API-Key or the Basic password for user admin.
LLM_API_KEYYour LLM provider key. The only field the deploy form asks for.
PROZESSWERK_PUBLIC_URLHTTPS address of the editor and API.
PROZESSWERK_PRIVATE_URLAddress 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

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
117
View Template
Weaviate
Vector database with hybrid search and an API key-protected API

zer0person
1
View Template
Möbius v0.1 Personal AI OS
Self-hosted AI agent that builds and runs apps for you, with memory.

bento
1