n8n
n8n is the primary workflow runtime in this repository.
This project does not use stock n8n as-is. It builds a customized n8n image and extends it with custom community nodes, external hooks, and an external UI.
Why This Project Uses n8n
n8n provides the workflow execution engine for the Common Hosted Workflow platform.
It is used because it offers:
- workflow orchestration as the core product capability
- extensibility through custom nodes and hooks
- compatibility with PostgreSQL and Redis-backed scaling patterns
- a runtime model that can be adapted for enterprise authentication and shared-platform governance
How This Repository Extends n8n
The custom image builds and packages:
- local
community-nodes external-hooksexternal-ui
The runtime also enables:
- custom non-UI routes
- external frontend hook assets
- OIDC-based sign-in support
- tenant and role-aware access controls
Runtime Topology
In OpenShift, n8n is deployed as multiple components rather than a single container:
mainworkerwebhookrunner
This reflects the repo's queue-mode and external-runner design.
Data Dependencies
n8n in this platform depends on:
- PostgreSQL for persistent workflow and execution data
- Redis for queue execution and UI OIDC session/state storage
That makes n8n the application runtime, but not the only critical technology in the stack.
Security And Platform Constraints
The Helm values show several platform controls around n8n, including:
- queue mode enabled by default
- selected modules disabled
- binary data and filesystem restrictions
- trigger nodes excluded on DR
- environment-driven OIDC configuration
This means the repo operates n8n as a governed platform runtime, not as an unconstrained automation sandbox.
Local And Deployed Modes
Local development uses Docker Compose with PostgreSQL, Redis, and Keycloak.
Deployed environments use the custom image plus the Helm-driven multi-process topology on OpenShift.
Key Source Files
Dockerfiledocker-compose/docker-compose.ymlhelm/_n8n/values.yamlhelm/_n8n/templates/deployments/main.yamlhelm/main/values.yaml