A platform for hosting and orchestrating multiple LangFlow workflows, built on Red Hat technologies.
┌───────┐
│ Users │
└───┬───┘
│
┌──────────┼──────────┐
│ ┌───────▼───────┐ │
│ │ OAuth2 Proxy │ │
│ └───────┬───────┘ │
│ ┌───────▼───────┐ │ ┌────────────┐
│ │ Frontend │ │ │ │
│ └───────┬───────┘ │ │ PostgreSQL │
│ ┌───────▼───────┐ │ │ │
│ │ Backend ┼──┼────────► │
│ └───────┬───────┘ │ └─────▲──────┘
└──────────┼──────────┘ │
┌─────┼─────┐ │
▼ ▼ ▼ │
┌────────┬────────┬────────┐ │
│LangFlow│Langfuse│ MLflow │───────────┘
└────────┴────────┴────────┘
- OAuth2 Proxy: Authentication gateway (mock server for local dev)
- Frontend/Backend: User-facing app for running workflows
- LangFlow: Visual workflow builder (developers only)
- Langfuse/MLflow: Observability and experiment tracking
- PostgreSQL: Shared database for all services
| Component | Purpose | Access |
|---|---|---|
| OAuth2 Proxy | Authentication gateway (uses mock server locally) | Entry point |
| Multi-Agent Platform | User-facing UI that executes research workflows | Users |
| LangFlow | Visual workflow builder for multi-agent orchestration | Developers/Admins |
| Langfuse | LLM observability, tracing, and evaluation | Developers/Admins |
| MLFlow | Experiment tracking and model registry | Developers/Admins |
| PostgreSQL | Shared database for all services | Internal |
- Docker or Podman
- Node.js 22+ and Python 3.11+
- uv (Python package manager)
- OpenShift CLI (
oc) and Helm 3 (for cluster deployment)
git clone https://github.com/cfchase/multi-agent-platform
cd multi-agent-platform
make setup
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
make services-start
make db-seed # optional: load sample data
make devAccess locally:
- App: http://localhost:8080
- LangFlow: http://localhost:7860
- MLFlow: http://localhost:5000
- Langfuse: http://localhost:3000
OAuth is always enabled. Access app at http://localhost:4180.
- No OAuth credentials: Uses mock OAuth server (any username/password works)
- With OAuth credentials: Uses configured provider (Google, GitHub, Keycloak)
Configure OAuth in backend/.env:
OAUTH_CLIENT_ID=your-client-id
OAUTH_CLIENT_SECRET=your-secret
OAUTH_ISSUER_URL=https://... # Optional: set for OIDC providers (Keycloak, etc.)For setup details, see docs/AUTHENTICATION.md.
Important: Configure OAuth credentials before deploying. See docs/AUTHENTICATION.md.
# Login to your cluster
oc login --server=https://your-cluster
# Configure OAuth secret (required)
cp k8s/app/overlays/dev/oauth-proxy-secret.env.example k8s/app/overlays/dev/oauth-proxy-secret.env
# Edit with your OAuth credentials
# Deploy everything
make deployThis deploys PostgreSQL, LangFlow, MLFlow, Langfuse, and the Multi-Agent Platform app.
Get credentials and URLs:
make get-admin-credentials# Full deployment
make deploy # Deploy all components
make undeploy # Remove all components
# Individual components
make deploy-db # PostgreSQL only
make deploy-app # Multi-Agent Platform app only
make deploy-langflow # LangFlow only
make deploy-mlflow # MLFlow only
make deploy-langfuse # Langfuse only
# Status and logs
make get-admin-credentials # Show credentials and URLs
make helm-langflow-status # LangFlow status
make helm-mlflow-status # MLFlow status
make helm-langfuse-status # Langfuse status├── backend/ # FastAPI backend
├── frontend/ # React + PatternFly frontend
├── langflow-flows/ # LangFlow flow definitions
│ └── examples/ # Example flows included with platform
├── config/ # Configuration templates
│ └── flow-sources.yaml.example # Flow source configuration
├── k8s/
│ ├── app/ # App deployment (Kustomize)
│ ├── postgres/ # Database deployment (Kustomize)
│ ├── langflow/ # Legacy manifests (reference)
│ └── mlflow/ # Legacy manifests (reference)
├── helm/
│ ├── langflow/ # LangFlow Helm values
│ ├── mlflow/ # MLFlow Helm values
│ └── langfuse/ # Langfuse Helm values
├── scripts/ # Deployment and dev scripts
└── docs/ # Detailed documentation
Flows can be imported from multiple sources (local directories, git repos). See langflow-flows/README.md for configuration details.
# Import flows from configured sources
make langflow-import- DEPLOYMENT.md - Detailed deployment guide
- DEVELOPMENT.md - Local development setup
- AUTHENTICATION.md - OAuth2 configuration
- CLAUDE.md - AI assistant development guide
- langflow-flows/ - Flow architecture documentation
| Service | Access | Method | Credentials |
|---|---|---|---|
| Multi-Agent Platform | Users | OAuth2 Proxy | Mock OAuth or configured provider |
| LangFlow | Developers/Admins | Built-in auth | admin-credentials secret |
| MLFlow | Developers/Admins | HTTP Basic | admin-credentials secret |
| Langfuse | Developers/Admins | Email/Password | Self-registration |
- Frontend: React, TypeScript, Vite, PatternFly
- Backend: FastAPI, Python, SQLModel, Alembic
- Database: PostgreSQL 15
- Deployment: OpenShift, Kubernetes, Kustomize, Helm
- AI/ML: LangFlow, Langfuse, MLFlow
- Auth: OAuth2 Proxy
Apache License 2.0