AWS
Learn how to deploy Flowise on AWS
Last updated
Learn how to deploy Flowise on AWS
Last updated
This requires some basic understanding of how AWS works.
Two options are available to deploy Flowise on AWS:
You can deploy Flowise on AWS ECS using our CloudFormation template. The template will create:
An ECS Cluster
A Task Definition
An ECS Service
An Application Load Balancer
A Target Group
Security Groups
An IAM Role
Click Create Stack
Select Template is ready and Upload a template file
Click Next
Enter a name for the stack and configure the parameters as needed
Click Next
Configure the stack options as needed
Click Next
Review the configuration and click Create Stack
After deployment, the URL of your Flowise application will be available in the CloudFormation stack outputs.
This setup deploys Flowise on an ECS cluster exposed through an Application Load Balancer (ALB). It is based on AWS best practices for ECS deployments.
You can modify the Terraform template to adjust:
Flowise image version
Environment variables
Resource configurations (CPU, memory, etc.)
Initialize Terraform:
In the EC2 dashboard, click Launch Instance
Scroll down and Create new key pair if you don't have one
Fill in your preferred key pair name. For Windows, we will use .ppk
and PuTTY to connect to the instance. For Mac and Linux, we will use .pem
and OpenSSH
Click Create key pair and select a location path to save the .ppk
file
Open the left side bar, and open a new tab from Security Groups. Then Create security group
Fill in your preferred security group name and description. Next, add the following to Inbound Rules and Create security group
Back to the first tab (EC2 Launch an instance) and scroll down to Network settings. Select the security group you've just created
Open PuTTY and fill in the HostName with your instance's Public IPv4 DNS name
From the left hand side bar of PuTTY Configuration, expand SSH and click on Auth. Click Browse and select the .ppk
file you downloaded earlier.
Click Open and Accept the pop up message
Then login as ec2-user
Now you are connected to the EC2 instance
Open the Terminal application on your Mac/Linux.
(Optional) Set the permissions of the private key file to restrict access to it:
Use the ssh
command to connect to your EC2 instance, specifying the username (ec2-user
), Public IPv4 DNS, and the path to the .pem
file.
Press Enter, and if everything is configured correctly, you should successfully establish an SSH connection to your EC2 instance
Apply pending updates using the yum command:
Search for Docker package:
Get version information:
Install docker, run:
Add group membership for the default ec2-user so you can run all docker commands without using the sudo command:
Install docker-compose:
Enable docker service at AMI boot time:
Start the Docker service:
Clone the repo
Cd into docker folder
Create a .env
file. You can use your favourite editor. I'll use nano
Specify the env variables:
(Optional) You can also specify FLOWISE_USERNAME
and FLOWISE_PASSWORD
for app level authorization. See more https://github.com/FlowiseAI/FlowiseDocs/blob/main/esp/configuracion/deployment/broken-reference/README.md
Then press Ctrl + X
to Exit, and Y
to save the file
Run docker compose
Your application is now ready at your Public IPv4 DNS on port 3000:
You can bring the app down by:
You can pull from latest image by:
Alternatively:
If you want to get rid of the :3000 on the url and have a custom domain, you can use NGINX to reverse proxy port 80 to 3000 So user will be able to open the app using your domain. Example: http://yourdomain.com
.
Copy paste the following and change to your domain:
press Ctrl + X
to Exit, and Y
to save the file
Go to your DNS provider, and add a new A record. Name will be your domain name, and value will be the Public IPv4 address from EC2 instance
You should now be able to open the app: http://yourdomain.com
.
If you like your app to have https://yourdomain.com
. Here is how:
For installing Certbot and enabling HTTPS on NGINX, we will rely on Python. So, first of all, let's set up a virtual environment:
Afterwards, run this command to install Certbot:
Now, execute the following command to ensure that the certbot
command can be run:
Finally, run the following command to obtain a certificate and let Certbot automatically modify the NGINX configuration, enabling HTTPS:
After following the certificate generation wizard, we will be able to access our EC2 instance via HTTPS using the address https://yourdomain.com
To enable Certbot to automatically renew the certificates, it is sufficient to add a cron job by running the following command:
Open the
Upload the cloudformation.yaml
file from the
The Terraform files (variables.tf
, main.tf
) are available in this GitHub repository: .
Click Launch instance. Navigate back to EC2 Dashboard, after few mins we should be able to see a new instance up and running
For Windows, we are going to use PuTTY. You can download one from .
You have successfully setup Flowise apps on EC2 instance with SSL certificate on your domain