Skip to main content
Flowise can be installed in multiple ways depending on your use case. Choose the method that best fits your needs.

Quick Install with npm

The fastest way to get started with Flowise is using npm.

Requirements

  • Node.js >= 18.15.0 (version 18.15.0 to < 19.0.0 or version 20+)
  • npm (comes with Node.js)
Download Node.js from nodejs.org if you don’t have it installed.

Installation Steps

1

Install Flowise globally

npm install -g flowise
2

Start Flowise

npx flowise start
The server will start on http://localhost:3000

Custom Port and Configuration

You can customize Flowise using environment variables:
# Start on a custom port
PORT=8080 npx flowise start

# Use a custom database path
DATABASE_PATH=/path/to/database npx flowise start

# Enable debug mode
DEBUG=true npx flowise start
For more configuration options, see the Environment Variables section below.

Docker Installation

Docker provides an isolated environment and is recommended for production deployments.

Prerequisites

  • Docker and Docker Compose installed
  • Download from docker.com
Docker Compose makes it easy to run Flowise with a database and other services.
1

Clone the repository

git clone https://github.com/FlowiseAI/Flowise.git
cd Flowise
2

Navigate to docker folder

cd docker
3

Configure environment variables

Copy the example environment file:
cp .env.example .env
Edit .env to configure your settings:
.env
PORT=3000

# Database (optional - SQLite used by default)
# DATABASE_TYPE=postgres
# DATABASE_PORT=5432
# DATABASE_HOST=postgres
# DATABASE_NAME=flowise
# DATABASE_USER=flowise
# DATABASE_PASSWORD=mypassword

# Storage path
# DATABASE_PATH=/root/.flowise
# BLOB_STORAGE_PATH=/root/.flowise/storage

# Security
# FLOWISE_USERNAME=admin
# FLOWISE_PASSWORD=1234
4

Start with Docker Compose

docker compose up -d
This will:
  • Pull the Flowise Docker image
  • Start the Flowise container
  • Optionally start a database container if configured
  • Make Flowise available at http://localhost:3000
5

Stop the containers

When you want to stop Flowise:
docker compose stop
To remove containers completely:
docker compose down

Option 2: Docker Image Only

Run Flowise using Docker without Docker Compose.
1

Build the image

docker build --no-cache -t flowise .
2

Run the container

docker run -d \
  --name flowise \
  -p 3000:3000 \
  -v ~/.flowise:/root/.flowise \
  flowise
The -v flag mounts a volume to persist your data between container restarts.
3

Stop the container

docker stop flowise

Using Official Docker Image

You can also use the official pre-built image:
docker run -d \
  --name flowise \
  -p 3000:3000 \
  -v ~/.flowise:/root/.flowise \
  flowiseai/flowise

Local Development Setup

For developers who want to contribute to Flowise or build custom integrations.

Prerequisites

  • Node.js >= 18.15.0
  • pnpm >= 10.26.0 (required for monorepo)

Installation Steps

1

Install pnpm

npm install -g pnpm
2

Clone the repository

git clone https://github.com/FlowiseAI/Flowise.git
cd Flowise
3

Install dependencies

pnpm install
This installs dependencies for all modules (server, ui, components, api-documentation).
4

Build all modules

pnpm build
Memory Issues? If you get “JavaScript heap out of memory” errors, increase Node.js heap size:
export NODE_OPTIONS="--max-old-space-size=4096"
pnpm build
5

Start the application

For production mode:
pnpm start
The app will be available at http://localhost:3000

Development Mode

For active development with hot reloading:
1

Configure environment variables

Create .env files in the respective packages:packages/ui/.env:
VITE_PORT=8080
packages/server/.env:
PORT=3000
2

Run in development mode

pnpm dev
This starts:
Code changes will automatically reload the application.

Environment Variables

Flowise can be configured using environment variables. Create a .env file in packages/server/ or set them in your environment.

Core Configuration

.env
# Server
PORT=3000

# Database (SQLite by default)
DATABASE_PATH=/path/to/.flowise
DATABASE_TYPE=sqlite  # sqlite | postgres | mysql

# PostgreSQL Example
# DATABASE_TYPE=postgres
# DATABASE_PORT=5432
# DATABASE_HOST=localhost
# DATABASE_NAME=flowise
# DATABASE_USER=flowise
# DATABASE_PASSWORD=password
# DATABASE_SSL=true
# DATABASE_REJECT_UNAUTHORIZED=true

# MySQL Example
# DATABASE_TYPE=mysql
# DATABASE_PORT=3306
# DATABASE_HOST=localhost
# DATABASE_NAME=flowise
# DATABASE_USER=flowise
# DATABASE_PASSWORD=password

Storage Configuration

.env
# File Storage
STORAGE_TYPE=local  # local | s3 | gcs | azure
BLOB_STORAGE_PATH=/path/to/.flowise/storage

# AWS S3 Example
# STORAGE_TYPE=s3
# S3_STORAGE_BUCKET_NAME=flowise
# S3_STORAGE_ACCESS_KEY_ID=your-access-key
# S3_STORAGE_SECRET_ACCESS_KEY=your-secret-key
# S3_STORAGE_REGION=us-west-2

# Google Cloud Storage Example
# STORAGE_TYPE=gcs
# GOOGLE_CLOUD_STORAGE_CREDENTIAL=/path/to/keyfile.json
# GOOGLE_CLOUD_STORAGE_PROJ_ID=your-project-id
# GOOGLE_CLOUD_STORAGE_BUCKET_NAME=flowise

# Azure Blob Storage Example
# STORAGE_TYPE=azure
# AZURE_BLOB_STORAGE_CONNECTION_STRING=your-connection-string
# AZURE_BLOB_STORAGE_CONTAINER_NAME=flowise

Security & Authentication

.env
# Secret Keys (generate with: openssl rand -hex 32)
FLOWISE_SECRETKEY_OVERWRITE=your-encryption-key

# JWT Configuration
JWT_AUTH_TOKEN_SECRET=your-secret
JWT_REFRESH_TOKEN_SECRET=your-refresh-secret
JWT_ISSUER=Flowise
JWT_AUDIENCE=Flowise
JWT_TOKEN_EXPIRY_IN_MINUTES=360
JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=43200

# Express Session
EXPRESS_SESSION_SECRET=your-session-secret

# Token Hash
TOKEN_HASH_SECRET=your-token-hash-secret

# Password Settings
PASSWORD_SALT_HASH_ROUNDS=10

# App URL (for email links)
APP_URL=http://localhost:3000

Logging & Debugging

.env
# Logging
DEBUG=true
LOG_LEVEL=info  # error | warn | info | verbose | debug
LOG_PATH=/path/to/.flowise/logs

# Sanitize sensitive fields in logs
LOG_SANITIZE_BODY_FIELDS=password,apikey,secret,token
LOG_SANITIZE_HEADER_FIELDS=authorization,x-api-key,cookie

Application Settings

.env
# CORS
CORS_ORIGINS=*
IFRAME_ORIGINS=*

# File Upload
FLOWISE_FILE_SIZE_LIMIT=50mb

# Features
SHOW_COMMUNITY_NODES=true
DISABLE_FLOWISE_TELEMETRY=false

# Disable specific nodes (comma-separated)
DISABLED_NODES=

# Model List Config
# MODEL_LIST_CONFIG_JSON=/path/to/models.json

Queue Configuration (Advanced)

.env
# Queue Mode
MODE=queue  # queue | main
QUEUE_NAME=flowise-queue

# Redis Configuration
REDIS_URL=redis://localhost:6379
# OR
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=

# Queue Settings
WORKER_CONCURRENCY=100000
REMOVE_ON_AGE=86400
REMOVE_ON_COUNT=10000
ENABLE_BULLMQ_DASHBOARD=true

Proxy Configuration

.env
# Global Agent Proxy
GLOBAL_AGENT_HTTP_PROXY=http://proxy.example.com:8080
GLOBAL_AGENT_HTTPS_PROXY=https://proxy.example.com:8080
GLOBAL_AGENT_NO_PROXY=localhost,127.0.0.1

# Trust Proxy (for reverse proxies)
TRUST_PROXY=true
NUMBER_OF_PROXIES=1

Production Deployment

For production environments, consider these best practices:

Database

Do not use SQLite in production. Use PostgreSQL or MySQL for better performance, reliability, and concurrent access.
# Recommended: PostgreSQL
DATABASE_TYPE=postgres
DATABASE_HOST=your-postgres-host
DATABASE_PORT=5432
DATABASE_NAME=flowise
DATABASE_USER=flowise
DATABASE_PASSWORD=secure-password
DATABASE_SSL=true

Security

1

Generate secure secrets

# Generate a secure random secret
openssl rand -hex 32
Use this for:
  • FLOWISE_SECRETKEY_OVERWRITE
  • JWT_AUTH_TOKEN_SECRET
  • JWT_REFRESH_TOKEN_SECRET
  • EXPRESS_SESSION_SECRET
  • TOKEN_HASH_SECRET
2

Enable HTTPS

Use a reverse proxy like Nginx or use a platform with built-in SSL (Railway, Render, etc.).
3

Configure CORS

Restrict CORS to your domains:
CORS_ORIGINS=https://yourdomain.com,https://app.yourdomain.com

Cloud Storage

For production, use cloud storage instead of local file system:
# AWS S3
STORAGE_TYPE=s3
S3_STORAGE_BUCKET_NAME=your-bucket
S3_STORAGE_ACCESS_KEY_ID=your-key
S3_STORAGE_SECRET_ACCESS_KEY=your-secret
S3_STORAGE_REGION=us-east-1

Deployment Platforms

Flowise can be deployed on various platforms:

Railway

One-click deployment with automatic HTTPS and scaling.

Render

Deploy from GitHub with automatic deploys on push.

AWS

Deploy on EC2, ECS, or use AWS App Runner.

Azure

Deploy using Azure Container Instances or App Service.

GCP

Deploy on Google Cloud Run or Compute Engine.

Digital Ocean

Deploy on Digital Ocean App Platform or Droplets.

Troubleshooting

If port 3000 is already in use:
PORT=8080 npx flowise start
On macOS/Linux, you might need sudo:
sudo npm install -g flowise
Or configure npm to install globally without sudo:
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
Increase Node.js memory:
export NODE_OPTIONS="--max-old-space-size=4096"
pnpm build
Check container logs:
docker logs flowise
Common issues:
  • Invalid environment variables
  • Database connection failures
  • Port conflicts
Verify your database is running and credentials are correct:
# Test PostgreSQL connection
psql -h localhost -U flowise -d flowise

# Test MySQL connection
mysql -h localhost -u flowise -p flowise
Clear pnpm cache and try again:
pnpm store prune
pnpm install

Upgrading Flowise

npm update -g flowise
Always backup your database before upgrading! Flowise may include database migrations that modify your schema.

Next Steps

Quickstart Tutorial

Build your first chatflow in under 5 minutes.

Environment Variables

Complete list of all configuration options.

Deployment Guides

Platform-specific deployment instructions.

API Documentation

Integrate Flowise into your applications.

Build docs developers (and LLMs) love