diff --git a/.do/deploy.template.yaml b/.do/deploy.template.yaml index d70ec6f20a..2b411b1ce9 100644 --- a/.do/deploy.template.yaml +++ b/.do/deploy.template.yaml @@ -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" diff --git a/docs/docs/setup/azure-container.md b/docs/docs/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/docs/setup/azure-container.md +++ b/docs/docs/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/docs/setup/digitalocean.md b/docs/docs/setup/digitalocean.md index ccc8eb2969..0030942f83 100644 --- a/docs/docs/setup/digitalocean.md +++ b/docs/docs/setup/digitalocean.md @@ -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:` - -## Deploying - -#### Follow the steps below to deploy ToolJet on DigitalOcean: - -1. Once signed-in to your DigitalOcean account, click on the **Create App** button. - -
- - ToolJet - Deploy on DigitalOcean - -
- -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. - -
- - ToolJet - Deploy on DigitalOcean - -
- -3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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. - -
- - ToolJet - Deploy on DigitalOcean - -
+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: 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
- ToolJet - Deploy on DigitalOcean + [![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Resources
-### 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`
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Environment Variables
-2. Click on **Edit** next to `tooljet-app`. +4. On the next page, you can change the **App name**, **Project**, and the **Region**.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
- ```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=${.DATABASE_URL} - CA CERT=${.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**. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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). diff --git a/docs/docs/setup/ec2.md b/docs/docs/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/docs/setup/ec2.md +++ b/docs/docs/setup/ec2.md @@ -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. diff --git a/docs/docs/setup/ecs.md b/docs/docs/setup/ecs.md index 0494ef623d..c3eb758aa0 100644 --- a/docs/docs/setup/ecs.md +++ b/docs/docs/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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:` - - Update port mappings at container port `3000` for tcp protocol. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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 +
- Also add these env variable in the above tooljet container + ECS Setup - ``` - REDIS_HOST=localhost - REDIS_PORT=6379 - REDIS_USER=default - REDIS_PASSWORD= - ``` +
-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 - 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. - 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 + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/static/img/setup/azure-container/3-a.png b/docs/static/img/setup/azure-container/3-a.png new file mode 100644 index 0000000000..ae66eaa8d6 Binary files /dev/null and b/docs/static/img/setup/azure-container/3-a.png differ diff --git a/docs/static/img/setup/azure-container/5a.png b/docs/static/img/setup/azure-container/5a.png new file mode 100644 index 0000000000..d3783ff7bd Binary files /dev/null and b/docs/static/img/setup/azure-container/5a.png differ diff --git a/docs/static/img/setup/ecs/ecs-1.png b/docs/static/img/setup/ecs/ecs-1.png new file mode 100644 index 0000000000..ecafe80da3 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-1.png differ diff --git a/docs/static/img/setup/ecs/ecs-10.png b/docs/static/img/setup/ecs/ecs-10.png new file mode 100644 index 0000000000..def74d5a92 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-10.png differ diff --git a/docs/static/img/setup/ecs/ecs-11.png b/docs/static/img/setup/ecs/ecs-11.png new file mode 100644 index 0000000000..5baad7f7c1 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-11.png differ diff --git a/docs/static/img/setup/ecs/ecs-12.png b/docs/static/img/setup/ecs/ecs-12.png new file mode 100644 index 0000000000..c3637d7b8c Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-12.png differ diff --git a/docs/static/img/setup/ecs/ecs-13.png b/docs/static/img/setup/ecs/ecs-13.png new file mode 100644 index 0000000000..c0d816e918 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-13.png differ diff --git a/docs/static/img/setup/ecs/ecs-14.png b/docs/static/img/setup/ecs/ecs-14.png new file mode 100644 index 0000000000..f37934110e Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-14.png differ diff --git a/docs/static/img/setup/ecs/ecs-15.png b/docs/static/img/setup/ecs/ecs-15.png new file mode 100644 index 0000000000..10f597ee2a Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-15.png differ diff --git a/docs/static/img/setup/ecs/ecs-16.png b/docs/static/img/setup/ecs/ecs-16.png new file mode 100644 index 0000000000..35e273c31b Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-16.png differ diff --git a/docs/static/img/setup/ecs/ecs-17.png b/docs/static/img/setup/ecs/ecs-17.png new file mode 100644 index 0000000000..06e3f90925 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-17.png differ diff --git a/docs/static/img/setup/ecs/ecs-2.png b/docs/static/img/setup/ecs/ecs-2.png new file mode 100644 index 0000000000..807b7f0283 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-2.png differ diff --git a/docs/static/img/setup/ecs/ecs-3.png b/docs/static/img/setup/ecs/ecs-3.png new file mode 100644 index 0000000000..3904815f0d Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-3.png differ diff --git a/docs/static/img/setup/ecs/ecs-4.png b/docs/static/img/setup/ecs/ecs-4.png new file mode 100644 index 0000000000..18fa8fb11d Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-4.png differ diff --git a/docs/static/img/setup/ecs/ecs-5.png b/docs/static/img/setup/ecs/ecs-5.png new file mode 100644 index 0000000000..34e8112663 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-5.png differ diff --git a/docs/static/img/setup/ecs/ecs-6.png b/docs/static/img/setup/ecs/ecs-6.png new file mode 100644 index 0000000000..f81ffacf1e Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-6.png differ diff --git a/docs/static/img/setup/ecs/ecs-8.png b/docs/static/img/setup/ecs/ecs-8.png new file mode 100644 index 0000000000..873d44ed50 Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-8.png differ diff --git a/docs/static/img/setup/ecs/ecs-9.png b/docs/static/img/setup/ecs/ecs-9.png new file mode 100644 index 0000000000..121d9f69fa Binary files /dev/null and b/docs/static/img/setup/ecs/ecs-9.png differ diff --git a/docs/versioned_docs/version-2.15.0/setup/azure-container.md b/docs/versioned_docs/version-2.15.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.15.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.15.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.15.0/setup/digitalocean.md b/docs/versioned_docs/version-2.15.0/setup/digitalocean.md index a4143f9e4f..0030942f83 100644 --- a/docs/versioned_docs/version-2.15.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.15.0/setup/digitalocean.md @@ -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. + +
+ + ToolJet - Deploy on DigitalOcean + +
+ +2. Select `Redis` from the database engine and add a unique name to the cluster and click on **Create Database cluster**. + +
+ + ToolJet - Deploy on DigitalOcean + +
+ +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
@@ -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. +
+ ToolJet - Deploy on DigitalOcean - Resources +
+ 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` + +
+ ToolJet - Deploy on DigitalOcean - Environment Variables +
+ 4. On the next page, you can change the **App name**, **Project**, and the **Region**. - ToolJet - Deploy on DigitalOcean - App name +
+ + ToolJet - Deploy on DigitalOcean - Launch + +
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. - ToolJet - Deploy on DigitalOcean - App name +
+ + ToolJet - Deploy on DigitalOcean - Launch + +
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. diff --git a/docs/versioned_docs/version-2.15.0/setup/ec2.md b/docs/versioned_docs/version-2.15.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.15.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.15.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.15.0/setup/ecs.md b/docs/versioned_docs/version-2.15.0/setup/ecs.md index b16770014a..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.15.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.15.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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` - ::: +
-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 - 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. - 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. + ECS Setup + +
+ +4. Create a service to run your task definition within your cluster. + + - Select the cluster which you have created + + - Select launch type as Fargate + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/versioned_docs/version-2.16.0/setup/azure-container.md b/docs/versioned_docs/version-2.16.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.16.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.16.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.16.0/setup/digitalocean.md b/docs/versioned_docs/version-2.16.0/setup/digitalocean.md index a4143f9e4f..0030942f83 100644 --- a/docs/versioned_docs/version-2.16.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.16.0/setup/digitalocean.md @@ -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. + +
+ + ToolJet - Deploy on DigitalOcean + +
+ +2. Select `Redis` from the database engine and add a unique name to the cluster and click on **Create Database cluster**. + +
+ + ToolJet - Deploy on DigitalOcean + +
+ +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
@@ -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. +
+ ToolJet - Deploy on DigitalOcean - Resources +
+ 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` + +
+ ToolJet - Deploy on DigitalOcean - Environment Variables +
+ 4. On the next page, you can change the **App name**, **Project**, and the **Region**. - ToolJet - Deploy on DigitalOcean - App name +
+ + ToolJet - Deploy on DigitalOcean - Launch + +
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. - ToolJet - Deploy on DigitalOcean - App name +
+ + ToolJet - Deploy on DigitalOcean - Launch + +
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. diff --git a/docs/versioned_docs/version-2.16.0/setup/ec2.md b/docs/versioned_docs/version-2.16.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.16.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.16.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.16.0/setup/ecs.md b/docs/versioned_docs/version-2.16.0/setup/ecs.md index b16770014a..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.16.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.16.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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` - ::: +
-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 - 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. - 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. + ECS Setup + +
+ +4. Create a service to run your task definition within your cluster. + + - Select the cluster which you have created + + - Select launch type as Fargate + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/versioned_docs/version-2.17.0/setup/azure-container.md b/docs/versioned_docs/version-2.17.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.17.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.17.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.17.0/setup/digitalocean.md b/docs/versioned_docs/version-2.17.0/setup/digitalocean.md index ccc8eb2969..0030942f83 100644 --- a/docs/versioned_docs/version-2.17.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.17.0/setup/digitalocean.md @@ -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:` - -## Deploying - -#### Follow the steps below to deploy ToolJet on DigitalOcean: - -1. Once signed-in to your DigitalOcean account, click on the **Create App** button. - -
- - ToolJet - Deploy on DigitalOcean - -
- -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. - -
- - ToolJet - Deploy on DigitalOcean - -
- -3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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. - -
- - ToolJet - Deploy on DigitalOcean - -
+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:
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
- ToolJet - Deploy on DigitalOcean + [![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Resources
-### 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`
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Environment Variables
-2. Click on **Edit** next to `tooljet-app`. +4. On the next page, you can change the **App name**, **Project**, and the **Region**.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
- ```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=${.DATABASE_URL} - CA CERT=${.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**. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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). diff --git a/docs/versioned_docs/version-2.17.0/setup/ec2.md b/docs/versioned_docs/version-2.17.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.17.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.17.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.17.0/setup/ecs.md b/docs/versioned_docs/version-2.17.0/setup/ecs.md index 0494ef623d..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.17.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.17.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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:` - - Update port mappings at container port `3000` for tcp protocol. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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 +
- Also add these env variable in the above tooljet container + ECS Setup - ``` - REDIS_HOST=localhost - REDIS_PORT=6379 - REDIS_USER=default - REDIS_PASSWORD= - ``` +
-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 - 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. - 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 + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/versioned_docs/version-2.18.0/setup/azure-container.md b/docs/versioned_docs/version-2.18.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.18.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.18.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.18.0/setup/digitalocean.md b/docs/versioned_docs/version-2.18.0/setup/digitalocean.md index ccc8eb2969..0030942f83 100644 --- a/docs/versioned_docs/version-2.18.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.18.0/setup/digitalocean.md @@ -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:` - -## Deploying - -#### Follow the steps below to deploy ToolJet on DigitalOcean: - -1. Once signed-in to your DigitalOcean account, click on the **Create App** button. - -
- - ToolJet - Deploy on DigitalOcean - -
- -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. - -
- - ToolJet - Deploy on DigitalOcean - -
- -3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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. - -
- - ToolJet - Deploy on DigitalOcean - -
+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:
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
- ToolJet - Deploy on DigitalOcean + [![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Resources
-### 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`
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Environment Variables
-2. Click on **Edit** next to `tooljet-app`. +4. On the next page, you can change the **App name**, **Project**, and the **Region**.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
- ```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=${.DATABASE_URL} - CA CERT=${.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**. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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). diff --git a/docs/versioned_docs/version-2.18.0/setup/ec2.md b/docs/versioned_docs/version-2.18.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.18.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.18.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.18.0/setup/ecs.md b/docs/versioned_docs/version-2.18.0/setup/ecs.md index 0494ef623d..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.18.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.18.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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:` - - Update port mappings at container port `3000` for tcp protocol. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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 +
- Also add these env variable in the above tooljet container + ECS Setup - ``` - REDIS_HOST=localhost - REDIS_PORT=6379 - REDIS_USER=default - REDIS_PASSWORD= - ``` +
-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 - 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. - 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 + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/versioned_docs/version-2.19.0/setup/azure-container.md b/docs/versioned_docs/version-2.19.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.19.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.19.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.19.0/setup/digitalocean.md b/docs/versioned_docs/version-2.19.0/setup/digitalocean.md index ccc8eb2969..0030942f83 100644 --- a/docs/versioned_docs/version-2.19.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.19.0/setup/digitalocean.md @@ -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:` - -## Deploying - -#### Follow the steps below to deploy ToolJet on DigitalOcean: - -1. Once signed-in to your DigitalOcean account, click on the **Create App** button. - -
- - ToolJet - Deploy on DigitalOcean - -
- -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. - -
- - ToolJet - Deploy on DigitalOcean - -
- -3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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. - -
- - ToolJet - Deploy on DigitalOcean - -
+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: 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
- ToolJet - Deploy on DigitalOcean + [![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Resources
-### 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`
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Environment Variables
-2. Click on **Edit** next to `tooljet-app`. +4. On the next page, you can change the **App name**, **Project**, and the **Region**.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
- ```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=${.DATABASE_URL} - CA CERT=${.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**. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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). diff --git a/docs/versioned_docs/version-2.19.0/setup/ec2.md b/docs/versioned_docs/version-2.19.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.19.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.19.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.19.0/setup/ecs.md b/docs/versioned_docs/version-2.19.0/setup/ecs.md index 0494ef623d..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.19.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.19.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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:` - - Update port mappings at container port `3000` for tcp protocol. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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 +
- Also add these env variable in the above tooljet container + ECS Setup - ``` - REDIS_HOST=localhost - REDIS_PORT=6379 - REDIS_USER=default - REDIS_PASSWORD= - ``` +
-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 - 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. - 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 + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. + diff --git a/docs/versioned_docs/version-2.22.0/setup/azure-container.md b/docs/versioned_docs/version-2.22.0/setup/azure-container.md index b9e9f9947f..60bdc0aaa5 100644 --- a/docs/versioned_docs/version-2.22.0/setup/azure-container.md +++ b/docs/versioned_docs/version-2.22.0/setup/azure-container.md @@ -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.** +
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
@@ -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.
- Deploying ToolJet on Azure container apps + Deploying ToolJet on Azure container apps
diff --git a/docs/versioned_docs/version-2.22.0/setup/digitalocean.md b/docs/versioned_docs/version-2.22.0/setup/digitalocean.md index ccc8eb2969..0030942f83 100644 --- a/docs/versioned_docs/version-2.22.0/setup/digitalocean.md +++ b/docs/versioned_docs/version-2.22.0/setup/digitalocean.md @@ -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:` - -## Deploying - -#### Follow the steps below to deploy ToolJet on DigitalOcean: - -1. Once signed-in to your DigitalOcean account, click on the **Create App** button. - -
- - ToolJet - Deploy on DigitalOcean - -
- -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. - -
- - ToolJet - Deploy on DigitalOcean - -
- -3. Once the Resource is created, you'll be redirected to the **Resources** page. Click on the **Edit** button next to the Resource. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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. - -
- - ToolJet - Deploy on DigitalOcean - -
+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: 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
- ToolJet - Deploy on DigitalOcean + [![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/ToolJet/ToolJet/tree/main)
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Resources
-### 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`
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Environment Variables
-2. Click on **Edit** next to `tooljet-app`. +4. On the next page, you can change the **App name**, **Project**, and the **Region**.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
-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.
- ToolJet - Deploy on DigitalOcean + ToolJet - Deploy on DigitalOcean - Launch
- ```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=${.DATABASE_URL} - CA CERT=${.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**. - -
- - ToolJet - Deploy on DigitalOcean - -
- - 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). diff --git a/docs/versioned_docs/version-2.22.0/setup/ec2.md b/docs/versioned_docs/version-2.22.0/setup/ec2.md index 540b16c50d..662b4f2d56 100644 --- a/docs/versioned_docs/version-2.22.0/setup/ec2.md +++ b/docs/versioned_docs/version-2.22.0/setup/ec2.md @@ -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. diff --git a/docs/versioned_docs/version-2.22.0/setup/ecs.md b/docs/versioned_docs/version-2.22.0/setup/ecs.md index 0494ef623d..c3eb758aa0 100644 --- a/docs/versioned_docs/version-2.22.0/setup/ecs.md +++ b/docs/versioned_docs/version-2.22.0/setup/ecs.md @@ -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 + +
+ + ECS Setup + +
+ + +- Please add container and image tag as shown below: + + **Make sure that you are using redis version 6.x.x** + +
+ + ECS Setup + +
+ +- 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** + +
+ + ECS Setup + +
+ +## 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. +
- 1. Select Fargate as launch type compatibility. - select launch type compatibility + ECS Setup - 2. Configure IAM roles and set operating system family as Linux - task definition config +
+ + iv. Add container details that is shown: - 3. Select task size to have 3GB of memory and 1vCpu - task size config + Specify your container name ex: `ToolJet` - 4. Click on add container to update container definitions - add container button + Set the image you intend to deploy. ex: `tooljet/tooljet:` - 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:` - - Update port mappings at container port `3000` for tcp protocol. - container setup +
- - Update container command field to be `npm,run,start:prod`. - container command + 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. +
+ + 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) . - container env setup +
- :::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. + ECS Setup - Read **[environment variables reference](/docs/setup/env-vars)** +
+ + :::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= + 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 +
- Also add these env variable in the above tooljet container + ECS Setup - ``` - REDIS_HOST=localhost - REDIS_PORT=6379 - REDIS_USER=default - REDIS_PASSWORD= - ``` +
-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 - 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. - 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 + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + - 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. + +
+ + ECS Setup + +
+ + - 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 + +
+ + ECS Setup + +
+ + Add the container details and image tag as shown below: + +
+ + ECS Setup + +
+ + 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). + +
+ + ECS Setup + +
+ + +2. Create service and make sure the postgrest is within the same cluster as ToolJet app. + +
+ + ECS Setup + +
+ + +3. Specify a service name and leave the remaining settings at their default configurations. + +
+ + ECS Setup + +
+ +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** + +
+ + ECS Setup + +
+ + +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. +