Merge pull request #7999 from ToolJet/docs/ecsnew
[docs] ecs and azure container doc updates
|
|
@ -5,7 +5,7 @@ spec:
|
|||
image:
|
||||
registry_type: DOCKER_HUB
|
||||
registry: tooljet
|
||||
repository: tooljet-ce
|
||||
repository: tooljet
|
||||
tag: latest
|
||||
run_command: "./server/scripts/digitalocean-postbuild.sh"
|
||||
instance_size_slug: "basic-s"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,49 +7,13 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
The latest docker image is `tooljet/tooljet:<version_tag>`
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Once signed-in to your DigitalOcean account, click on the **Create App** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/1.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. On the next page, you'll be asked to choose a **Resource** type, select **Docker Hub**. Enter the Repository name as `tooljet/tooljet` and the corresponding tag.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/2.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/3.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
Make sure the **Run Command** is `./server/scripts/digitalocean-postbuild.sh` and the **HTTP** port is `3000`. Once you have edited the ToolJet resource click on the **Back** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/4.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
|
|
@ -70,82 +34,60 @@ Follow the steps below to configure Redis database:
|
|||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
:::info
|
||||
In the business edition, saving or making changes in apps is dependent on Redis, even if multi-player editing is not necessary.
|
||||
:::
|
||||
|
||||
### Database setup
|
||||
|
||||
Follow the below steps to attach a postgresql database:
|
||||
## Deploying
|
||||
|
||||
1. Click on **Add Resource** and select **Database** and click on add.
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/7.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
|
||||
|
||||
</div>
|
||||
|
||||
2. Enter the preffered name for the database and click **Create and attach**.
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/8.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
### Setting up environment variables
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
1. Once the database is attached, click on **Next** to set up the environment variables.
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/9.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Click on **Edit** next to `tooljet-app`.
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/10.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Click on the build editor to edit the environment variables.
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/11.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
```bash
|
||||
NODE_ ENV=production
|
||||
NODE_OPTIONS=--max-old-space-size=4096
|
||||
LOCKBOX MASTER_KEY= #Use `openssl rand -hex 32`
|
||||
SECRET KEY BASE= #Use `openssl rand -hex 64`
|
||||
DEPLOYMENT_PLATFORM=digitalocean
|
||||
DATABASE_URL=${<enter the db name which was attached>.DATABASE_URL}
|
||||
CA CERT=${<enter the db name which was attached>.CA_CERT}
|
||||
TOOLJET HOST=${APP_URL}
|
||||
TOOLJET_SERVER_URL=${APP_URL}
|
||||
REDIS_URL= #connection string
|
||||
```
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
DATABASE_URL and CA_CERT variable should be added in the above format.
|
||||
:::tip
|
||||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
4. After adding the environment variables, click on **Save**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/12.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
To add additional environment variables, refer this [doc](https://docs.tooljet.com/docs/setup/env-vars/).
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,81 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
5. Please add redis container as part of the deployment. Please make sure that you are using redis version 6.x.x
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
Also add these env variable in the above tooljet container
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
```
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
BIN
docs/static/img/setup/azure-container/3-a.png
vendored
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
docs/static/img/setup/azure-container/5a.png
vendored
Normal file
|
After Width: | Height: | Size: 309 KiB |
BIN
docs/static/img/setup/ecs/ecs-1.png
vendored
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
docs/static/img/setup/ecs/ecs-10.png
vendored
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
docs/static/img/setup/ecs/ecs-11.png
vendored
Normal file
|
After Width: | Height: | Size: 242 KiB |
BIN
docs/static/img/setup/ecs/ecs-12.png
vendored
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
docs/static/img/setup/ecs/ecs-13.png
vendored
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/static/img/setup/ecs/ecs-14.png
vendored
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
docs/static/img/setup/ecs/ecs-15.png
vendored
Normal file
|
After Width: | Height: | Size: 201 KiB |
BIN
docs/static/img/setup/ecs/ecs-16.png
vendored
Normal file
|
After Width: | Height: | Size: 250 KiB |
BIN
docs/static/img/setup/ecs/ecs-17.png
vendored
Normal file
|
After Width: | Height: | Size: 231 KiB |
BIN
docs/static/img/setup/ecs/ecs-2.png
vendored
Normal file
|
After Width: | Height: | Size: 275 KiB |
BIN
docs/static/img/setup/ecs/ecs-3.png
vendored
Normal file
|
After Width: | Height: | Size: 231 KiB |
BIN
docs/static/img/setup/ecs/ecs-4.png
vendored
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
docs/static/img/setup/ecs/ecs-5.png
vendored
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
docs/static/img/setup/ecs/ecs-6.png
vendored
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
docs/static/img/setup/ecs/ecs-8.png
vendored
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
docs/static/img/setup/ecs/ecs-9.png
vendored
Normal file
|
After Width: | Height: | Size: 159 KiB |
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,13 +7,38 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
1. Navigate to **Database** and create a database cluster.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/5.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Select `Redis` from the database engine and add a unique name to the cluster and click on **Create Database cluster**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/6.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
|
@ -24,19 +49,37 @@ Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
|||
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - App name" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - App name" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
|
|
@ -44,14 +87,14 @@ Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
|||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy ToolJet Database on DigitalOcean:
|
||||
|
||||
1. If you are using dev database within ToolJet deployment, upgrade it to managed database. You could also add a separate database, if you intent use a different database, please refer the [environment variables](/docs/setup/env-vars#tooljet-database-feature-enable--optional-) for additional env variables.
|
||||
1. If you are using dev database within ToolJet deployment, upgrade it to managed database. You could also add a separate database, if you intent use a different database, please refer the [environment variables](/docs/setup/env-vars#enable-tooljet-database--optional-) for additional env variables.
|
||||
|
||||
2. Create a new app for PostgREST server. You can opt for docker hub to deploy PostgREST image of version `10.1.x`.
|
||||
|
||||
|
|
@ -63,4 +106,4 @@ Follow the steps below to deploy ToolJet Database on DigitalOcean:
|
|||
|
||||
4. Add your newly created PostgREST app to the trusted sources of your managed or separate database.
|
||||
|
||||
5. Update your existing ToolJet application deployment with [environment variables](/docs/setup/env-vars#tooljet-database-feature-enable--optional-) required for PostgREST.
|
||||
5. Update your existing ToolJet application deployment with [environment variables](/docs/setup/env-vars#enable-tooljet-database--optional-) required for PostgREST.
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,71 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet-ce`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet-ce:v1.26.0`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,13 +7,38 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
1. Navigate to **Database** and create a database cluster.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/5.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Select `Redis` from the database engine and add a unique name to the cluster and click on **Create Database cluster**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/6.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
|
@ -24,19 +49,37 @@ Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
|||
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - App name" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - App name" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
|
|
@ -44,14 +87,14 @@ Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
|||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy ToolJet Database on DigitalOcean:
|
||||
|
||||
1. If you are using dev database within ToolJet deployment, upgrade it to managed database. You could also add a separate database, if you intent use a different database, please refer the [environment variables](/docs/setup/env-vars#tooljet-database-feature-enable--optional-) for additional env variables.
|
||||
1. If you are using dev database within ToolJet deployment, upgrade it to managed database. You could also add a separate database, if you intent use a different database, please refer the [environment variables](/docs/setup/env-vars#enable-tooljet-database--optional-) for additional env variables.
|
||||
|
||||
2. Create a new app for PostgREST server. You can opt for docker hub to deploy PostgREST image of version `10.1.x`.
|
||||
|
||||
|
|
@ -63,4 +106,4 @@ Follow the steps below to deploy ToolJet Database on DigitalOcean:
|
|||
|
||||
4. Add your newly created PostgREST app to the trusted sources of your managed or separate database.
|
||||
|
||||
5. Update your existing ToolJet application deployment with [environment variables](/docs/setup/env-vars#tooljet-database-feature-enable--optional-) required for PostgREST.
|
||||
5. Update your existing ToolJet application deployment with [environment variables](/docs/setup/env-vars#enable-tooljet-database--optional-) required for PostgREST.
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,71 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet-ce`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet-ce:v1.26.0`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,49 +7,13 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
The latest docker image is `tooljet/tooljet:<version_tag>`
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Once signed-in to your DigitalOcean account, click on the **Create App** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/1.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. On the next page, you'll be asked to choose a **Resource** type, select **Docker Hub**. Enter the Repository name as `tooljet/tooljet` and the corresponding tag.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/2.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/3.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
Make sure the **Run Command** is `./server/scripts/digitalocean-postbuild.sh` and the **HTTP** port is `3000`. Once you have edited the ToolJet resource click on the **Back** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/4.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
|
|
@ -70,82 +34,60 @@ Follow the steps below to configure Redis database:
|
|||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
:::info
|
||||
In the business edition, saving or making changes in apps is dependent on Redis, even if multi-player editing is not necessary.
|
||||
:::
|
||||
|
||||
### Database setup
|
||||
|
||||
Follow the below steps to attach a postgresql database:
|
||||
## Deploying
|
||||
|
||||
1. Click on **Add Resource** and select **Database** and click on add.
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/7.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
|
||||
|
||||
</div>
|
||||
|
||||
2. Enter the preffered name for the database and click **Create and attach**.
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/8.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
### Setting up environment variables
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
1. Once the database is attached, click on **Next** to set up the environment variables.
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/9.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Click on **Edit** next to `tooljet-app`.
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/10.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Click on the build editor to edit the environment variables.
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/11.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
```bash
|
||||
NODE_ ENV=production
|
||||
NODE_OPTIONS=--max-old-space-size=4096
|
||||
LOCKBOX MASTER_KEY= #Use `openssl rand -hex 32`
|
||||
SECRET KEY BASE= #Use `openssl rand -hex 64`
|
||||
DEPLOYMENT_PLATFORM=digitalocean
|
||||
DATABASE_URL=${<enter the db name which was attached>.DATABASE_URL}
|
||||
CA CERT=${<enter the db name which was attached>.CA_CERT}
|
||||
TOOLJET HOST=${APP_URL}
|
||||
TOOLJET_SERVER_URL=${APP_URL}
|
||||
REDIS_URL= #connection string
|
||||
```
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
DATABASE_URL and CA_CERT variable should be added in the above format.
|
||||
:::tip
|
||||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
4. After adding the environment variables, click on **Save**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/12.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
To add additional environment variables, refer this [doc](https://docs.tooljet.com/docs/setup/env-vars/).
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,81 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
5. Please add redis container as part of the deployment. Please make sure that you are using redis version 6.x.x
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
Also add these env variable in the above tooljet container
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
```
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,49 +7,13 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
The latest docker image is `tooljet/tooljet:<version_tag>`
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Once signed-in to your DigitalOcean account, click on the **Create App** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/1.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. On the next page, you'll be asked to choose a **Resource** type, select **Docker Hub**. Enter the Repository name as `tooljet/tooljet` and the corresponding tag.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/2.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/3.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
Make sure the **Run Command** is `./server/scripts/digitalocean-postbuild.sh` and the **HTTP** port is `3000`. Once you have edited the ToolJet resource click on the **Back** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/4.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
|
|
@ -70,82 +34,60 @@ Follow the steps below to configure Redis database:
|
|||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
:::info
|
||||
In the business edition, saving or making changes in apps is dependent on Redis, even if multi-player editing is not necessary.
|
||||
:::
|
||||
|
||||
### Database setup
|
||||
|
||||
Follow the below steps to attach a postgresql database:
|
||||
## Deploying
|
||||
|
||||
1. Click on **Add Resource** and select **Database** and click on add.
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/7.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
|
||||
|
||||
</div>
|
||||
|
||||
2. Enter the preffered name for the database and click **Create and attach**.
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/8.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
### Setting up environment variables
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
1. Once the database is attached, click on **Next** to set up the environment variables.
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/9.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Click on **Edit** next to `tooljet-app`.
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/10.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Click on the build editor to edit the environment variables.
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/11.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
```bash
|
||||
NODE_ ENV=production
|
||||
NODE_OPTIONS=--max-old-space-size=4096
|
||||
LOCKBOX MASTER_KEY= #Use `openssl rand -hex 32`
|
||||
SECRET KEY BASE= #Use `openssl rand -hex 64`
|
||||
DEPLOYMENT_PLATFORM=digitalocean
|
||||
DATABASE_URL=${<enter the db name which was attached>.DATABASE_URL}
|
||||
CA CERT=${<enter the db name which was attached>.CA_CERT}
|
||||
TOOLJET HOST=${APP_URL}
|
||||
TOOLJET_SERVER_URL=${APP_URL}
|
||||
REDIS_URL= #connection string
|
||||
```
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
DATABASE_URL and CA_CERT variable should be added in the above format.
|
||||
:::tip
|
||||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
4. After adding the environment variables, click on **Save**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/12.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
To add additional environment variables, refer this [doc](https://docs.tooljet.com/docs/setup/env-vars/).
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,81 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
5. Please add redis container as part of the deployment. Please make sure that you are using redis version 6.x.x
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
Also add these env variable in the above tooljet container
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
```
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,49 +7,13 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
The latest docker image is `tooljet/tooljet:<version_tag>`
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Once signed-in to your DigitalOcean account, click on the **Create App** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/1.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. On the next page, you'll be asked to choose a **Resource** type, select **Docker Hub**. Enter the Repository name as `tooljet/tooljet` and the corresponding tag.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/2.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/3.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
Make sure the **Run Command** is `./server/scripts/digitalocean-postbuild.sh` and the **HTTP** port is `3000`. Once you have edited the ToolJet resource click on the **Back** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/4.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
|
|
@ -70,82 +34,60 @@ Follow the steps below to configure Redis database:
|
|||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
:::info
|
||||
In the business edition, saving or making changes in apps is dependent on Redis, even if multi-player editing is not necessary.
|
||||
:::
|
||||
|
||||
### Database setup
|
||||
|
||||
Follow the below steps to attach a postgresql database:
|
||||
## Deploying
|
||||
|
||||
1. Click on **Add Resource** and select **Database** and click on add.
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/7.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
|
||||
|
||||
</div>
|
||||
|
||||
2. Enter the preffered name for the database and click **Create and attach**.
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/8.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
### Setting up environment variables
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
1. Once the database is attached, click on **Next** to set up the environment variables.
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/9.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Click on **Edit** next to `tooljet-app`.
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/10.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Click on the build editor to edit the environment variables.
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/11.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
```bash
|
||||
NODE_ ENV=production
|
||||
NODE_OPTIONS=--max-old-space-size=4096
|
||||
LOCKBOX MASTER_KEY= #Use `openssl rand -hex 32`
|
||||
SECRET KEY BASE= #Use `openssl rand -hex 64`
|
||||
DEPLOYMENT_PLATFORM=digitalocean
|
||||
DATABASE_URL=${<enter the db name which was attached>.DATABASE_URL}
|
||||
CA CERT=${<enter the db name which was attached>.CA_CERT}
|
||||
TOOLJET HOST=${APP_URL}
|
||||
TOOLJET_SERVER_URL=${APP_URL}
|
||||
REDIS_URL= #connection string
|
||||
```
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
DATABASE_URL and CA_CERT variable should be added in the above format.
|
||||
:::tip
|
||||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
4. After adding the environment variables, click on **Save**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/12.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
To add additional environment variables, refer this [doc](https://docs.tooljet.com/docs/setup/env-vars/).
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,81 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
5. Please add redis container as part of the deployment. Please make sure that you are using redis version 6.x.x
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
Also add these env variable in the above tooljet container
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
```
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ title: Azure container apps
|
|||
# Deploying ToolJet on Azure container apps
|
||||
|
||||
:::info
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet
|
||||
Please note that you need to set up a PostgreSQL database manually to be used by ToolJet. Additionally, you must set up a Redis service through Azure Cache for Redis.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
|
@ -36,9 +36,12 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
|
||||
- Make sure to provide the image tag, and then enter `npm run start:prod` in the "Command override" field.
|
||||
- Add the following ToolJet application variables under the "Environmental variable" section. You can refer to this [**documentation**](/docs/setup/env-vars) for more information on environment variables.
|
||||
|
||||
**Note: For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step4.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/3-a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ Please note that you need to set up a PostgreSQL database manually to be used by
|
|||
5. Click on "Review + create" and wait for the template to be verified and passed, as shown in the screenshot below.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/step5.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
<img className="screenshot-full" src="/img/setup/azure-container/5a.png" alt="Deploying ToolJet on Azure container apps" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,49 +7,13 @@ title: DigitalOcean
|
|||
|
||||
Now you can quickly deploy ToolJet using the Deploy to DigitalOcean button.
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
The latest docker image is `tooljet/tooljet:<version_tag>`
|
||||
|
||||
## Deploying
|
||||
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Once signed-in to your DigitalOcean account, click on the **Create App** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/1.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
2. On the next page, you'll be asked to choose a **Resource** type, select **Docker Hub**. Enter the Repository name as `tooljet/tooljet` and the corresponding tag.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/2.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/3.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
Make sure the **Run Command** is `./server/scripts/digitalocean-postbuild.sh` and the **HTTP** port is `3000`. Once you have edited the ToolJet resource click on the **Back** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/4.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.
|
||||
|
||||
### Redis setup
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
Follow the steps below to configure Redis database:
|
||||
|
||||
|
|
@ -70,82 +34,60 @@ Follow the steps below to configure Redis database:
|
|||
</div>
|
||||
|
||||
3. Once the set-up is complete, add the Redis connection string in the environmental variable of `tooliet-app`.
|
||||
:::info
|
||||
In the business edition, saving or making changes in apps is dependent on Redis, even if multi-player editing is not necessary.
|
||||
:::
|
||||
|
||||
### Database setup
|
||||
|
||||
Follow the below steps to attach a postgresql database:
|
||||
## Deploying
|
||||
|
||||
1. Click on **Add Resource** and select **Database** and click on add.
|
||||
#### Follow the steps below to deploy ToolJet on DigitalOcean:
|
||||
|
||||
1. Click on the button below to start one click deployment
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/7.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
|
||||
|
||||
</div>
|
||||
|
||||
2. Enter the preffered name for the database and click **Create and attach**.
|
||||
2. A new tab will open up, sign-in to your DigitalOCean account. Once signed-in, the **Create App** page will open up and **Resources** will be already selected. Click on **Next** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/8.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/resources.png" alt="ToolJet - Deploy on DigitalOcean - Resources" />
|
||||
|
||||
</div>
|
||||
|
||||
### Setting up environment variables
|
||||
3. Now, on **Environment Variables** page you can add new variables or edit the existing ones. Check the [environment variables here](/docs/setup/env-vars).
|
||||
|
||||
1. Once the database is attached, click on **Next** to set up the environment variables.
|
||||
Also, please add the redis url in the environment variable `REDIS_URL= #connection string`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/9.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/env.png" alt="ToolJet - Deploy on DigitalOcean - Environment Variables" />
|
||||
|
||||
</div>
|
||||
|
||||
2. Click on **Edit** next to `tooljet-app`.
|
||||
4. On the next page, you can change the **App name**, **Project**, and the **Region**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/10.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/region.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
3. Click on the build editor to edit the environment variables.
|
||||
5. On the last page, you'll be asked to **Review** all the app details such that we entered before such as **Resources**, **Environment Variables**, **Region**, and there will also be **Billing** section at the end. Review all the details and click the **Create Resource** button.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/11.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/review.png" alt="ToolJet - Deploy on DigitalOcean - Launch" />
|
||||
|
||||
</div>
|
||||
|
||||
```bash
|
||||
NODE_ ENV=production
|
||||
NODE_OPTIONS=--max-old-space-size=4096
|
||||
LOCKBOX MASTER_KEY= #Use `openssl rand -hex 32`
|
||||
SECRET KEY BASE= #Use `openssl rand -hex 64`
|
||||
DEPLOYMENT_PLATFORM=digitalocean
|
||||
DATABASE_URL=${<enter the db name which was attached>.DATABASE_URL}
|
||||
CA CERT=${<enter the db name which was attached>.CA_CERT}
|
||||
TOOLJET HOST=${APP_URL}
|
||||
TOOLJET_SERVER_URL=${APP_URL}
|
||||
REDIS_URL= #connection string
|
||||
```
|
||||
6. Once you click the **Create Resource** button, the build will begin. Once the build is complete, you'll see the resource and a **URL** next to it. Click on the URL to open the deployed **ToolJet**.
|
||||
|
||||
DATABASE_URL and CA_CERT variable should be added in the above format.
|
||||
:::tip
|
||||
ToolJet server and client can be deployed as standalone applications. If you do not want to deploy the client on DigitalOcean, modify `package.json` accordingly. We have a [guide](/docs/setup/client) on deploying ToolJet client using services such as Firebase.
|
||||
:::
|
||||
|
||||
4. After adding the environment variables, click on **Save**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/digitalocean/12.png" alt="ToolJet - Deploy on DigitalOcean" />
|
||||
|
||||
</div>
|
||||
|
||||
To add additional environment variables, refer this [doc](https://docs.tooljet.com/docs/setup/env-vars/).
|
||||
|
||||
#### Deploying Tooljet Database
|
||||
## Deploying Tooljet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database.
|
||||
You can learn more about this feature [here](/docs/tooljet-database).
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ id: ec2
|
|||
title: AWS EC2
|
||||
---
|
||||
|
||||
# AWS EC2
|
||||
# Deploying ToolJet on Amazon EC2
|
||||
|
||||
:::info
|
||||
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](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
|
||||
Follow the steps below to deploy ToolJet on AWS EC2 instances.
|
||||
|
|
|
|||
|
|
@ -9,81 +9,222 @@ title: AWS ECS
|
|||
You should setup a PostgreSQL database manually to be used by ToolJet.
|
||||
:::
|
||||
|
||||
*If you have any questions feel free to join our [Slack Community](https://tooljet.com/slack) or send us an email at hello@tooljet.com.*
|
||||
You can effortlessly deploy Amazon Elastic Container Service (ECS) by utilizing a [CloudFormation template](https://aws.amazon.com/cloudformation/):
|
||||
|
||||
To deploy all the services at once, simply employ the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudfomation-template-one-click.yml
|
||||
```
|
||||
|
||||
If you already have existing services and wish to integrate ToolJet seamlessly into your current Virtual Private Cloud (VPC) or other setups, you can opt for the following template:
|
||||
|
||||
```
|
||||
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/cloudformation/Cloudformation-deploy.yml
|
||||
```
|
||||
|
||||
## Redis
|
||||
|
||||
:::info
|
||||
ToolJet requires configuring Redis which is used for enabling multiplayer editing and for background jobs.
|
||||
:::
|
||||
|
||||
To deploy Redis on an ECS cluster, please follow the steps outlined below.
|
||||
|
||||
Please note that if you already have an existing Redis setup, you can continue using it. However, if you need to create a new Redis service, you can follow the steps provided below.
|
||||
|
||||
- Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-1.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
- Please add container and image tag as shown below:
|
||||
|
||||
**Make sure that you are using redis version 6.x.x**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-2.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Ensure that when creating a service, Redis is integrated into the same cluster where your ToolJet app will be deployed.
|
||||
|
||||
**Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-3.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
## ToolJet
|
||||
|
||||
Follow the steps below to deploy ToolJet on a ECS cluster.
|
||||
|
||||
1. Setup a PostgreSQL database
|
||||
ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
1. Setup a PostgreSQL database ToolJet uses a postgres database as the persistent storage for storing data related to users and apps.
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers. You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
|
||||
2. Create a target group and an application load balancer to route traffic onto ToolJet containers.
|
||||
You can [reference](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html) AWS docs to set it up. Please note that ToolJet server exposes `/api/health`, which you can configure for health checks.
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
|
||||
:::note
|
||||
This setup follows the old AWS UI for ECS as some options are missing on the latest experience.
|
||||
:::
|
||||
i. Select Fargate as launch type compatibility
|
||||
|
||||
ii. Configure IAM roles and set operating system family as Linux.
|
||||
|
||||
iii. Select task size to have 3GB of memory and 1vCpu
|
||||
|
||||
3. Create task definition for deploying ToolJet app as a service on your preconfigured cluster.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
1. Select Fargate as launch type compatibility.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/launch-type-compatibility.png" alt="select launch type compatibility" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-4.png" alt="ECS Setup" />
|
||||
|
||||
2. Configure IAM roles and set operating system family as Linux
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-definition-config.png" alt="task definition config" />
|
||||
</div>
|
||||
|
||||
iv. Add container details that is shown:
|
||||
|
||||
3. Select task size to have 3GB of memory and 1vCpu
|
||||
<img className="screenshot-full" src="/img/setup/ecs/task-size.png" alt="task size config" />
|
||||
Specify your container name ex: `ToolJet`
|
||||
|
||||
4. Click on add container to update container definitions
|
||||
<img className="screenshot-full" src="/img/setup/ecs/add-container-button.png" alt="add container button" />
|
||||
Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
|
||||
Within the add container form that is shown:
|
||||
Update port mappings at container port `3000` for tcp protocol.
|
||||
|
||||
- Specify your container name ex: `tooljet`
|
||||
- Set the image you intend to deploy. ex: `tooljet/tooljet:<version_tag>`
|
||||
- Update port mappings at container port `3000` for tcp protocol.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-setup.png" alt="container setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
- Update container command field to be `npm,run,start:prod`.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-command.png" alt="container command" />
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-5.png" alt="ECS Setup" />
|
||||
|
||||
- Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up.
|
||||
</div>
|
||||
|
||||
Specify environmental values for the container. You'd want to make use of secrets to store sensitive information or credentials, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html) to set it up. You can also store the env in S3 bucket, kindly refer the AWS [docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) .
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/container-env-setup.png" alt="container env setup" />
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
:::note
|
||||
For the minimal setup, ToolJet requires:
|
||||
`TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-6.png" alt="ECS Setup" />
|
||||
|
||||
Read **[environment variables reference](/docs/setup/env-vars)**
|
||||
</div>
|
||||
|
||||
:::info
|
||||
For the minimal setup, ToolJet requires: `TOOLJET_HOST`, `PG_HOST`, `PG_DB`, `PG_USER`, `PG_PASSWORD`, `SECRET_KEY_BASE` & `LOCKBOX_MASTER_KEY` keys in the secret.
|
||||
|
||||
Read **[environment variables reference](https://docs.tooljet.com/docs/setup/env-vars)**
|
||||
:::
|
||||
|
||||
Additionally, include the Redis environment variables within the ToolJet container mentioned above if you have followed the previous steps to create Redis.
|
||||
|
||||
```
|
||||
REDIS_HOST=<public ip of redis task>
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
|
||||
v. Make sure `Use log collection checked` and `Docker configuration` with the command `npm run start:dev`
|
||||
|
||||
:::
|
||||
5. Please add redis container as part of the deployment. Please make sure that you are using redis version 6.x.x
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
Also add these env variable in the above tooljet container
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-8.png" alt="ECS Setup" />
|
||||
|
||||
```
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER=default
|
||||
REDIS_PASSWORD=
|
||||
```
|
||||
</div>
|
||||
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
- Select launch type as Fargate.
|
||||
- Set operating system family as Linux
|
||||
- Select task definition family as the one created earlier. ex: `tooljet-ce`
|
||||
- Select the cluster and set the service name
|
||||
- You can set the number of tasks to start with as two
|
||||
- Rest of the values can be kept as default
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-config.png" alt="service config" />
|
||||
- Click on next step to configure networking options
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
<img className="screenshot-full" src="/img/setup/ecs/service-security-group-config.png" alt="service security group config" />
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds.
|
||||
- Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
4. Create a service to run your task definition within your cluster.
|
||||
|
||||
- Select the cluster which you have created
|
||||
|
||||
- Select launch type as Fargate
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-9.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Select the cluster and set the service name
|
||||
|
||||
- You can set the number of tasks to start with as two
|
||||
|
||||
- Rest of the values can be kept as default
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-10.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Click on next step to configure networking options
|
||||
|
||||
- Select your designated VPC, Subnets and Security groups. Kindly ensure that the security group allows for inbound traffic to http port 3000 for the task.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-11.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
- Since migrations are run as a part of container boot, please specify health check grace period for 900 seconds. Select the application loadbalancer option and set the target group name to the one we had created earlier. This will auto populate the health check endpoints.
|
||||
|
||||
:::info
|
||||
The setup above is just a template. Feel free to update the task definition and configure parameters for resources and environment variables according to your needs.
|
||||
:::
|
||||
|
||||
|
||||
## ToolJet Database
|
||||
|
||||
If you intend to use this feature, you'd have to set up and deploy PostgREST server which helps querying ToolJet Database. You can learn more about this feature [here](https://docs.tooljet.com/docs/tooljet-database).
|
||||
|
||||
Follow the steps below to deploy PostgREST on a ECS cluster.
|
||||
|
||||
1. Create a new take definition
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-12.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Add the container details and image tag as shown below:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-13.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
Under environmental variable please add corresponding PostgREST env variables. You can also refer [env variable](https://docs.tooljet.com/docs/setup/env-vars/#postgrest-server-optional).
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-14.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
2. Create service and make sure the postgrest is within the same cluster as ToolJet app.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-15.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
3. Specify a service name and leave the remaining settings at their default configurations.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-16.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
4. Ensure that the PostgREST service resides within the same Virtual Private Cloud (VPC), and confirm that port 3001 is included in the security group used by the ToolJet app. **Note: Please enable public IP**
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
|
||||
<img className="screenshot-full" src="/img/setup/ecs/ecs-17.png" alt="ECS Setup" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Update ToolJet deployment with the appropriate env variables [here](https://docs.tooljet.com/docs/setup/env-vars/#enable-tooljet-database--optional-) and apply the changes.
|
||||
|
||||
|
|
|
|||