Deploying ToolJet on Amazon EC2
You should setup a PostgreSQL database manually to be used by the ToolJet server.
If you have any questions feel free to join our Slack Community or send us an email at [email protected].
You can effortlessly deploy Amazon Elastic Compute Cloud Service (EC2) by utilizing a CloudFormation template. This template will deploy all the services required to run ToolJet on AWS EC2 instances.
To deploy all the services at once, simply employ the following template:
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/EC2-cloudfomration.yml
Follow the steps below to deploy ToolJet on AWS EC2 instances.
-
Setup a PostgreSQL database and make sure that the database is accessible from the EC2 instance.
-
Login to your AWS management console and go to the EC2 management page.
-
Under the
Images
section, click on theAMIs
button. -
Find the ToolJet version you want to deploy. Now, from the AMI search page, select the search type as "Public Images" and input the version you'd want
AMI Name : tooljet_EE-LTS-x.xx.ubuntu_focal
in the search bar. -
Select ToolJet's AMI and bootup an EC2 instance.
Creating a new security group is recommended. For example, if the installation should receive traffic from the internet, the inbound rules of the security group should look like this:
protocol | port | allowed_cidr |
---|---|---|
tcp | 22 | your IP |
tcp | 80 | 0.0.0.0/0 |
tcp | 443 | 0.0.0.0/0 |
-
Once the instance boots up, SSH into the instance by running
ssh -i <path_to_pem_file> ubuntu@<public_ip_of_the_instance>
-
Switch to the app directory by running
cd ~/app
. Modify the contents of the.env
file. ( Eg:vim .env
)The default
.env
file looks like this:TOOLJET_HOST=http://<example>
LOCKBOX_MASTER_KEY=<example>
SECRET_KEY_BASE=<example>
PG_DB=tooljet_prod
PG_USER=<pg user name>
PG_HOST=<pg host>
PG_PASS=<pg user password>Read environment variables reference
infoIf there are self signed HTTPS endpoints that ToolJet needs to connect to, please make sure that
NODE_EXTRA_CA_CERTS
environment variable is set to the absolute path containing the certificates. -
TOOLJET_HOST
environment variable determines where you can access the ToolJet client. It can either be the public ipv4 address of your instance or a custom domain that you want to use.Examples:
TOOLJET_HOST=http://12.34.56.78
orTOOLJET_HOST=https://yourdomain.com
orTOOLJET_HOST=https://tooljet.yourdomain.com
infoWe use a lets encrypt plugin on top of nginx to create TLS certificates on the fly.
infoPlease make sure that
TOOLJET_HOST
starts with eitherhttp://
orhttps://
-
Once you've configured the
.env
file, run./setup_app
. This script will install all the dependencies of ToolJet and then will start the required services. -
If you've set a custom domain for
TOOLJET_HOST
, add aA record
entry in your DNS settings to point to the IP address of the EC2 instance. -
You're all done, ToolJet client would now be served at the value you've set in
TOOLJET_HOST
.
Deploying ToolJet Database
ToolJet AMI comes inbuilt with PostgREST. If you intend to use this feature, you'd only have to setup the environment variables in ~/app/.env
file and run ./setup_app
script.
You can learn more about this feature here.
Upgrading to the Latest LTS Version
New LTS versions are released every 3-5 months with an end-of-life of atleast 18 months. To check the latest LTS version, visit the ToolJet Docker Hub page. The LTS tags follow a naming convention with the prefix LTS-
followed by the version number, for example tooljet/tooljet:EE-LTS-latest
.
If this is a new installation of the application, you may start directly with the latest version. This guide is not required for new installations.
Prerequisites for Upgrading to the Latest LTS Version:
-
It is crucial to perform a comprehensive backup of your database before starting the upgrade process to prevent data loss.
-
Users on versions earlier than v2.23.0-ee2.10.2 must first upgrade to this version before proceeding to the LTS version.
For specific issues or questions, refer to our Slack.