Learn how dxflow Hub workflows are organized, deployed, and managed across multiple schedulers through the dxflow engine.
Workflows in the Hub are primarily provided as Docker Compose configurations, which dxflow can deploy on various container runtimes and job schedulers. Here's what a typical workflow looks like:
version: '3.8'
services:
app:
image: workflow-image:latest
container_name: dxflow-app
# Environment variables
environment:
- PARAM1=value1
- PARAM2=value2
# Data volumes
volumes:
- ./data:/data
- ./results:/results
# Port mappings
ports:
- "8080:8080"
# Resource limits
deploy:
resources:
limits:
cpus: '4'
memory: 8G
Service Definition: Each workflow defines one or more services (containers) that work together.
Environment Configuration: Variables to customize behavior without changing the workflow file.
Volume Mounts: Connect local directories to container paths for data input/output.
Port Mappings: Expose container ports to access web interfaces or APIs.
Resource Limits: Control CPU, memory, and GPU allocation for each service.
Navigate through workflow categories to find tools for your domain:
Each workflow page includes:
Option A: Web Interface
1. Open dxflow web interface (http://localhost)
2. Navigate to "Apps & Pipelines"
3. Click "Hub" or "Templates"
4. Select workflow and click "Deploy"
5. Configure parameters
6. Launch workflow
Option B: Command Line
# Deploy workflow from Hub
dxflow compose create --identity my-workflow workflow.yml
# Start the workflow
dxflow compose start my-workflow
# Monitor progress
dxflow compose logs my-workflow
Once deployed, you can:
Upload your input data before running workflows:
# Create input directory
dxflow fs create /data/input
# Upload files
dxflow fs upload /local/data.csv /data/input/
Download results after workflow completion:
# List output files
dxflow fs list /data/output
# Download results
dxflow fs download /data/output/ /local/results/
Workflows use volume mounts to persist data:
Created: Workflow is defined but not running Starting: Containers are being pulled and initialized Running: Workflow is actively executing Paused: Temporarily suspended (can be resumed) Stopped: Cleanly stopped (can be restarted) Failed: Encountered an error (check logs)
# Start workflow
dxflow compose start my-workflow
# Stop workflow
dxflow compose stop my-workflow
# Restart workflow
dxflow compose restart my-workflow
# Pause/unpause (keep state in memory)
dxflow compose pause my-workflow
dxflow compose unpause my-workflow
# Remove workflow completely
dxflow compose remove my-workflow
Some workflows provide web interfaces:
services:
jupyter:
image: jupyter/scipy-notebook
ports:
- "8888:8888" # Access at http://localhost:8888
For ML/AI and scientific computing:
services:
ml-training:
image: tensorflow/tensorflow:latest-gpu
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
Complex applications with multiple containers:
services:
web:
image: nginx
ports:
- "80:80"
api:
image: api-server
depends_on:
- database
database:
image: postgres
volumes:
- db-data:/var/lib/postgresql/data
Right-size your resources:
Keep data organized:
Stay informed:
Maintain your environment:
Workflow won't start:
Out of memory:
No output files:
Workflow-specific: Check the workflow documentation page
General issues: See the dxflow documentation or report issues on GitHub
Ready to deploy your first workflow? Browse the Hub categories and get started!