After this lesson, you will be able to: Self-host Flowise via Docker locally, then deploy a production instance to a VPS (Railway / DigitalOcean) with a public URL.
The 'low-code' platforms feel polished as hosted SaaS, but the real career signal is being able to self-host them. This lesson takes you from Docker on your laptop to a deployed Flowise on the internet anyone can use.
Cost: free or near-free vs $40-$200/mo on hosted plans. Privacy: data stays on infrastructure you control. Customisation: install custom nodes and modify configs without waiting for vendor support. Portfolio: 'I deployed Flowise to Railway with a custom domain' is a stronger statement than 'I used the free trial'.
Create a docker-compose.yml in a new project folder, then `docker compose up -d`.
# docker-compose.ymlservices:flowise:image: flowiseai/flowise:latestcontainer_name: flowiserestart: unless-stoppedports:- "3000:3000"environment:- PORT=3000- FLOWISE_USERNAME=admin- FLOWISE_PASSWORD=please-change-me- DATABASE_PATH=/root/.flowise- APIKEY_PATH=/root/.flowise- LOG_PATH=/root/.flowise/logs- BLOB_STORAGE_PATH=/root/.flowise/storagevolumes:- flowise_data:/root/.flowisevolumes:flowise_data:
Railway gives you a public URL in under 5 minutes. The free tier is enough for portfolio + light production.
Push your docker-compose.yml (and any custom files) to a public GitHub repo
Sign in to Railway at railway.app and create a new project from your GitHub repo
Railway auto-detects Docker Compose. Hit Deploy.
In the service settings, set the environment variables (FLOWISE_USERNAME, FLOWISE_PASSWORD, etc.); never commit the password
Under Settings > Networking, generate a public domain (free) or wire your own
Wait ~2 min for the deploy. Visit the URL. Log in with your credentials.
Open a sample chatflow, plug in your Anthropic / OpenAI API key, test a chat
LangFlow's deploy story is identical: their Docker image is on Docker Hub as `langflowai/langflow:latest`. The volume mount and env vars are slightly different (read langflow.streamlit.app/docs); the rest of the workflow above transfers verbatim. Pick Flowise if you want the more polished community + node library. Pick LangFlow if you're already in the LangChain ecosystem and want native LangGraph integration.
Committing API keys or default passwords to GitHub. Forgetting persistent storage. The volume mount above is what survives container restarts. Without it, your chatflows vanish on every redeploy. Ignoring the API key exposed in the chatflow. Flowise's flow JSON includes the API key; never share the export publicly. Skipping HTTPS. Railway gives you HTTPS for free; never run a chat over HTTP. Not setting Flowise's `FLOWISE_FILE_SIZE_LIMIT` for file uploads; default is small.
Pick the highest-risk leak.
Sign in and purchase access to unlock this lesson.