Deployment Guide
flowyml is designed to be flexible, supporting both local execution and centralized deployment for teams. This guide covers how to deploy flowyml as a centralized hub using Docker.
Centralized Hub Deployment
A centralized hub allows your team to share pipelines, runs, and artifacts. It consists of the flowyml backend (API & Orchestrator) and the frontend (UI).
Prerequisites
- Docker
- Docker Compose
Quick Start
-
Clone the repository (or use your fork):
-
Start the services:
This will start:
- Backend on port 8000
- Frontend on port 8080
- Access the UI:
Open your browser and navigate to
http://localhost:8080.
Configuration
You can configure the deployment by setting environment variables in docker-compose.yml or a .env file.
| Variable | Description | Default |
|---|---|---|
flowyml_HOME |
Path to flowyml data directory | /root/.flowyml |
flowyml_UI_HOST |
Host to bind the backend to | 0.0.0.0 |
flowyml_UI_PORT |
Port for the backend API | 8000 |
Data Persistence
The docker-compose.yml mounts a volume for data persistence:
Client Configuration
To connect your local flowyml CLI or UI to the centralized hub, you need to configure the execution mode.
Using the CLI
-
Set the execution mode to remote:
-
Set the remote server URL:
Replace<hub-ip>with the IP address or hostname of your centralized hub. -
Verify configuration:
Using Environment Variables
You can also configure the client using environment variables:
export flowyml_EXECUTION_MODE=remote
export flowyml_REMOTE_SERVER_URL=http://<hub-ip>:8000
export flowyml_REMOTE_UI_URL=http://<hub-ip>:8080
Production Considerations
- Security: The default setup does not include authentication. For production use, ensure the hub is deployed within a private network (VPN/VPC) or behind a secure proxy with authentication (e.g., Nginx with Basic Auth, OAuth2 Proxy).
- Storage: For heavy workloads, consider using an external database (PostgreSQL) and object storage (S3) instead of the default SQLite and local file system. (See Advanced Configuration).
- Scalability: The default backend runs a single worker. For high concurrency, you may need to scale the backend service or use a more robust task queue (e.g., Celery/Redis).