- Implementation of a code-free AI chatbot creation environment using Docker containers.
- Flexible infrastructure management allowing deployment on local servers or VPS.
- Ability to integrate complex workflows with language models, vector databases, and memory.
If you want to start creating artificial intelligence applications without writing all the code from scratch, Flowise is one of the most accessible tools available. Its visual interface allows you to connect models, instructions, memory, databases, and external tools using nodes, making it easy to create chatbots, RAG flows, and AI agents.
Although Flowise can be installed directly using Node.js, using Docker avoids many of the dependency and versioning issues. The application runs within a isolated and reproducible containerTherefore, it is easier to move it to another computer, update it, or deploy it on a VPS.
In this guide we'll see how to install Flowise with Docker Compose using a single container, how to preserve data after restarting or updating the application, and what measures you should take before exposing it to the internet.
Flowise Cloud or self-installation: which option to choose

Before installing anything, you should decide where you want to run Flowise. The first option is Flowise CloudThe service is managed by its developers. It's the fastest way if you don't want to configure servers, databases, HTTPS certificates, or backups.
The second option is to host Flowise on your own computer, NAS, home server, or VPS. Self-hosting provides more control over infrastructure and dataBut it also makes you responsible for updates, security, and backups.
| Feature | Flowise Cloud | Self-managed Flowise |
|---|---|---|
| Facility | It does not require its own server. | You need Docker, Node.js, or another method |
| Maintenance | Managed by the provider | User responsibility |
| Data control | It depends on the service contracted. | Greater control over storage |
| Updates | Automatic | They must be applied manually |
| Scalability | Simplified | It depends on the infrastructure |
| Cost | Subscription according to the plan | Own equipment or server cost |
For testing on your own computer, Docker is a very convenient option. If the instance will be used by other people, you'll also need to configure authentication, HTTPS, a suitable database, and a backup strategy.
Requirements for installing Flowise with Docker

Before you begin, you need to have installed Docker Desktop On Windows or macOS. On Linux, you can use Docker Engine along with the Docker Compose plugin.
Verify that both components are working by running:
docker --version
docker compose version
It is also recommended to have Git installed if you are going to use the official method via Docker Compose:
git --version
Flowise uses port by default 3000If another application is already using it, you'll need to publish the container on a different port, for example, 3001.
How to install Flowise using Docker Compose

Docker Compose is the most recommended method because it saves the configuration in files that can later be reviewed, modified, and reused. It also simplifies updates and allows you to add other services, such as PostgreSQL or Redis, if the project grows.
Clone the official repository
Open a terminal and download the Flowise repository:
git clone https://github.com/FlowiseAI/Flowise.git
cd Flowise/docker
Within the directory docker You will find the Compose file and an example with the environment variables.
Create and review the .env file
On Linux or macOS you can create the file using:
cp .env.example .env
In PowerShell, the equivalent command is:
Copy-Item .env.example .env
Then open the file .env and check their values. The available variables may change between versions, so it's always best to start with the example file included in the version you are installing.
Pay particular attention to the port, database configuration, storage paths, and secrets used to protect sessions and tokens. Do not reuse the sample values in a public instance.
Lift the container
From the folder Flowise/docker, run:
docker compose up -d
The parameter -d It starts background services. You can check their status using:
docker compose ps
To view the latest records:
docker compose logs --tail=100
If everything is working correctly, open this address in your browser:
http://localhost:3000
In a new installation you will need to complete the creation of the administrator accountUse a unique and sufficiently strong password, especially if the application will be accessible from other computers.
How to install Flowise with a single Docker command
You can also run the image published on Docker Hub directly. This method is useful for performing quick tests without cloning the repository.
First, create a volume where the data will be stored:
docker volume create flowise_data
Then the container starts:
docker run -d \
--name flowise \
--restart unless-stopped \
-p 3000:3000 \
-v flowise_data:/home/node/.flowise \
flowiseai/flowise:latest
In PowerShell or CMD you can enter the command in a single line:
docker run -d --name flowise --restart unless-stopped -p 3000:3000 -v flowise_data:/home/node/.flowise flowiseai/flowise:latest
The most important part is this:
-v flowise_data:/home/node/.flowise
The current image runs the application through the user node, whose personal directory is /home/nodeThe volume allows for flows, credentials, configurations, and other files. survive the disposal of the container.
The parameter --restart unless-stopped This causes Docker to restart Flowise after the computer or server is restarted, except when the container has been deliberately stopped.
How to change the Flowise port
The value located on the left in -p 3000:3000 This corresponds to the host computer's port. If port 3000 is in use, you can use another port without changing the container's internal port:
docker run -d \
--name flowise \
--restart unless-stopped \
-p 3001:3000 \
-v flowise_data:/home/node/.flowise \
flowiseai/flowise:latest
In this case you would access it through:
http://localhost:3001
If Flowise is running on another computer on the network, it replaces localhost by its IP address. Before doing so, make sure that the firewall allows the connection and that the instance is properly secured.
How to stop, start and restart Flowise

If you have created a container called flowiseYou can manage it with these commands:
docker stop flowise
docker start flowise
docker restart flowise
To check if it is running:
docker ps
If the container does not appear, also show the detainees:
docker ps -a
The logs often reveal problems related to paths, ports, databases, or environment variables:
docker logs --tail=100 flowise
If you are using Docker Compose, use these commands from the folder where the corresponding file is located:
docker compose stop
docker compose start
docker compose restart
docker compose logs --tail=100
How to update Flowise without losing chatflows
Before any upgrade, perform a backup. Preserving the volume reduces the risk of loss, but A persistent volume does not replace a standalone copy.
If you use Docker Compose, the usual procedure is:
docker compose pull
docker compose up -d
Compose will download the specified image and recreate the services when necessary, maintaining the volumes defined in its configuration.
If you created the container manually, download the updated image:
docker pull flowiseai/flowise:latest
Then delete only the container, not the volume:
docker stop flowise
docker rm flowise
Finally, run the same command used to create it again:
docker run -d \
--name flowise \
--restart unless-stopped \
-p 3000:3000 \
-v flowise_data:/home/node/.flowise \
flowiseai/flowise:latest
The data will remain available because it remains within flowise_dataEven so, check the release notes for each version in case there are any migrations, changes in variables, or incompatibilities.
In a production environment, it is preferable fix a specific version of the image and test it before updating, instead of permanently relying on the label latest.
How to apply changes made to the .env file
Restarting a container doesn't always apply new environment variables, as these are incorporated during its creation. If you use Docker Compose and have modified the file .env, run:
docker compose up -d --force-recreate
This recreates the containers with the new configuration without needing to delete their volumes.
To review the variables that Compose has interpreted before applying the change, you can use:
docker compose config
Do not publicly share the full output if it contains passwords, secrets, or login information.
How to back up Flowise
If you have used a Docker volume called flowise_dataYou can create a compressed copy with:
docker run --rm \
-v flowise_data:/data \
-v "$PWD":/backup \
alpine \
tar czf /backup/flowise-backup.tar.gz -C /data .
On Windows, it may be more convenient to use Docker Desktop to inspect the volume or define a system folder as a mount. If you use a local directory, ensure that the user with UID 1000 used by the container has write permissions.
In PostgreSQL installations, you should also back up the database separately. Additionally, it's advisable to keep the key used to encrypt the credentials; a recovered database without its corresponding key may render the stored credentials unusable.
How to protect Flowise before publishing it on the Internet

Directly publishing port 3000 of a VPS is not a suitable configuration for production. Flowise can store vendor credentials, database connections, and tools capable of executing external actions.
Before allowing access from the Internet, apply at least these measures:
- Create an administrator account with a strong, unique password.
- Configure session secrets, JWTs, and tokens correctly.
- Place Flowise behind a reverse proxy such as Nginx, Caddy or Traefik.
- Activate HTTPS with a valid certificate.
- Do not expose APIs or chatflows without adequate protection.
- Limit access through the firewall when it is only used internally.
- Perform regular backups of your data and keys.
- Update Flowise, Docker, and your operating system regularly.
- Avoid storing secrets directly within shared nodes or templates.
You should also protect each chatflow you publish. The admin account restricts access to the dashboard, but a prediction API or an embedded chatbot might need it. your own key, usage limits, and access controls.
How to create your first chatbot in Flowise
Once logged in, you can create different types of flows. Chatflows They are designed to build conversational strings and applications. Agentflows They allow the design of more complex processes in which the model uses tools, makes decisions, and executes different steps.
To get started with a simple chatbot:
- Enter the section Chatflows.
- Press the button to create a new flow.
- Add a node corresponding to the chat provider or model.
- Create the necessary credentials to connect to their API.
- Add the required string, prompt, or components.
- Connect the nodes respecting their inputs and outputs.
- Save the flow and use the chat button to test it.
Flowise can work with external providers and compatible local model servers. In the latter case, remember that localhost within the container points to the container itself, not necessarily the host computer. In Docker Desktop, this is commonly used. host.docker.internal to reach a service running on the host computer.
How to add memory and instructions to the chatbot
The model needs clear instructions on its function, the tone to use, and the boundaries to respect. Depending on the selected workflow, these instructions can be provided via a prompt, a system message, or the agent's own settings.
Memory allows information from previous messages to be retained. However, it should not be confused with a knowledge base: memory stores the context of the conversation, while a RAG system... retrieves information from documents or external sources.
Excessively increasing the history can increase cost, latency, and memory consumption. It's best to choose the memory type and context length according to the chatbot's actual needs.
How to create a RAG chatbot with your documents

Flowise includes Document StoresAn interface that allows loading, splitting, preparing, and inserting documents into a vector database. This simplifies the construction of RAG applications.
A basic flow of this type incorporates:
- A source of documents, such as PDF files, web pages, or text.
- A divider that fragments the content into manageable blocks.
- An embedding model that converts text into vectors.
- A vector database where those fragments are stored.
- A retrieval tool that locates information related to the question.
- A language model that drafts the response using the retrieved context.
RAG can ensure that the responses are better substantiated and up-to-date with respect to the documents provided. However, It does not completely eliminate hallucinationsThe final quality depends on the original content, the division of the documents, the embeddings, the retrieval, and the instructions sent to the model.
Practical use cases of Flowise
One of the most common uses is to create a support assistant that answers questions about products, billing, returns or incidents using official company documentation.
It can also be used to develop a lead scoring system. The chatbot collects visitor information, determines their level of interest, and sends the data to an external CRM or automation system via an API.
Another example is an internal assistant that allows users to consult policies, technical procedures, or corporate documentation. In this scenario, appropriate permissions must be applied to prevent a user from retrieving information they shouldn't have access to.
Agentflows expand these possibilities by allowing the model to use tools. An agent can query a database, invoke an API, generate a structured response, or initiate another process. Precisely for this reason, Tools with the ability to perform actions must be limited and supervised..
Common mistakes when installing Flowise with Docker

Port 3000 is already occupied
If you receive an error indicating that the port cannot be bound, publish the container on another port:
-p 3001:3000
The flows disappear when the container is recreated.
This usually means that a persistent volume wasn't configured correctly. Check that you're using an allocation like:
-v flowise_data:/home/node/.flowise
Flowise cannot write to the mounted folder
The image executes the process with the user nodeIf you mount a host folder on Linux, it must allow writing to the user with UID 1000.
The container starts and stops continuously
Review the records:
docker logs flowise
The most common causes are empty or incorrect variables, paths without permissions, unconfigured secrets, database problems, or incompatibilities after an upgrade.
Flowise does not connect with any other service installed on the computer.
Inside the container, localhost This refers to the container itself. In Docker Desktop, try:
http://host.docker.internal:PUERTO
On Linux, it may be necessary to add a path to the host or use the address corresponding to the Docker interface.
Installing Flowise with Docker allows you to combine a accessible visual interface with a reproducible and self-managed environmentFor testing, a container and a persistent volume are sufficient, but a real-world implementation also needs authentication, HTTPS, backups, and controlled updates.
Once the environment is set up, you can start with a basic chatbot and gradually add memory, document stores, RAG retrieval, and external tools. This way, Flowise can grow from a small local prototype to an AI application integrated with other services.
I am a technology enthusiast who has turned his "geek" interests into a profession. I have spent more than 10 years of my life using cutting-edge technology and tinkering with all kinds of programs out of pure curiosity. Now I have specialized in computer technology and video games. This is because for more than 5 years I have been writing for various websites on technology and video games, creating articles that seek to give you the information you need in a language that is understandable to everyone.
If you have any questions, my knowledge ranges from everything related to the Windows operating system as well as Android for mobile phones. And my commitment is to you, I am always willing to spend a few minutes and help you resolve any questions you may have in this internet world.