Setup
Quick Start with Docker Compose
If you want the fastest local setup for development dependencies:
git clone https://github.com/zebbra/neops-workflow-engine.git
cd neops-workflow-engine
npm install
docker compose up -d
npm run start:dev
This starts PostgreSQL and the Monitor App in the background, then runs the engine locally with hot-reload.
| Service | URL |
|---|---|
| Workflow Engine API | http://localhost:3030 |
| Swagger UI | http://localhost:3030/api |
| Monitor App | http://localhost:5173 |
Migrations run automatically on first engine start. Skip ahead to Your First Workflow.
See Docker Deployment for compose configuration variables, building the engine as a container, and production deployment.
Setup Without Docker Compose
If you prefer to manage PostgreSQL and the Monitor App yourself:
1. Clone and Install
2. Database
The engine requires PostgreSQL. The fastest way to get it running:
=== "Docker (recommended)"
```bash
docker run -d --name neops-postgres \
-e POSTGRES_PASSWORD=unsafe \
-p 5434:5432 \
postgres:15
```
=== "Local PostgreSQL"
Ensure PostgreSQL is running on port 5434 (or configure `POSTGRES_PORT`) with a user that can create databases.
Run migrations to create the database tables (using MikroORM, the engine's database toolkit):
Warning
migration:fresh drops all existing tables and recreates them. For an existing database
with data you want to keep, use npx mikro-orm migration:up instead.
3. Configuration
Create a .env file in the project root or export environment variables:
All environment variables
See the Configuration Reference for the full list of environment variables including CMS connection, logging, and worker management settings.
4. Start the Engine
=== "Development mode (auto-reload)"
```bash
npm run start:dev
```
=== "Production mode"
```bash
npm run build
npm run start:prod
```
The engine starts on port 3030 by default. Verify it is running:
You should see a JSON response confirming the engine is healthy.
5. Start the Monitor App
The Monitor App is a built-in web UI for managing workflows and inspecting executions:
Open http://localhost:5173 to access the Monitor App.
Note
The Monitor App is a standalone development UI that will be integrated into the neops Web Client in a future release. For now, it is the primary interface for interacting with the workflow engine during development.
Tip
If you used docker compose up in the Quick Start above, the Monitor App is already
running and you can skip this step.
6. IDE Setup (Recommended)
Get autocompletion and validation for workflow YAML files in your editor:
=== "VS Code"
Install the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml),
then add to `.vscode/settings.json`:
```json
{
"yaml.schemas": {
"http://localhost:3030/schema": "*.workflow.yaml"
}
}
```
For offline use, point to the local schema file instead:
```json
{
"yaml.schemas": {
"./schema/RootWorkflow.schema.json": "*.workflow.yaml"
}
}
```
=== "JetBrains (IntelliJ, PyCharm)"
Go to **Settings** → **Languages & Frameworks** → **Schemas and DTDs** →
**JSON Schema Mappings**. Add a mapping with URL `http://localhost:3030/schema`
and file path pattern `*.workflow.yaml`.
See the Schema Reference for more details on validation options.
Next: Your First Workflow -- deploy and execute a workflow end to end.