Quick Start
Boot an engine, sign a browser in, and run a real workflow — about five minutes end to end.
Step 1: Boot the engine
Start the engine with the web console. The --console flag serves the console and auto-enables HTTP:
sudo dxflow boot up --console
sudo. To run unprivileged, set a higher port (dxflow config set http-port 8080) or grant the bind capability. See Port Binding.The engine reports where it answers. The Console address is the one to open in a browser:
Engine successfully booted (use 'CTRL+C' to stop)
● Server
Socket ~/.dxflow/unix.sock
HTTP http://127.0.0.1:80 (bound to 0.0.0.0)
● Console
Address http://127.0.0.1:80 (open in a browser)
This runs in the foreground and holds the terminal. Other boot modes:
sudo dxflow boot up # Unix socket only, no web server
sudo dxflow boot up --https --console # serve over HTTPS
sudo dxflow boot up --console --daemon # background service (Linux, SystemD or OpenRC)
See Advanced Boot Configuration for every flag and deployment pattern.
Step 2: Sign in to the console
Open http://localhost (or http://<your-server-ip>) in a browser. The engine authenticates every connection that arrives over HTTP, so the console opens on a sign-in dialog.
The quickest way in is a pairing code. Leave the engine running and open a second terminal on the engine host:
sudo dxflow engine pair
It prints a single-use code and waits:
● Pairing
Permissions SHELL, ARTIFACT, RUNTIME, WORKFLOW, AGENT
Code K7QM3XPD
Waiting 30s for a console to use the code
Choose Pairing code in the browser and enter it. The terminal then shows who is asking and waits for your answer:
● Pairing request
Address 203.0.113.9
Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Approve? [y/N] y
Answer y and the console is signed in.
dxflow engine pair again if either lapses. For a session you can renew in one click, register an RSA key instead and sign in with the private key — see Authorized Key.Step 3: Run your first workflow
The dxflow hub is a catalog of ready-to-run workflows you pull by name. Deploy JupyterLab:
dxflow workflow create hub://jupyter --identity notebook
dxflow workflow start notebook --override env.app.PASSWORD=my-strong-pass
Workflow created successfully: with 'notebook' identity and 'created' status
Workflow started successfully: with 'notebook' identity
Open http://localhost:8888 and sign in with the password you set. --override tunes a single run — here it replaces the PASSWORD variable on the app step, which otherwise defaults to dxflow.
Browse the rest of the catalog from the CLI:
dxflow workflow hub search genomics
dxflow workflow hub inspect fastqc
Step 4: Watch it run
dxflow workflow list # identity, name, status, tags, link, created
dxflow workflow steps notebook # per-step status and exit codes
dxflow workflow logs notebook --live # stream stdout and stderr
dxflow workflow stats notebook # live CPU and memory, aggregated across steps
Stop it when you're done, and remove it to reclaim the disk:
dxflow workflow stop notebook
dxflow workflow remove notebook
Step 5: Write your own workflow
A workflow is a YAML definition with a name and a list of steps. Each step names a container image and the runtime it runs on:
# hello.yml
name: hello-world
tags:
- getting-started
steps:
- name: hello
runtime: docker
image: alpine:latest
command:
- echo
- "Hello from dxflow"
Create and start it in one call:
dxflow workflow create ./hello.yml --identity hello --start
dxflow workflow logs hello
Steps also take ports, volumes, env, and resources (CPU, memory, GPU), and run in phases so you can mix sequential and parallel work. A step defaults to sequential mode, which requires a command; use mode: parallel for long-running services that keep their image's own entrypoint.
volumes and ports entry carries a name — that label is what per-run --override values target. See Workflows for the full schema.Next steps
- User Interface — manage workflows, artifacts, and shells from the console
- CLI Reference — every command, including
artifact,shell,key, andagent - API Documentation — integrate dxflow into your applications
- Advanced Topics — boot modes, authentication, licensing, and remoting
Troubleshooting
| Problem | Check |
|---|---|
| Engine won't start | Is port 80 already in use, and do you have permission to bind it? See Port Binding. |
| Console unreachable | Is the engine running (dxflow ping)? Does your firewall allow the port? Is the address right? |
| Console stays on the sign-in dialog | Pairing codes expire after 30 seconds and are single-use — run dxflow engine pair again. |
invalid pairing code | The code lapsed, was already claimed, or was mistyped. Request a fresh one. |
| Workflow creation fails | The definition needs a top-level name and at least one step, and every step needs a name and an image. |
| Workflow start fails | Is a container runtime installed and running (dxflow engine info)? Is the image pullable? |
For more, see the FAQ and Troubleshooting.