Deploy Retool


Retool lets you build internal tools quickly. You can use building blocks like Tables, TextInputs, and Dropdowns, read data from PostgreSQL, write back via an API, read some more data from Google Sheets, query it via SQL, and join it to data from Stripe.

Retool supports multiple databases and any HTTP API. Follow their quickstart or learn more at retool.com/docs


You can deploy Retool on Render in a single click using the button below.


Deploy to Render


This will install the latest stable version of Retool’s Docker image and a PostgreSQL database which is used to store Retool metadata.

The database created in this step is not your application database. You will configure connections to your backend database and APIs after installation.

Customizing Retool

The single-click deploy uses the render-examples/retool repository and a default render.yaml spec.

To customize Retool, fork the GitHub repository to your own account. If you choose to make your new repo is private, grant Render’s GitHub app access to it.

The Dockerfile in this repo uses the latest stable version of Retool by default:

FROM tryretool/backend:latest

You can pin your Retool version by simply replacing latest with the desired version:

FROM tryretool/backend:2.57.1

Commit and push your changes and Render will automatically upgrade and deploy your Retool instance.

Getting a License Key

You will need a license to run Retool on Render. You can get one by contacting the Retool customer engineering team.

Adding Google Login

  1. Follow Retool’s instructions for creating a Google OAuth Client.
  2. Add the environment variables below to render.yaml in your repo.
  - key: CLIENT_ID
    value: YOUR_GOOGLE_CLIENT_ID
  - key: CLIENT_SECRET
    sync: false # update the value in your Render dashboard
  - key: RESTRICTED_DOMAIN
    value: yourcompany.com
Make sure to never add your Google Client Secret (or any other secrets) to Git. In the snippet above you're instructing Render to create the CLIENT_SECRET environment variable with an empty value so you can update it in the Render dashboard.