Flowise
Visual builder for LLM chatflows, agents and RAG pipelines: nodes are wired on a canvas and each flow is served as an API or an embeddable chat widget. Suits a team that wants to prototype and host assistants on its own server while calling external or self-hosted models.
Resources by load level
What the app itself needs at each level, next to what we recommend for a server that runs only this app.
| Level | What it means | App requirements | Recommended |
|---|---|---|---|
| LightEstimate | Up to 10,000 predictions per month (~330/day, the Cloud Starter limit), up to 2 at once; up to 10 chatflows; up to 1 GB of uploaded files; main mode. | 1 vCPU · 1 GiB RAM · 8.75 GiB disk | 1.32 vCPU · 2.7 GiB RAM · 19.493 GiB disk |
| MediumEstimate | Up to 50,000 predictions per month (~1,700/day, the Cloud Pro limit), up to 10 at once; up to 50 chatflows; up to 10 GB of uploaded files; main mode. | 2 vCPU · 4 GiB RAM · 18.25 GiB disk | 2.52 vCPU · 6.3 GiB RAM · 30.418 GiB disk |
| HeavyEstimate | Up to 150,000 predictions per month (~5,000/day), up to 25 at once; up to 200 chatflows; up to 20 GB of uploaded files; still one main process (beyond this, queue mode). | 4 vCPU · 8 GiB RAM · 29.25 GiB disk | 4.92 vCPU · 11.1 GiB RAM · 43.068 GiB disk |
Recommended = app requirements + system baseline + safety headroom, under sizing policy 2026.10.0. Options stay at their defaults. “Estimate” means the sources give no number for that case, so it is worked out from them by the method stated under Components. How the numbers are built
Ready-to-run files
Support level Supported
Compose template from the official sources; not yet verified by a run.
Components
What each component needs at each load level, before baseline and headroom.
| Component | Light | Medium | Heavy | Sources |
|---|---|---|---|---|
| Flowise (app) | 1 / 1 / 8.75 | 2 / 4 / 18.25 | 4 / 8 / 29.25 | [15][22][23][24][29][32][34] |
| PostgreSQL (database) | — | — | — |
How the estimates are worked out
- Flowise · Light: vCPU and RAM: the request in the docs' GCP Kubernetes manifest for one Flowise replica (cpu 1, memory 1Gi). Disk: image 7.25 GiB (compressed 1.442 + unpacked 5.805 = 7.247, both kept by the containerd image store, rounded up) + 1 GiB uploads (the Starter plan's 1 GB storage) + 0.5 GiB for database.sqlite and logs = 8.75 GiB.
- Flowise · Medium: vCPU and RAM: half of the 4 vCPU / 8 GB server the production guide names as the starting size of one Flowise instance, 8 GB taken as GiB: 2 vCPU, 4 GiB. Disk: image 7.25 GiB + 10 GiB uploads (the Pro plan's 10 GB storage) + 1 GiB for database.sqlite and logs = 18.25 GiB.
- Flowise · Heavy: vCPU and RAM: one full server of the size the production guide gives as the starting point per Flowise instance (4 vCPU, 8 GB taken as 8 GiB). Disk: image 7.25 GiB + 20 GiB uploads (2 × the Pro plan's 10 GB) + 2 GiB for database.sqlite and logs = 29.25 GiB.
database· PostgreSQL: Embedded metadata DB with the image's default config: equals the PostgreSQL profile's light preset (≤ 5 GB data, ≤ 20 concurrent connections) at every load level. Light preset method: shared_buffers 25% of RAM, worst-case work_mem/maintenance_work_mem budget, 0.5 GiB image + 5 GiB data + 1 GiB WAL.
Options that change resources
databaseDatabase engine. SQLite (the default) is a file in the Flowise volume with no extra service; PostgreSQL (DATABASE_TYPE=postgres) adds a separate container, which the docs recommend when running at scale. Uploads, logs and key files stay in the Flowise volume either way.
Default:
sqlite
Ports
Public ports are meant to be reached from outside the stack, usually through a reverse proxy; internal ones stay on the stack's own network.
User and permissions (UID/GID)
The user each container's process runs as, and the paths it writes to. A bind mount for one of these paths must be writable by that UID:GID.
| Component | UID:GID | User | Starts as root | Writes to | Sources |
|---|---|---|---|---|---|
| Flowise | 1000:1000 | node | No | /home/node | [3][15][18] |
| PostgreSQL | 999:999 | postgres | Yes, prepares its directories, then drops to this user | /var/lib/postgresql/var/run/postgresql | [35][36][42] |
- Flowise: Since 3.1.4 the image ends with USER node and starts flowise start directly, with no root step. The node:alpine base creates node with uid and gid 1000. Flowise writes database.sqlite, encryption.key, the auth secret key files, storage/ and (with LOG_PATH) logs/ under $HOME/.flowise = /home/node/.flowise. The image has no .flowise directory, so the template's volume is mounted at the node-owned /home/node and Flowise creates .flowise inside it.
Storage growth
How much each component's data grows per month at each load level, on top of the disk in the profile. A value marked Assumption is ANAROQ's stated assumption, not a figure from the sources; the notes say what it rests on.
| Component | Light | Medium | Heavy | Sources |
|---|---|---|---|---|
| FlowiseAssumption | 0.163 | 1.108 | 2.405 | [29][30][32] |
| PostgreSQLAssumption | 0.038 | 0.191 | 0.572 | [29][30] |
What the growth figures rest on
- Flowise: Upstream gives no growth rate. Assumes the preset's 1.5 GiB of uploads, database and logs fills over 12 months (1.5 / 12), plus chat history in database.sqlite: 10,000 predictions × 4 KiB (question and answer rows) = 0.038 GiB a month. Logs are never pruned by default. With PostgreSQL the chat-history part moves to the postgres volume.
- Flowise: Upstream gives no growth rate. Assumes the preset's 11 GiB of uploads, database and logs fills over 12 months (11 / 12), plus chat history in database.sqlite: 50,000 predictions × 4 KiB (question and answer rows) = 0.191 GiB a month. Logs are never pruned by default. With PostgreSQL the chat-history part moves to the postgres volume.
- Flowise: Upstream gives no growth rate. Assumes the preset's 22 GiB of uploads, database and logs fills over 12 months (22 / 12), plus chat history in database.sqlite: 150,000 predictions × 4 KiB (question and answer rows) = 0.572 GiB a month. Logs are never pruned by default. With PostgreSQL the chat-history part moves to the postgres volume.
- PostgreSQL: Only with the postgres option. Chat history: 10,000 predictions a month × 4 KiB (question and answer rows) = 0.038 GiB; Flowise does not prune messages by default. ANAROQ assumption, upstream gives no size per message.
- PostgreSQL: Only with the postgres option. Chat history: 50,000 predictions a month × 4 KiB (question and answer rows) = 0.191 GiB; Flowise does not prune messages by default. ANAROQ assumption, upstream gives no size per message.
- PostgreSQL: Only with the postgres option. Chat history: 150,000 predictions a month × 4 KiB (question and answer rows) = 0.572 GiB; Flowise does not prune messages by default. ANAROQ assumption, upstream gives no size per message.
Upgrade and rollback
How to move to a new version safely, and how to go back if it fails.
Back up first
Stop Flowise and back up the whole /home/node/.flowise volume (database.sqlite, encryption.key, auth secret key files, storage/), or with PostgreSQL take a pg_dump as the databases guide shows. [5][31]
Upgrade steps
- Check the changes of every version between yours and the target (tags on GitHub and the npm package), then set the new pinned tag flowiseai/flowise:X.Y.Z in the Compose file. [13][14]
- Run docker compose pull and docker compose up -d. Flowise runs pending database migrations at startup; wait until /api/v1/ping answers before using it. [3][8][10]
- Keep FLOWISE_SECRETKEY_OVERWRITE unchanged; a different key makes every stored credential undecryptable. [6]
- Coming from 3.1.3 or older with the official file: data moves from /root/.flowise to /home/node/.flowise and must be owned by 1000:1000 (chown -R 1000:1000 on the host directory). [2][3][17]
Roll back
Pin the previous tag and run docker compose up -d. If the new version ran migrations, restore the volume or database backup taken before the update first. [5][8]DerivedFlowise documents no downgrade path; it only runs migrations forward at startup, so ANAROQ treats the pre-update backup as the way back.
Known breaking changes
- In 3.1.4: The image runs as the non-root node user (uid 1000) instead of root: the data path is /home/node/.flowise instead of /root/.flowise, and a bind-mounted directory must be owned by 1000:1000. [2][15][16][17]
- In 3.1.4: Custom MCP stdio servers can run only commands listed in CUSTOM_MCP_ALLOWED_COMMANDS, which is empty by default (none allowed); before, node, npx, python, python3 and docker were allowed. [4][6]
- In 3.0.1: New email and password login replaces FLOWISE_USERNAME / FLOWISE_PASSWORD; existing instances must set up a new admin account, first signing in with the old credentials. [7]
Limits
- Main mode runs every prediction in one Node.js process, which the docs say does not scale to large numbers of predictions. Queue mode (Redis plus workers, with shared storage and PostgreSQL) is not part of this template; upstream's production setup starts at 2 main servers and 4 workers of 4 vCPU / 8 GB each. [23][24][25]
- The open-source edition has no workspaces, user invitations, role-based access, SSO or evaluations: those are Cloud and Enterprise features under a commercial license (packages/server/src/enterprise). Plan for one admin account building flows. [20][26]
- Model inference is not included: chat and embedding nodes call a hosted API or a separate runtime such as Ollama or LocalAI, which needs its own resources on top of these figures. [28]
- Logs are never pruned: the server log rotates every 20 MB but keeps every file, and the request log is a single file without rotation. Clean /home/node/.flowise/logs periodically. [3][32]
Security
- A new installation asks for an admin account on first visit. Create it right after the first start, before the URL is reachable by others. [26]
- Custom MCP stdio servers and custom tools run code on the server. Keep CUSTOM_MCP_SECURITY_CHECK on and CUSTOM_MCP_ALLOWED_COMMANDS empty unless every user who can edit flows is trusted. [4][6]
- Port 3000 is plain HTTP: serve it through an HTTPS reverse proxy with APP_URL set to the https address (secure cookies). By default Flowise trusts X-Forwarded-For from any hop, which per-IP rate limits rely on, so set TRUST_PROXY to the real number of proxies. [8][9][27]
Backup
- Back up the whole /home/node/.flowise volume with Flowise stopped: database.sqlite (flows, credentials, chat history), encryption.key and the auth secret key files, and storage/ (uploaded files). Keep FLOWISE_SECRETKEY_OVERWRITE with the backup. [5][31][32]
- With the postgres option, dump the database with pg_dump and test the dump by restoring it into a test database, as the databases guide describes; the Flowise volume still needs its own backup. [5]
Latest release
- This profile was checked against
Flowise 3.1.4
This profile was checked against the newest release.
- Checked on
- 14 Oct 2026
- State
- Checked within the last 90 days
- Where releases are published
- GitHub Releases
Version
- Profile status
- Published
- Checked against release
- Flowise 3.1.4
- Profile version
- 1.0.1
- Figures verified
- 14 Oct 2026
- Catalog release
- 2026.10.10
- Sizing policy
- 2026.10.0
- Compose file
- Unverified
Project and alternatives
- Official site
- flowiseai.com
- Source code
- github.com/FlowiseAI/Flowise
Sources
- Docker Docs: Control startup order in Compose (pg_isready healthcheck, service_healthy) (Official docs · read 11 Oct 2026)
- Flowise docker/docker-compose.yml at [email protected] (flowiseai/flowise:latest, /home/node/.flowise volume, curl /api/v1/ping healthcheck 10s/5s/5 retries/30s) (Official Compose · read 14 Oct 2026)
- Flowise docker/README.md at [email protected]: port 3000, LOG_PATH=/home/node/.flowise/logs, runs as node (uid 1000), chown 1000:1000 for bind mounts (Official repository · read 14 Oct 2026)
- Flowise docker/.env.example at [email protected] (DATABASE_*, FLOWISE_SECRETKEY_OVERWRITE, APP_URL, TRUST_PROXY, CUSTOM_MCP_*) (Official repository · read 14 Oct 2026)
- Flowise Docs: Databases (SQLite default in ~/.flowise; PostgreSQL via DATABASE_TYPE=postgres; backup steps) (Official docs · read 14 Oct 2026)
- Flowise Docs: Environment Variables (PORT default 3000, FLOWISE_SECRETKEY_OVERWRITE, storage, security settings) (Official docs · read 14 Oct 2026)
- Flowise Docs: Application auth (email/password since v3.0.1, APP_URL default http://localhost:3000, JWT settings) (Official docs · read 14 Oct 2026)
- Flowise packages/server/src/index.ts at [email protected] (runMigrations at startup; TRUST_PROXY unset = trust every proxy) (Official repository · read 14 Oct 2026)
- Flowise enterprise/middleware/passport/index.ts at [email protected] (secure cookies when APP_URL starts with https) (Official repository · read 14 Oct 2026)
- Flowise packages/server/src/routes/ping/index.ts at [email protected] (GET /api/v1/ping) (Official repository · read 14 Oct 2026)
- Flowise passport/SessionPersistance.ts at [email protected] (SQLite session store: connect-sqlite3 given the file name database.sqlite; unused with EXPIRE_AUTH_TOKENS_ON_RESTART=true) (Official repository · read 16 Oct 2026)
- connect-sqlite3 0.9.17 (2026-07-13, in flowiseai/flowise:3.1.4): options.db must be an open database; a file name fails with 'this.db.exec is not a function' (Official repository · read 16 Oct 2026)
- npm registry: flowise dist-tags latest 3.1.4 (published 2026-07-29) (Official repository · read 14 Oct 2026)
- Docker Hub tags of flowiseai/flowise: 3.1.4 (2026-07-29) newest version tag, 3.1.3 (2026-06-25) (Official repository · read 14 Oct 2026)
- Docker Hub manifest of flowiseai/flowise:3.1.4 (linux/amd64): 1,547,904,063 B compressed in 8 layers; layers decompressed and counted: 6,233,188,864 B (Measurement · read 14 Oct 2026)
- Docker Hub image layers of flowiseai/flowise:3.1.3: no USER instruction (runs as root), ENTRYPOINT flowise start (Official repository · read 14 Oct 2026)
- Flowise docker/docker-compose.yml at [email protected] (volume ~/.flowise:/root/.flowise) (Official Compose · read 14 Oct 2026)
- Flowise docker/Dockerfile at [email protected] (the Docker Hub image): node:alpine runtime with chromium and curl, chown node:node, USER node, ENTRYPOINT flowise start, no HEALTHCHECK (Official repository · read 14 Oct 2026)
- Flowise .github/workflows/docker-image-dockerhub.yml: flowiseai/flowise is built from docker/Dockerfile, flowiseai/flowise-worker from docker/worker/Dockerfile (Official repository · read 14 Oct 2026)
- Flowise LICENSE.md: Apache 2.0, except packages/server/src/enterprise and marked files under a Commercial License (Official repository · read 14 Oct 2026)
- Flowise Docs: Get Started (Docker Compose from the docker folder; Flowise Cloud) (Official docs · read 14 Oct 2026)
- Flowise Docs: Deploy on GCP (Kubernetes Deployment, 1 replica, resources.requests cpu 1, memory 1Gi) (Official docs · read 14 Oct 2026)
- Flowise Docs: Running in Production (queue mode, 2 main servers + 4 workers, each starting from 4 vCPU 8 GB RAM; PostgreSQL at scale) (Official docs · read 14 Oct 2026)
- Flowise Docs: Running Flowise using Queue (main mode is one Node.js main thread and does not scale to many predictions; queue mode with Redis and workers) (Official docs · read 14 Oct 2026)
- Flowise docker/docker-compose-queue-prebuilt.yml at [email protected] (redis, flowise main, flowise-worker sharing the ~/.flowise mount) (Official Compose · read 14 Oct 2026)
- Flowise Docs: Workspaces (only for Cloud and Enterprise plans; a new installation requires an admin account setup) (Official docs · read 14 Oct 2026)
- Flowise Docs: Rate Limit (tracked by client IP; behind a proxy the IP must be resolved) (Official docs · read 14 Oct 2026)
- Flowise Docs: Chat Models nodes (hosted APIs such as OpenAI and Anthropic, and self-hosted runtimes such as ChatOllama and ChatLocalAI) (Official docs · read 14 Oct 2026)
- flowiseai.com pricing: Free 100 predictions/month 5 MB; Starter 10,000 predictions/month 1 GB storage; Pro 50,000 predictions/month 10 GB storage, 5 users (Official docs · read 14 Oct 2026)
- Flowise packages/server/src/DataSource.ts at [email protected] (SQLite database.sqlite in $HOME/.flowise by default; postgres via DATABASE_TYPE) (Official repository · read 14 Oct 2026)
- Flowise packages/server/src/utils/index.ts at [email protected] (encryption.key and auth secret files written to $HOME/.flowise when not set) (Official repository · read 14 Oct 2026)
- Flowise LocalStorageProvider.ts at [email protected] (uploads in .flowise/storage; server log rotated at 20 MB with no file limit; request log a single unrotated file) (Official repository · read 14 Oct 2026)
- Flowise enterprise/utils/authSecrets.ts at [email protected] (TOKEN_HASH_SECRET, EXPRESS_SESSION_SECRET, JWT_* read from env or generated into key files) (Official repository · read 14 Oct 2026)
- Docker: containerd image store is the default on fresh Engine 29+ installs and keeps images compressed and uncompressed (Official docs · read 14 Oct 2026)
- docker-library/postgres: 18/trixie Dockerfile (postgres uid/gid 999, PGDATA /var/lib/postgresql/18/docker, VOLUME /var/lib/postgresql) (Official repository · read 14 Oct 2026)
- docker-library/postgres: 18/trixie docker-entrypoint.sh (chown PGDATA and /var/run/postgresql, then gosu postgres) (Official repository · read 14 Oct 2026)
- PostgreSQL 18 documentation: 19.4 Resource Consumption (Official docs · read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.3 Connections and Authentication (Official docs · read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (Official docs · read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (Official docs · read 10 Oct 2026)
- PostgreSQL 18 documentation: 51.2 How Connections Are Established (Official docs · read 10 Oct 2026)
- Docker Official Image postgres: documentation (docker-library/docs) (Official docs · read 10 Oct 2026)
- Docker Hub: library/postgres tag 18.6 (compressed image sizes) (Official repository · read 10 Oct 2026)