Implementation:FlowiseAI Flowise Docker Compose Configuration
Appearance
| Attribute | Value |
|---|---|
| Page Name | Docker_Compose_Configuration |
| Workflow | Chatbot_Deployment |
| Repository | FlowiseAI/Flowise |
| Type | External Tool Doc |
| Domain | Infrastructure, Deployment, DevOps |
| Source | docker/docker-compose.yml:L1-146, docker/docker-compose-queue-prebuilt.yml, docker/docker-compose-queue-source.yml |
| Last Updated | 2026-02-12 14:00 GMT |
Overview
Docker Compose configuration files for deploying Flowise as a containerized application. This is an External Tool Doc -- the configuration files define infrastructure topology and are executed via the docker compose CLI rather than through application code.
Code Reference
Source Location
- Primary:
docker/docker-compose.yml(146 lines) -- Basic single-service deployment - Queue (prebuilt):
docker/docker-compose-queue-prebuilt.yml-- Queue mode with pre-built Docker Hub images - Queue (source):
docker/docker-compose-queue-source.yml-- Queue mode building from source - Dockerfile:
docker/Dockerfile-- Container image build definition
Docker Image
image: flowiseai/flowise:latest
Pre-built images are available from Docker Hub at flowiseai/flowise. The queue worker uses flowiseai/flowise-worker:latest.
Configuration
Basic Deployment (docker-compose.yml)
version: '3.1'
services:
flowise:
image: flowiseai/flowise:latest
restart: always
environment:
- PORT=${PORT}
- DATABASE_PATH=${DATABASE_PATH}
- DATABASE_TYPE=${DATABASE_TYPE}
- DATABASE_PORT=${DATABASE_PORT}
- DATABASE_HOST=${DATABASE_HOST}
- DATABASE_NAME=${DATABASE_NAME}
- DATABASE_USER=${DATABASE_USER}
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
- SECRETKEY_PATH=${SECRETKEY_PATH}
ports:
- '${PORT}:${PORT}'
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:${PORT}/api/v1/ping']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
- ~/.flowise:/root/.flowise
entrypoint: /bin/sh -c "sleep 3; flowise start"
Queue Mode Deployment (docker-compose-queue-prebuilt.yml)
version: '3.1'
services:
redis:
image: redis:alpine
container_name: flowise-redis
ports:
- '6379:6379'
volumes:
- redis_data:/data
networks:
- flowise-net
restart: always
flowise:
image: flowiseai/flowise:latest
container_name: flowise-main
restart: always
ports:
- '${PORT:-3000}:${PORT:-3000}'
volumes:
- ~/.flowise:/root/.flowise
environment:
- PORT=${PORT:-3000}
- MODE=${MODE:-queue}
- QUEUE_NAME=${QUEUE_NAME:-flowise-queue}
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:${PORT:-3000}/api/v1/ping']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
entrypoint: /bin/sh -c "sleep 3; flowise start"
depends_on:
- redis
networks:
- flowise-net
flowise-worker:
image: flowiseai/flowise-worker:latest
container_name: flowise-worker
restart: always
volumes:
- ~/.flowise:/root/.flowise
environment:
- WORKER_PORT=${WORKER_PORT:-5566}
- MODE=${MODE:-queue}
- QUEUE_NAME=${QUEUE_NAME:-flowise-queue}
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:${WORKER_PORT:-5566}/healthz']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
entrypoint: /bin/sh -c "node /app/healthcheck/healthcheck.js & sleep 5 && pnpm run start-worker"
depends_on:
- redis
- flowise
networks:
- flowise-net
volumes:
redis_data:
driver: local
networks:
flowise-net:
driver: bridge
Key Environment Variables
| Variable | Default | Description |
|---|---|---|
PORT |
3000 | Server port for the main Flowise instance |
DATABASE_TYPE |
(SQLite) | Database type: leave empty for SQLite, set to postgres for PostgreSQL
|
DATABASE_HOST |
-- | PostgreSQL host address |
DATABASE_PORT |
-- | PostgreSQL port |
DATABASE_NAME |
-- | PostgreSQL database name |
DATABASE_USER |
-- | PostgreSQL username |
DATABASE_PASSWORD |
-- | PostgreSQL password |
DATABASE_SSL |
-- | Enable SSL for database connections |
SECRETKEY_PATH |
-- | Path for storing secret encryption keys |
SECRETKEY_STORAGE_TYPE |
-- | Storage type for secrets (local or AWS) |
MODE |
(empty) | Set to queue to enable distributed queue processing
|
QUEUE_NAME |
flowise-queue | Name of the BullMQ queue |
REDIS_URL |
redis://redis:6379 | Redis connection URL for queue mode |
REDIS_HOST |
-- | Redis host (alternative to REDIS_URL) |
REDIS_PORT |
-- | Redis port (alternative to REDIS_URL) |
WORKER_CONCURRENCY |
-- | Number of concurrent jobs the worker processes |
CORS_ORIGINS |
-- | Allowed CORS origins |
IFRAME_ORIGINS |
-- | Allowed iframe embedding origins |
STORAGE_TYPE |
-- | Blob storage type (local, s3, gcs) |
BLOB_STORAGE_PATH |
-- | Path for local blob storage |
LOG_LEVEL |
-- | Logging level |
ENABLE_METRICS |
-- | Enable metrics collection |
METRICS_PROVIDER |
-- | Metrics provider (e.g., OpenTelemetry) |
JWT_AUTH_TOKEN_SECRET |
-- | Secret for JWT authentication tokens |
JWT_REFRESH_TOKEN_SECRET |
-- | Secret for JWT refresh tokens |
FLOWISE_EE_LICENSE_KEY |
-- | Enterprise edition license key |
Commands
Basic Deployment
# Start Flowise with basic configuration
cd docker
docker compose up -d
# View logs
docker compose logs -f flowise
# Stop
docker compose down
Queue Mode Deployment (Pre-built Images)
# Start Flowise in queue mode with Redis
cd docker
docker compose -f docker-compose-queue-prebuilt.yml up -d
# View logs for all services
docker compose -f docker-compose-queue-prebuilt.yml logs -f
# Scale workers (if orchestrator supports it)
docker compose -f docker-compose-queue-prebuilt.yml up -d --scale flowise-worker=3
# Stop all services
docker compose -f docker-compose-queue-prebuilt.yml down
Queue Mode Deployment (From Source)
# Build and start from source
cd docker
docker compose -f docker-compose-queue-source.yml up -d --build
# Stop all services
docker compose -f docker-compose-queue-source.yml down
Environment File Setup
# Create .env file in the docker directory
cat > .env << 'EOF'
PORT=3000
DATABASE_TYPE=postgres
DATABASE_HOST=your-db-host
DATABASE_PORT=5432
DATABASE_NAME=flowise
DATABASE_USER=flowise
DATABASE_PASSWORD=your-secure-password
SECRETKEY_PATH=/root/.flowise
JWT_AUTH_TOKEN_SECRET=your-jwt-secret
JWT_REFRESH_TOKEN_SECRET=your-refresh-secret
EOF
# Start with the environment file
docker compose up -d
Three Compose Configurations
| File | Services | Image Source | Use Case |
|---|---|---|---|
docker-compose.yml |
flowise | Docker Hub (prebuilt) | Basic single-service deployment |
docker-compose-queue-prebuilt.yml |
redis, flowise, flowise-worker | Docker Hub (prebuilt) | Production queue mode |
docker-compose-queue-source.yml |
redis, flowise, flowise-worker | Built from source (Dockerfile) | Development/testing queue mode |
Related Pages
- Principle:FlowiseAI_Flowise_Docker_Deployment
- Environment:FlowiseAI_Flowise_Docker_Environment
- Environment:FlowiseAI_Flowise_Node_Runtime_Environment
- Environment:FlowiseAI_Flowise_Database_Environment
- Environment:FlowiseAI_Flowise_Queue_Mode_Environment
- Heuristic:FlowiseAI_Flowise_Heap_Memory_Configuration
- Implementation:FlowiseAI_Flowise_UpdateChatflow_Security
- Implementation:FlowiseAI_Flowise_UpdateChatflow_Public
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment