Note
Transforming Daisy into a more AI-centric workflow. A new release is currently in progress.
Daisy AI Orchestrator is an AI orchestration platform built around a visual editor and a typed DSL. The runtime executes directed acyclic graphs (DAGs) of plugin actions, supports parallel execution with retries and batch fan-out, evaluates FEEL expressions in user-supplied placeholders, and protects credentials with KMS envelope encryption. The platform exposes both in-process and HTTP-transport plugins, supports OIDC authentication, and emits audit, observability, and rate-limit signals suitable for production deployments.
See the Wiki for full documentation.
The fastest way to try Daisy is to pull the pre-built images from Docker Hub and bring the whole stack up with one command.
- Docker 24+ and Docker Compose v2 (bundled with Docker Desktop).
- Roughly 1 GB of free RAM for Postgres + Redis + backend + frontend.
- Ports
5173,3000,5432, and6379free on the host.
Clone the repo (you only need the compose files — the rest comes from Docker Hub):
git clone https://github.com/vivekg13186/Daisy-workflow.git
cd Daisy-workflowPull and start everything:
BACKEND_IMAGE=vivek13186/daisy-workflow-backend:latest \
FRONTEND_IMAGE=vivek13186/daisy-workflow-frontend:latest \
docker compose --profile full up -dCompose brings up four containers:
| Service | Image | Host port |
|---|---|---|
dag_postgres |
postgres:16-alpine |
5432 |
dag_redis |
redis:7-alpine |
6379 |
dag_backend |
vivek13186/daisy-workflow-backend:latest |
3000 |
dag_frontend |
vivek13186/daisy-workflow-frontend:latest |
5173 |
The backend waits for Postgres + Redis to report healthy before starting. First boot takes ~20 seconds.
For the dev images (watch mode, debugger port exposed, looser logging) swap the tag:
BACKEND_IMAGE=vivek13186/daisy-workflow-backend:dev \
FRONTEND_IMAGE=vivek13186/daisy-workflow-frontend:dev \
docker compose --profile full up -dIf you omit the BACKEND_IMAGE / FRONTEND_IMAGE env vars, compose builds the images locally from the Dockerfiles in ./backend and ./frontend.
The schema lives in backend/migrations/. Run it once against the freshly-started Postgres:
docker compose exec backend npm run migrateMigrations are idempotent; rerun any time after git pull to pick up new schema.
docker compose exec backend npm run create-adminThe CLI prompts for email + password and creates the user in the default workspace. Rerun to add more admins.
Point a browser at:
Sign in with the credentials you just created. You'll land on the Home page with sidebar entries for Workflows, Triggers, Agents, Configurations, Instances, and Plugins.
The backend API and WebSocket channel live at:
http://localhost:3000 — REST +
/wsfor live execution updates.
The repo ships sample flows under backend/samples/. Import one to make sure the engine is wired correctly:
- UI → + New flow → toolbar Import (upload icon) → pick
backend/samples/hello-world.json. - Click Save, then Run (▶).
- The execution opens in the read-only Instance Viewer with the graph coloured by per-node status. You should see every node land on success within a second.
| Feature | How to enable |
|---|---|
| AI assistant + agents | Set ANTHROPIC_API_KEY or OPENAI_API_KEY in .env before up -d. The Prompt tab, agent plugin, Diagnose this failure, and the Plugin generator all become available. |
| External plugin containers | docker compose -f docker-compose.yml -f docker-compose.plugins.yml --profile full up -d. |
| TLS edge (nginx / Caddy) | docker compose -f docker-compose.yml -f docker-compose.tls.yml --profile full up -d. See TLS edge. |
| Scheduled backups | docker compose -f docker-compose.yml -f docker-compose.backup.yml --profile full up -d. |
| Observability (Grafana + Tempo) | docker compose -f observability/docker-compose.yml up -d. |
# Status
docker compose ps
# Tail logs (Ctrl+C to stop tailing)
docker compose logs -f backend frontend
# Restart after a config change
docker compose restart backend
# Pull newer images and recreate
docker compose pull
BACKEND_IMAGE=vivek13186/daisy-workflow-backend:latest \
FRONTEND_IMAGE=vivek13186/daisy-workflow-frontend:latest \
docker compose --profile full up -d
# Shut everything down (volumes preserved)
docker compose down
# Wipe Postgres volume (start over from scratch)
docker compose down -vhttp://localhost:5173shows a blank page — frontend container is still starting. Checkdocker compose logs frontend. The nginx healthcheck takes ~5 s after first boot.401from/api/...— you're not signed in. Visit/logindirectly or hard-refresh.AI button is hidden— neitherANTHROPIC_API_KEYnorOPENAI_API_KEYis set. Visithttp://localhost:3000/ai/statusto see what the backend received.npm run migratefails withECONNREFUSED— Postgres isn't healthy yet. Wait a few seconds and retry.- Want to inspect the DB?
docker compose exec postgres psql -U dag -d dag_engine.
For a local-dev setup (no containers, npm run dev against host Postgres) see Getting started on the wiki.


