Deploy FlowiseAI
Open-source low-code tool to build AI agents and LLM workflows visually
Just deployed
/var/lib/postgresql/data
Flowise
Just deployed
/home/node/.flowise
Bucket
Bucket
Just deployed
Deploy and Host FlowiseAI on Railway
Flowise is an open-source, low-code tool for building AI agents, chatbots and LLM workflows with a drag & drop interface. Connect models, vector stores, tools and memory visually, then expose your flows through an API or an embeddable chat widget.
> Note: The upstream Flowise repository was archived on Aug 13, 2026 and is no longer actively maintained. This template deploys the last available image. Use it at your own discretion and keep it behind authentication.
About Hosting FlowiseAI
Hosting Flowise means running a single Node.js service (the official flowiseai/flowise image) that serves both the UI and the API on one HTTP port. By default it stores data in SQLite and uploads on local disk, so you need a persistent volume mounted at /home/node/.flowise to avoid losing flows, credentials and files on redeploy. For production, you can switch to Postgres or MySQL with the DATABASE_* variables, use S3, GCS or Azure Blob for uploads, and set FLOWISE_SECRETKEY_OVERWRITE so your encryption key survives redeploys. Railway handles the build, networking, HTTPS and volumes for you.
Common Use Cases
- Build RAG chatbots over your own documents and knowledge bases
- Create multi-step AI agents that call tools, APIs and custom functions
- Prototype and ship LLM workflows, then embed them in a website or call them via REST API
Dependencies for FlowiseAI Hosting
- Flowise Docker image (
flowiseai/flowise) - Persistent volume mounted at
/home/node/.flowise(SQLite database, encryption key and uploads) - Optional: Postgres or MySQL database, S3-compatible storage, Redis (queue mode)
Implementation Details
Flowise is configured entirely through environment variables. The most useful ones:
| Variable | Description | Default |
|---|---|---|
PORT | HTTP port Flowise listens on | 3000 |
DATABASE_TYPE | sqlite, mysql or postgres | sqlite |
DATABASE_PATH | Where SQLite is saved (sqlite only) | ~/.flowise |
DATABASE_HOST / DATABASE_PORT | Database host and port (non-sqlite) | |
DATABASE_USER / DATABASE_PASSWORD / DATABASE_NAME | Database credentials and name (non-sqlite) | |
DATABASE_SSL | Connect over SSL (Postgres) | false |
DATABASE_SSL_KEY_BASE64 | SSL client cert in base64 (takes priority over DATABASE_SSL) | |
SECRETKEY_PATH | Where the credentials encryption key is stored | packages/server |
FLOWISE_SECRETKEY_OVERWRITE | Encryption key used instead of the stored one | |
STORAGE_TYPE | Uploads storage: local, s3, gcs or azure | local |
BLOB_STORAGE_PATH | Local uploads folder (when local) | ~/.flowise/storage |
S3_STORAGE_BUCKET_NAME / S3_STORAGE_ACCESS_KEY_ID / S3_STORAGE_SECRET_ACCESS_KEY / S3_STORAGE_REGION | S3 storage settings | |
S3_ENDPOINT_URL / S3_FORCE_PATH_STYLE | Custom S3 endpoint and path-style addressing | false |
GOOGLE_CLOUD_STORAGE_PROJ_ID / GOOGLE_CLOUD_STORAGE_CREDENTIAL / GOOGLE_CLOUD_STORAGE_BUCKET_NAME | GCS storage settings | |
AZURE_BLOB_STORAGE_CONNECTION_STRING | Azure connection string (or use account name + key) | |
CORS_ORIGINS | Allowed origins for cross-origin calls | |
CORS_ALLOW_CREDENTIALS | Enable Access-Control-Allow-Credentials | false |
IFRAME_ORIGINS | Allowed origins for iframe embedding | |
FLOWISE_FILE_SIZE_LIMIT | Max upload size | 50mb |
TRUST_PROXY | Proxy trust settings for correct IP detection | true |
SHOW_COMMUNITY_NODES | Show community-created nodes | |
DISABLED_NODES | Comma-separated node names to hide | |
DISABLE_FLOWISE_TELEMETRY | Turn off telemetry | |
MODEL_LIST_CONFIG_JSON | Path to a custom model list file | |
TOOL_FUNCTION_BUILTIN_DEP / TOOL_FUNCTION_EXTERNAL_DEP | Node.js modules allowed in Custom Tools and Functions | |
ALLOW_BUILTIN_DEP | Allow project dependencies in Custom Tools | false |
DEBUG | Print component logs | |
LOG_LEVEL | error, info, verbose or debug | info |
LOG_PATH | Log files location | Flowise/logs |
Authentication and advanced options (see the Flowise docs for the full list):
| Variable | Description |
|---|---|
APP_URL | Public URL of your instance |
JWT_AUTH_TOKEN_SECRET / JWT_REFRESH_TOKEN_SECRET | Secrets used to sign auth tokens |
EXPRESS_SESSION_SECRET / TOKEN_HASH_SECRET | Session and token hashing secrets |
SECURE_COOKIES | Use secure cookies (set true behind HTTPS) |
SMTP_HOST / SMTP_PORT / SMTP_USER / SMTP_PASSWORD / SENDER_EMAIL | Email settings for invites and password resets |
MODE | Set to queue to enable queue mode |
REDIS_URL or REDIS_HOST / REDIS_PORT / REDIS_PASSWORD | Redis connection (queue mode) |
WORKER_CONCURRENCY / QUEUE_NAME | Queue worker settings |
ENABLE_METRICS / METRICS_PROVIDER | Metrics collection (Prometheus or OpenTelemetry) |
HTTP_DENY_LIST / HTTP_SECURITY_CHECK | Restrict outbound HTTP requests from tools |
Docker equivalent (healthcheck at /api/v1/ping):
services:
flowise:
image: flowiseai/flowise:latest
restart: always
environment:
- PORT=3000
ports:
- '3000:3000'
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/v1/ping']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
- ~/.flowise:/home/node/.flowise
entrypoint: /bin/sh -c "sleep 3; flowise start"
The container runs as the non-root node user, so the mounted volume must be writable by it.
Why Deploy FlowiseAI on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying FlowiseAI on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
