ToolJet/docs/versioned_docs/version-3.0.0-LTS/setup/google-cloud-run.md

194 lines
8.4 KiB
Markdown
Raw Normal View History

2024-11-10 22:27:25 +00:00
---
id: google-cloud-run
title: Google Cloud Run
---
# Deploying ToolJet on Google Cloud Run
:::info
You should manually set up a PostgreSQL database to be used by ToolJet. We recommend using **Cloud SQL** for this purpose.
2024-12-04 13:04:45 +00:00
Also for deploying ToolJet 3.0, Redis, Postgrest along with PostgreSQL are required.
2024-11-10 22:27:25 +00:00
:::
<!-- Follow the steps below to deploy ToolJet on Cloud run with `gcloud` CLI. -->
2024-11-10 22:27:25 +00:00
## Deploying ToolJet application
1. Create a new Google Cloud Run Service:
2024-12-04 13:04:45 +00:00
We are using a multi-container setup
2024-12-04 13:04:45 +00:00
- **Google Cloud Run service**
- **tooljet-app (container - 1)**
- **postgrest (container - 2)**
- **redis (container - 3)**
2024-12-04 13:04:45 +00:00
- **Cloud SQL (for PostgreSQL)**
- **for both (TOOLJET_DB and PG_DB)**
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'left'}}>
<img className="screenshot-full" src="/img/cloud-run/google-cloud-run-setup-V3.png" alt="Google Cloud Run New Setup" />
2024-11-10 22:27:25 +00:00
</div>
2024-12-04 13:04:45 +00:00
2. Ingress and Authentication can be set as shown below, to begin with. Feel free to change the security configurations as per your requirements.
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/ingress-auth-V3.png" alt="ingress-auth" />
2024-11-10 22:27:25 +00:00
</div>
2024-12-04 13:04:45 +00:00
3. Under the containers tab, please make sure the port is set to 3000 and command `npm, run, start:prod` is entered in container argument field with CPU capacity set to 2GiB:
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/port-and-capacity-postgrest-v2.png" alt="port-and-capacity-tooljet" />
</div>
2024-12-04 13:04:45 +00:00
- If the above command is not compatible, please use the following command structure instead:
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/port-and-capacity-postgrest-alternative-command.png" alt="port-and-capacity-tooljet-alternative-command" />
</div>
2024-12-04 13:04:45 +00:00
- If you encounter any migration issues, please execute the following command. Be aware that executing this command may cause the revision to break. However, modifying the command back to `npm, run, start:prod` will successfully reboot the instance:
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/port-and-capacity-postgrest-migration-fix-command.png" alt="port-and-capacity-tooljet-migration-fix-command" />
</div>
2024-12-04 13:04:45 +00:00
4. Under environmental variables, please add the below ToolJet application variables.
You can use these variables in the container 1: tooljet-app
| **Environment Variable** | **Value** |
|-----------------------------|-------------------------------|
| `LOCKBOX_MASTER_KEY` | `<generate using open ssl>` |
| `SECRET_KEY_BASE` | `<generate using open ssl>` |
| `PG_USER` | `postgres` |
| `PG_HOST` | `<postgresql-instance-ip>` |
| `PG_PASS` | `<password>` |
| `PG_DB` | `tooljet_production` |
| `TOOLJET_DB` | `tooljet_db` |
| `TOOLJET_DB_USER` | `postgres` |
| `TOOLJET_DB_HOST` | `<postgresql-instance-ip>` |
| `TOOLJET_DB_PASS` | `<password>` |
| `PGRST_HOST` | `localhost:3001` |
| `PGRST_JWT_SECRET` | `<generate using open ssl>` |
| `REDIS_HOST` | `localhost` |
| `REDIS_PORT` | `6379` |
| `REDIS_USER` | `default` |
| `TOOLJET_HOST` | `<Endpoint url>` |
**Note:** These environment variables are in general and might change in the future. You can also refer env variable [**here**](/docs/setup/env-vars).
2024-11-10 22:27:25 +00:00
Update `TOOLJET_HOST` environment variable if you want to use the default url assigned with Cloud run after the initial deploy.
2024-11-10 22:27:25 +00:00
:::tip
If you are using [Public IP](https://cloud.google.com/sql/docs/postgres/connect-run) for Cloud SQL, then database host connection (value for `PG_HOST`) needs to be set using unix socket format, `/cloudsql/<CLOUD_SQL_CONNECTION_NAME>`.
:::
2024-12-04 13:04:45 +00:00
5. Please go to the connection tab. Under the Cloud SQL instance please select the PostgreSQL database which you have set-up.
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/cloud-SQL-tooljet.png" alt="cloud-SQL-tooljet" />
</div>
## Deploy 2nd container: Postgrest
2024-11-10 22:27:25 +00:00
Check for the option **ADD-CONTAINER**.
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/add-container.png" alt="add-container" />
</div>
2024-11-10 22:27:25 +00:00
1. For the Postgrest container image `postgrest/postgrest:v12.2.0`.
2024-11-10 22:27:25 +00:00
**Note:** v12.2.0 is recommended for Postgrest.
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/postgrest-container.png" alt="postgrest-container" />
</div>
2024-11-10 22:27:25 +00:00
2024-12-04 13:04:45 +00:00
2. You can add the following environment variables in the **variables and secrets of postgrest container**, for the postgrest container to communicate to the **tooljet-app**.
2024-11-10 22:27:25 +00:00
| **Environment Variable** | **Value** |
|-----------------------------|------------------------------------------------------------|
| `PGRST_DB_PRE_CONFIG` | `postgrest.pre_config` |
| `PGRST_JWT_SECRET` | `<generate using openssl>` |
| `PGRST_DB_URI` | `postgres://<user>:password@<tooljet_db_host>/<tooljet_db>` |
| `PGRST_SERVER_PORT` | `3001` |
2024-11-10 22:27:25 +00:00
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/postgrest-environment-variables.png" alt="postgrest-environment-variables" />
</div>
## Deploy 3rd container: Redis
2024-11-10 22:27:25 +00:00
2024-12-04 13:04:45 +00:00
Check for the option **ADD-CONTAINER** and create another container for Redis.
2024-11-10 22:27:25 +00:00
For the Redis container we recommend using image `redis:6.2`
<div style={{textAlign: 'center'}}>
<img className="screenshot-full" src="/img/cloud-run/redis-container.png" alt="redis-container" />
</div>
2024-11-10 22:27:25 +00:00
Click on deploy once the above parameters are set.
2024-11-10 22:27:25 +00:00
:::info
Once the Service is created and live, to make the Cloud Service URL public. Please follow the steps [**here**](https://cloud.google.com/run/docs/securing/managing-access) to make the service public.
:::
2024-11-10 22:27:25 +00:00
[docs]: AI Release (#11965) * [docs]: Add Marketplace Plugin Anthropic * [docs]: Add Marketplace Plugin Gemini * Update Operations * Update Operation * [docs]: Add Marketplace Plugin Hugging Face * Update Intro Pata * Update Intro Para * Add Model Example and Info on Inference API * Update intro para * Update Model Example * Grammatical Improvements * Grammatical Updates * Grammar * Update example * [docs]: Add Marketplace Plugin Mistral AI * Update models * [docs]: Add Marketplace Plugin Qdrant * Update Models in Beta * Update Models in V3 * [docs]: Add Marketplace Plugin Cohere * [docs]: Add Marketplace OpenAI Embedding * Update model in beta * Update model LTS * [docs]:AI Whitelist info in setups * update: ecs and cloud run * [docs] added chromadb * [docs] updated digital-ocean * [docs] updated k8s * Made changes in the docs for adding chromadb * [dos]: ToolJet AI license update * fix: formatting * fix: formatting * [docs]: Add Chat Component * Update Example and Add Info Box * [docs]: updated pinecone plugin * Update SS * [docs]: ToolJet AI * Update available model link * Fix typo * Add advanced parameters table * [docs] added AI_GATEWAY_URL * [fix] indentation * update: AI credits * fix: typo * Chat Component Properties * update: improved doc * CSA and Replicate to LTS * [docs] updated kubernetes and helm for Chromadb * [docs]: Add Marketplace Plugin Qdrant * [docs]: Add Marketplace Plugin Qdrant * Add Markdown * [docs]: Add Marketplace Plugin Weviate DB * Update qdrant beta * Update qdrant LTS * Update sidebars.js * Update sidebars.js * Update marketplace_overview beta * Update marketplace_overview.md * Update marketplace_overview.md * Update Response * formatting updates * Parameter Definition Updates * Update intro qdrant.md Beta * Update intro qdrant.md LTS * update local host * update: added to beta * fix: fomatting * fix: formatting * fix: doc * fix: review * update pritesh feedback * fix: typo * Mansukha Feedback Updates * Remove required and optional emoji * fix: updates * fix: updates * fix: review * minor update in the markdown docs * fix: plans * update: added screenshots * update: added docs to beta * add minor changes --------- Co-authored-by: Akshat Virmani <akshatvirmani93@gmail.com> Co-authored-by: PriteshKiri <pritesh.d.kiri@gmail.com> Co-authored-by: Souvik <psouvik260@gmail.com> Co-authored-by: Adish M <adish.madhu@gmail.com> Co-authored-by: Pritesh Kiri <77957844+PriteshKiri@users.noreply.github.com> Co-authored-by: Vaishnavi Joshi <vj.codes29@gmail.com> Co-authored-by: Karan Rathod <karan.altcampus@gmail.com>
2025-02-11 07:32:43 +00:00
:::warning
To enable ToolJet AI features in your ToolJet deployment, whitelist `api-gateway.tooljet.ai` and `docs.tooljet.ai`.
:::
## Setup to Enable ToolJet AI
Build applications effortlessly with ToolJet AI, using natural language to generate and customize apps. Refer to [ToolJet AI](/docs/tooljet-ai/overview) guide for more information.
Follow this guide to enable AI features in your self-hosted setup.
**Deployment Steps**
1. Add Chroma under the services section and define volumes under the volumes section in the docker-compose.
```yml
services:
chroma:
name: chromadb
image: chromadb/chroma
ports:
- "8000:8000"
environment:
- CHROMA_HOST_PORT=8000
volumes:
- chromadb_data:/chroma
volumes:
chromadb_data:
driver: local
```
2. Add these environment variables to the .env file in the ToolJet server.
`CHROMA_DB_URL=chromadb:8000` <br/>
`AI_GATEWAY_URL=https://api-gateway.tooljet.ai`
2024-11-10 22:27:25 +00:00
## Upgrading to the Latest LTS Version
2024-12-04 13:04:45 +00:00
New LTS versions are released every 3-5 months with an end-of-life of 18 months. To check the latest LTS version, visit the [ToolJet Docker Hub](https://hub.docker.com/r/tooljet/tooljet/tags) page. The LTS tags follow a naming convention with the prefix `LTS-` followed by the version number, for example `tooljet/tooljet:ee-lts-latest`.
2024-11-10 22:27:25 +00:00
If this is a new installation of the application, you may start directly with the latest version. This guide is not required for new installations.
#### Prerequisites for Upgrading to the Latest LTS Version:
- It is crucial to perform a **comprehensive backup of your database** before starting the upgrade process to prevent data loss.
- Users on versions earlier than **v2.23.0-ee2.10.2** must first upgrade to this version before proceeding to the LTS version.
[docs]: AI Release (#11965) * [docs]: Add Marketplace Plugin Anthropic * [docs]: Add Marketplace Plugin Gemini * Update Operations * Update Operation * [docs]: Add Marketplace Plugin Hugging Face * Update Intro Pata * Update Intro Para * Add Model Example and Info on Inference API * Update intro para * Update Model Example * Grammatical Improvements * Grammatical Updates * Grammar * Update example * [docs]: Add Marketplace Plugin Mistral AI * Update models * [docs]: Add Marketplace Plugin Qdrant * Update Models in Beta * Update Models in V3 * [docs]: Add Marketplace Plugin Cohere * [docs]: Add Marketplace OpenAI Embedding * Update model in beta * Update model LTS * [docs]:AI Whitelist info in setups * update: ecs and cloud run * [docs] added chromadb * [docs] updated digital-ocean * [docs] updated k8s * Made changes in the docs for adding chromadb * [dos]: ToolJet AI license update * fix: formatting * fix: formatting * [docs]: Add Chat Component * Update Example and Add Info Box * [docs]: updated pinecone plugin * Update SS * [docs]: ToolJet AI * Update available model link * Fix typo * Add advanced parameters table * [docs] added AI_GATEWAY_URL * [fix] indentation * update: AI credits * fix: typo * Chat Component Properties * update: improved doc * CSA and Replicate to LTS * [docs] updated kubernetes and helm for Chromadb * [docs]: Add Marketplace Plugin Qdrant * [docs]: Add Marketplace Plugin Qdrant * Add Markdown * [docs]: Add Marketplace Plugin Weviate DB * Update qdrant beta * Update qdrant LTS * Update sidebars.js * Update sidebars.js * Update marketplace_overview beta * Update marketplace_overview.md * Update marketplace_overview.md * Update Response * formatting updates * Parameter Definition Updates * Update intro qdrant.md Beta * Update intro qdrant.md LTS * update local host * update: added to beta * fix: fomatting * fix: formatting * fix: doc * fix: review * update pritesh feedback * fix: typo * Mansukha Feedback Updates * Remove required and optional emoji * fix: updates * fix: updates * fix: review * minor update in the markdown docs * fix: plans * update: added screenshots * update: added docs to beta * add minor changes --------- Co-authored-by: Akshat Virmani <akshatvirmani93@gmail.com> Co-authored-by: PriteshKiri <pritesh.d.kiri@gmail.com> Co-authored-by: Souvik <psouvik260@gmail.com> Co-authored-by: Adish M <adish.madhu@gmail.com> Co-authored-by: Pritesh Kiri <77957844+PriteshKiri@users.noreply.github.com> Co-authored-by: Vaishnavi Joshi <vj.codes29@gmail.com> Co-authored-by: Karan Rathod <karan.altcampus@gmail.com>
2025-02-11 07:32:43 +00:00
:::info
If you are upgrading from version v3.0.33-ee-lts to the latest LTS, please ensure that the following configuration is done, including the addition of [ChromaDB to the existing setup](#setup-to-enable-tooljet-ai).
:::
*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.*