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
make config-setup # Copy config from config/local/
make services-start
make db-seed # optional: load sample data
make devAccess locally:
- App: http://localhost:4180 (via OAuth proxy)
- LangFlow: http://localhost:7860
- MLFlow: http://localhost:5000
- Langfuse: http://localhost:3000
OAuth is enabled by default. 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 config/local/.env (local) or config/dev/.env (cluster):
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.
Prerequisites: OpenShift CLI (
oc), Helm 3, and valid cluster login. Configure Google OAuth credentials before deploying. See docs/AUTHENTICATION.md.
# 1. Login to your cluster
oc login --server=https://your-cluster
# 2. Set up deployment config (creates config/dev/ files)
make config-setup-cluster
# 3. Configure credentials (required)
# Edit config/dev/.env with OAuth, LLM keys, etc.
# Edit config/dev/allowed-emails.txt with authorized email addresses
# Edit config/dev/namespace-admins.txt with OpenShift usernames for admin access
# 4. Generate deployment artifacts and deploy
make config-generate
make deploy
# 5. Verify deployment
make verify-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
# Verification
make verify-deploy # Check deployment health
# 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 | Google OAuth | Configured OAuth provider |
| LangFlow | Admins | OpenShift OAuth | OpenShift cluster credentials |
| MLFlow | Admins | OpenShift OAuth | OpenShift cluster credentials |
| Langfuse | Admins | Built-in auth | admin-credentials secret (make get-admin-credentials) |
- 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