Skip to main content
Flowise can be deployed to any cloud platform that supports Node.js applications or Docker containers. This guide covers deployment to major cloud providers and platform-as-a-service offerings.

Major Cloud Providers

AWS

Deploy on Amazon Web Services

Azure

Deploy on Microsoft Azure

GCP

Deploy on Google Cloud Platform

Digital Ocean

Deploy on Digital Ocean

Alibaba Cloud

Deploy on Alibaba Cloud

AWS Deployment

AWS ECS (Fargate)

Deploy Flowise as a containerized service:
1

Create ECR repository

aws ecr create-repository --repository-name flowise
2

Build and push Docker image

# Authenticate Docker to ECR
aws ecr get-login-password --region us-east-1 | \
  docker login --username AWS --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com

# Build and tag
docker build -t flowise .
docker tag flowise:latest <account-id>.dkr.ecr.us-east-1.amazonaws.com/flowise:latest

# Push to ECR
docker push <account-id>.dkr.ecr.us-east-1.amazonaws.com/flowise:latest
3

Create ECS task definition

Configure your task with:
  • Container image from ECR
  • Port mapping: 3000
  • Environment variables from Secrets Manager
  • CloudWatch logs integration
4

Set up RDS for database

# Create PostgreSQL instance
aws rds create-db-instance \
  --db-instance-identifier flowise-db \
  --db-instance-class db.t3.micro \
  --engine postgres \
  --master-username flowise \
  --master-user-password <secure-password> \
  --allocated-storage 20
5

Configure S3 for storage

# Create S3 bucket
aws s3 mb s3://flowise-storage-bucket

# Set environment variables
STORAGE_TYPE=s3
S3_STORAGE_BUCKET_NAME=flowise-storage-bucket
S3_STORAGE_REGION=us-east-1

AWS Secrets Manager

Store sensitive credentials securely:
# Create secret
aws secretsmanager create-secret \
  --name flowise/secrets \
  --secret-string '{
    "JWT_AUTH_TOKEN_SECRET":"your-secret",
    "DATABASE_PASSWORD":"db-password"
  }'

# Configure task to read from Secrets Manager
SECRETKEY_STORAGE_TYPE=aws
SECRETKEY_AWS_REGION=us-east-1
SECRETKEY_AWS_NAME=FlowiseEncryptionKey

AWS Application Load Balancer

Set up HTTPS termination:
  1. Create ALB targeting your ECS service
  2. Configure HTTPS listener with ACM certificate
  3. Set health check path: /api/v1/ping
  4. Enable sticky sessions for WebSocket support

Azure Deployment

Azure Container Instances

Quick deployment with ACI:
az container create \
  --resource-group flowise-rg \
  --name flowise \
  --image flowiseai/flowise:latest \
  --dns-name-label flowise-app \
  --ports 3000 \
  --environment-variables \
    PORT=3000 \
    DATABASE_TYPE=postgres \
  --secure-environment-variables \
    DATABASE_PASSWORD=<secure-password>

Azure App Service

Deploy as a web app:
1

Create App Service Plan

az appservice plan create \
  --name flowise-plan \
  --resource-group flowise-rg \
  --is-linux \
  --sku B1
2

Create Web App

az webapp create \
  --resource-group flowise-rg \
  --plan flowise-plan \
  --name flowise-app \
  --deployment-container-image-name flowiseai/flowise:latest
3

Configure environment variables

az webapp config appsettings set \
  --resource-group flowise-rg \
  --name flowise-app \
  --settings \
    PORT=3000 \
    DATABASE_TYPE=postgres \
    STORAGE_TYPE=s3

Azure Database for PostgreSQL

az postgres server create \
  --resource-group flowise-rg \
  --name flowise-db \
  --location eastus \
  --admin-user flowiseadmin \
  --admin-password <secure-password> \
  --sku-name B_Gen5_1

# Configure firewall
az postgres server firewall-rule create \
  --resource-group flowise-rg \
  --server flowise-db \
  --name AllowAzureServices \
  --start-ip-address 0.0.0.0 \
  --end-ip-address 0.0.0.0

Google Cloud Platform

Cloud Run

Serverless container deployment:
1

Build and push to Container Registry

# Configure Docker for GCP
gcloud auth configure-docker

# Build and push
docker build -t gcr.io/PROJECT_ID/flowise .
docker push gcr.io/PROJECT_ID/flowise
2

Deploy to Cloud Run

gcloud run deploy flowise \
  --image gcr.io/PROJECT_ID/flowise \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated \
  --port 3000 \
  --memory 2Gi \
  --set-env-vars PORT=3000,DATABASE_TYPE=postgres
3

Set up Cloud SQL

# Create PostgreSQL instance
gcloud sql instances create flowise-db \
  --database-version=POSTGRES_14 \
  --tier=db-f1-micro \
  --region=us-central1

# Create database
gcloud sql databases create flowise \
  --instance=flowise-db

# Connect Cloud Run to Cloud SQL
gcloud run services update flowise \
  --add-cloudsql-instances PROJECT_ID:us-central1:flowise-db

GKE (Kubernetes)

Deploy to Google Kubernetes Engine:
kubernetes/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: flowise
spec:
  replicas: 2
  selector:
    matchLabels:
      app: flowise
  template:
    metadata:
      labels:
        app: flowise
    spec:
      containers:
      - name: flowise
        image: gcr.io/PROJECT_ID/flowise:latest
        ports:
        - containerPort: 3000
        env:
        - name: PORT
          value: "3000"
        - name: DATABASE_TYPE
          value: "postgres"
        - name: DATABASE_HOST
          valueFrom:
            secretKeyRef:
              name: flowise-secrets
              key: db-host
        resources:
          requests:
            memory: "2Gi"
            cpu: "1000m"
          limits:
            memory: "4Gi"
            cpu: "2000m"

Platform-as-a-Service Options

Railway

One-click deployment to Railway:

Deploy on Railway

Deploy on Railway
Railway automatically:
  • Provisions PostgreSQL database
  • Sets up environment variables
  • Provides HTTPS endpoint
  • Handles deployments from GitHub

Render

Deploy to Render:

Deploy to Render

Deploy to Render
1

Create Web Service

  • Select Docker runtime
  • Connect to GitHub repository
  • Set Docker image: flowiseai/flowise:latest
2

Add PostgreSQL

Create a PostgreSQL database in Render and connect it
3

Configure environment

Set required environment variables in Render dashboard

Northflank

Deploy to Northflank

Deploy to Northflank
Northflank provides:
  • Managed PostgreSQL
  • Auto-scaling
  • Built-in monitoring
  • CI/CD integration

Digital Ocean App Platform

1

Create App

  • Choose Docker Hub as source
  • Image: flowiseai/flowise:latest
2

Add Database

Create a managed PostgreSQL database
3

Configure

Set environment variables:
DATABASE_TYPE=postgres
DATABASE_HOST=${db.HOSTNAME}
DATABASE_PORT=${db.PORT}
DATABASE_NAME=${db.DATABASE}
DATABASE_USER=${db.USERNAME}
DATABASE_PASSWORD=${db.PASSWORD}

Other Deployment Options

HuggingFace Spaces

Deploy on HuggingFace

Open in HF Spaces
Perfect for demos and experimentation.

Sealos

Deploy on Sealos

Deploy on Sealos
Kubernetes-based cloud platform with one-click deployment.

Elestio

Deploy on Elestio

Deploy on Elestio
Fully managed deployment with automatic backups.

RepoCloud

Deploy on RepoCloud

Deploy on RepoCloud

Production Considerations

Database Recommendations

Do not use SQLite for production deployments on cloud platforms. Use managed database services.
Recommended database services:
  • AWS: RDS PostgreSQL or Aurora
  • Azure: Azure Database for PostgreSQL
  • GCP: Cloud SQL for PostgreSQL
  • Digital Ocean: Managed PostgreSQL

Storage Configuration

Use cloud-native storage:
STORAGE_TYPE=s3
S3_STORAGE_BUCKET_NAME=flowise-storage
S3_STORAGE_ACCESS_KEY_ID=<access-key>
S3_STORAGE_SECRET_ACCESS_KEY=<secret-key>
S3_STORAGE_REGION=us-east-1

Secrets Management

Use cloud-native secret managers:
  • AWS: Secrets Manager or Parameter Store
  • Azure: Key Vault
  • GCP: Secret Manager
Configure Flowise:
SECRETKEY_STORAGE_TYPE=aws
SECRETKEY_AWS_REGION=us-east-1
SECRETKEY_AWS_NAME=FlowiseEncryptionKey
SECRETKEY_AWS_ACCESS_KEY=<key>
SECRETKEY_AWS_SECRET_KEY=<secret>

Load Balancing

Configure health checks:
  • Path: /api/v1/ping
  • Port: 3000 (or your configured PORT)
  • Protocol: HTTP
  • Interval: 30 seconds
  • Timeout: 5 seconds
  • Healthy threshold: 2
  • Unhealthy threshold: 3

SSL/TLS

All major cloud providers offer SSL/TLS termination:
  • AWS: ACM + ALB
  • Azure: App Service SSL
  • GCP: Cloud Load Balancing with managed certificates
  • Cloud Platforms: Usually included automatically

Monitoring

Enable metrics collection:
ENABLE_METRICS=true
METRICS_PROVIDER=prometheus
METRICS_INCLUDE_NODE_METRICS=true
Integrate with:
  • AWS: CloudWatch
  • Azure: Application Insights
  • GCP: Cloud Monitoring
  • General: Prometheus + Grafana

Cost Optimization

Resource Sizing

Start small and scale:
  • Development: 1 vCPU, 2GB RAM
  • Production (small): 2 vCPU, 4GB RAM
  • Production (medium): 4 vCPU, 8GB RAM

Auto-scaling

Configure based on CPU/memory:
  • Target CPU: 70%
  • Min instances: 2
  • Max instances: 10
  • Scale-up: Fast (1-2 minutes)
  • Scale-down: Slow (10-15 minutes)

Database Optimization

Use appropriate tiers:
  • Development: Smallest tier (e.g., db.t3.micro)
  • Production: Burstable or general purpose tiers
  • High traffic: Memory-optimized tiers

Next Steps

Environment Variables

Configure your cloud deployment

Docker Guide

Learn about Docker deployments

Security Best Practices

Secure your production instance

API Integration

Integrate with Flowise APIs

Build docs developers (and LLMs) love