Environment:FlowiseAI Flowise Docker Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Docker |
| Last Updated | 2026-02-12 07:30 GMT |
Overview
Docker and Docker Compose environment for running Flowise as a containerized service with persistent storage.
Description
This environment provides a containerized deployment context for Flowise using Docker. The official image `flowiseai/flowise:latest` is built on `node:20-alpine` and includes all system dependencies (Chromium, build tools, PNPM). Docker Compose configurations support standalone, queue-based (with Redis workers), and GPU modes. Persistent data is stored via a volume mount at `~/.flowise`.
Usage
Use this environment for production deployment, staging environments, or quick local testing without building from source. It is the mandatory prerequisite for running the Docker_Compose_Configuration implementation.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Any OS with Docker support | Linux, macOS, Windows with Docker Desktop |
| Docker | Docker Engine 20.10+ | Docker Compose v2 (included with Docker Desktop) |
| Hardware | 4GB+ RAM | Container configured with 8GB heap via NODE_OPTIONS |
| Disk | 2GB+ for image | Plus storage for `~/.flowise` volume (database, logs, uploads) |
| Network | Port 3000 (default) | Configurable via PORT environment variable |
Dependencies
Container Image
- `flowiseai/flowise:latest` — Official pre-built image from Docker Hub
- Base: `node:20-alpine`
- Includes: Chromium, Python 3, build tools, PNPM
Docker Compose Services
- Standalone mode: Single `flowise` service
- Queue mode: `flowise` (main) + `flowise-worker` + `redis` services
- GPU mode: Adds NVIDIA GPU runtime to queue configuration
Credentials
The following environment variables configure the Docker container. Set them in a `.env` file alongside `docker-compose.yml`:
Core:
- `PORT`: HTTP port (default: `3000`)
- `DATABASE_TYPE`: `sqlite` | `mysql` | `mariadb` | `postgres` (default: `sqlite`)
- `DATABASE_PATH`: SQLite file location (default: `/root/.flowise`)
Authentication:
- `JWT_AUTH_TOKEN_SECRET`: JWT signing secret (required for auth)
- `JWT_REFRESH_TOKEN_SECRET`: Refresh token signing secret
- `EXPRESS_SESSION_SECRET`: Express session secret
Storage:
- `STORAGE_TYPE`: `local` | `s3` | `gcs` (default: `local`)
- `BLOB_STORAGE_PATH`: Local file storage path (default: `/root/.flowise/storage`)
- `S3_STORAGE_BUCKET_NAME`: S3 bucket (if STORAGE_TYPE=s3)
- `S3_STORAGE_ACCESS_KEY_ID`: AWS access key (if STORAGE_TYPE=s3)
- `S3_STORAGE_SECRET_ACCESS_KEY`: AWS secret key (if STORAGE_TYPE=s3)
Encryption:
- `SECRETKEY_PATH`: Encryption key file path (default: `/root/.flowise`)
- `FLOWISE_SECRETKEY_OVERWRITE`: Override encryption key directly
Logging:
- `LOG_LEVEL`: `error` | `warn` | `info` | `verbose` | `debug` (default: `info`)
- `LOG_PATH`: Log output directory (default: `/root/.flowise/logs`)
Quick Install
# Create .env file with minimum configuration
echo "PORT=3000" > .env
# Start Flowise with Docker Compose
docker compose up -d
# Check health
curl http://localhost:3000/api/v1/ping
Code Evidence
Docker image base and system dependencies from `Dockerfile:7-21`:
FROM node:20-alpine
RUN apk update && \
apk add --no-cache \
libc6-compat \
python3 \
make \
g++ \
build-base \
cairo-dev \
pango-dev \
chromium \
curl && \
npm install -g pnpm
Healthcheck configuration from `docker/docker-compose.yml:138-143`:
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:${PORT}/api/v1/ping']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
Persistent storage volume from `docker/docker-compose.yml:144-145`:
volumes:
- ~/.flowise:/root/.flowise
Startup delay to allow dependent services from `docker/docker-compose.yml:146`:
entrypoint: /bin/sh -c "sleep 3; flowise start"
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| Healthcheck failing (container unhealthy) | Service not ready within start_period | Increase `start_period` in docker-compose.yml; check logs with `docker compose logs` |
| `ENOSPC: no space left on device` | Docker volume or host disk full | Clean unused Docker images/volumes with `docker system prune` |
| `Error: connect ECONNREFUSED` (database) | External database not reachable from container | Ensure DATABASE_HOST is reachable from container network; use `host.docker.internal` for host services |
| Permission denied on `/root/.flowise` | Volume mount permission mismatch | Ensure `~/.flowise` exists and is writable; the container runs as `node` user after build |
Compatibility Notes
- Docker Desktop (macOS/Windows): Use `host.docker.internal` to access host-network services (databases, Redis)
- Linux Docker: Add `--network host` or configure proper networking for host service access
- GPU mode: Requires NVIDIA Container Toolkit and `docker compose -f docker-compose-queue-prebuilt.yml` with GPU profile
- ARM64 (Apple Silicon / AWS Graviton): The official image supports multi-arch; verify native module compatibility