Self-hosted web UI, Flow Studio, and operations manager for LF Edge eKuiper and reKuiper
65
ekuiper-manager is a self-hosted web interface and operations manager for LF Edge eKuiper and reKuiper. It provides a visual DAG Flow Studio, a SQL and visual Rule Designer, an audited eKuiper v2.4.1 OpenAPI playground, multi-node management, and an optional read-only operations assistant in one container image.
Clone the repository and start ekuiper-manager, official eKuiper 2.4.1, and a private PostgreSQL 17 sidecar:
git clone https://github.com/Indus-Stack/ekuiper-manager.git
cd ekuiper-manager
docker compose up -d
Open http://localhost:3000 in your browser, create the first owner account, and sign in.
Verify readiness:
curl --fail http://localhost:3000/health/ready
Run indusstack/ekuipermanager against an existing PostgreSQL 17 database and an existing eKuiper or reKuiper node:
docker run -d --name ekuiper-manager \
-p 3000:3000 \
-e PGHOST=host.docker.internal \
-e PGPORT=5432 \
-e PGDATABASE=ekuiper_manager \
-e PGUSER=ekuiper_manager \
-e PGPASSWORD=replace-with-db-password \
-e DEFAULT_EKUIPER_URL=http://host.docker.internal:9081 \
-e MANAGER_ORIGIN=http://localhost:3000 \
-v ekuiper_manager_state:/var/lib/ekuiper-manager \
indusstack/ekuipermanager:1.4.0
At startup, the container entrypoint (/usr/local/bin/ekuiper-manager-entrypoint) acquires a migration lock, runs committed SQL migrations from /app/database/migrations, and starts the Next.js standalone server on port 3000.
Build, validate, and deploy streaming pipelines visually:
flow_revisions), compares revisions visually, and supports rollback to draft.en-US & zh-CN)Switch between English (en-US) and Simplified Chinese (zh-CN) at runtime:
Manage multiple eKuiper and reKuiper instances safely:
Authorization headers at rest using AES-256-GCM (/var/lib/ekuiper-manager).Enable an OpenAI-compatible tool-calling assistant to correlate Manager state with live eKuiper node diagnostics under strict read-only and secret-redaction budgets.
| Port | Protocol | Purpose | Default Bind |
|---|---|---|---|
3000 | HTTP / TCP | Web UI, REST API & Health Probes (/health/live, /health/ready). | 0.0.0.0:3000 |
| Variable | Default | Description |
|---|---|---|
PORT | 3000 | HTTP listener port inside the container. |
MANAGER_ORIGIN | http://localhost:3000 | Browser-visible origin required for same-origin mutation validation. |
DATABASE_URL | (Empty) | Full PostgreSQL connection URI (overrides PG* variables when set). |
PGHOST | database | PostgreSQL server hostname. |
PGPORT | 5432 | PostgreSQL server port. |
PGDATABASE | ekuiper_manager | PostgreSQL database name. |
PGUSER | ekuiper_manager | PostgreSQL username. |
PGPASSWORD | (Required) | PostgreSQL password. |
DEFAULT_EKUIPER_URL | http://ekuiper:9081 | Default eKuiper or reKuiper endpoint registered on first startup. |
SESSION_TTL_HOURS | 12 | Authenticated browser session lifetime in hours. |
EKUIPER_API_TIMEOUT | 30000 | Upstream node proxy request timeout in milliseconds. |
AI_ASSISTANT_ENABLED | false | Enables the optional read-only operations agent (true or false). |
AI_API_URL | (Empty) | OpenAI-compatible Chat Completions base URL. |
AI_API_KEY | (Empty) | Server-side API key for the AI provider. |
AI_MODEL | (Empty) | Model identifier for the operations agent. |
| Container Path | Purpose |
|---|---|
/var/lib/ekuiper-manager | Stores the installation AES-256-GCM master key used to encrypt node credentials in PostgreSQL. Back up this volume alongside your PostgreSQL database dump. |
The image is designed to run with strict container security flags:
uid=1001, gid=1001, ekuiper-manager)--read-only with --tmpfs /tmp)--cap-drop ALL)no-new-privileges: trueContent type
Image
Digest
sha256:a2d6801f7…
Size
99.9 MB
Last updated
4 days ago
docker pull indusstack/ekuipermanager