Deploy Redash – Render Docs

Redash is an open-source self-hosted platform for collaborative data querying and visualization. It's quick to set up and it works with many popular data sources including Redshift, Google BigQuery, Google Spreadsheets, PostgreSQL, MySQL, and ElasticSearch.

The main features of Redash include:

You can host your Redash instance on Render in minutes. Once it's live, you will be able to connect to your data sources, build dashboards to visualize data, and share them with your team.

One-Click Deploy

Click Deploy to Render below to set up Redash on Render.

Deploy to Render

Execute the statement below in the Render Shell for your Redash service. This will initialize your database:

$ render-redash create_db

That’s it! Visit your service available on your .onrender.com URL, fill in the basic information about your user account, and start using Redash on Render!

Manual Deployment

Create a Database

Create a new managed PostgreSQL instance on Render. The database should be up in a few minutes; wait for it to go live before moving to the next step.

Note your database internal database URL; you will need it later.

Create a Redis Instance

Create a new Redis instance using the Redis deployment guide and make note of the hostname and port.

Create an Environment Group

Create a new Environment Group named redash-shared and add the following environment variables to it:

Key Value
REDASH_COOKIE_SECRET Click Generate to get a secure random value
REDASH_LOG_LEVEL INFO

Deploy the Redash Web Service

  1. Fork render-examples/redash on GitHub or click Use this template. Make sure to give Render's GitHub app permission to access your new repository

  2. Start creating a new Web Service on Render using your new repo.

  3. Pick a name for your Redash instance and make sure that the Language is set to Docker.

  4. Select at least the 1c-2g compute plan. The Redash web server might exhaust the memory limit on smaller compute plans.

  5. Add the following environment variables to the web service:

Key Value
REDASH_DATABASE_URL Your internal database URL
REDIS_HOSTPORT Redis hostname and port, for example: red-xxxxxxxxxxxxxxxxxxxx:6379
  1. Under Advanced, set the Docker Command to render-redash server.

  2. Click Create Web Service to deploy your service.

  3. In your web service, under the Environment tab, link your shared configuration environment group with this service.

At this point, your service is likely going to fail while connecting to the database and might report logs about missing tables in the database. This is expected. We will create these tables in the next step.

Create Redash Background Workers

Redash executes queries and other processing tasks outside its web server, using background services. For this, you have to create two Render Background Workers: a scheduler and a worker.

Scheduler

  1. Create a new Background Worker on Render and select the same repository you used for the web service. Make sure the Language is set to Docker and pick a name for your Redash scheduler, e.g. redash-scheduler.

  2. Add the following environment variables to the background worker:

Key Value
REDASH_DATABASE_URL your internal database URL
REDIS_HOSTPORT Redis hostname and port, for example: red-xxxxxxxxxxxxxxxxxxxx:6379
QUEUES celery
WORKERS_COUNT 1
  1. Under Advanced, set the Docker Command to render-redash scheduler.

  2. Click Create Background Worker to deploy your scheduler.

  3. In your scheduler, under Environment, link your shared environment group with this service.

Worker

  1. Now, create another Background Worker on Render and select the same repository you used for the web service and the scheduler.

  2. Pick a name for your Redash worker, e.g. redash-worker, and make sure that the Language is set to Docker.

  3. Add the following environment variables to the background worker:

Key Value
REDASH_DATABASE_URL your internal database URL
REDIS_HOSTPORT Redis hostname and port, for example: red-xxxxxxxxxxxxxxxxxxxx:6379
QUEUES queries,scheduled_queries,schemas
  1. Under Advanced, set the Docker Command to render-redash worker.

  2. Click Create Background Worker to deploy your worker.

  3. In your worker, under Environment, link your shared environment group with this service.

Initialize the Database

To create and prefill the database tables necessary for Redash to operate, you will have to execute a special one-time command. Go to the Shell tab of your Redash web service and run the following command:

$ render-redash create_db

That’s it! After about a minute, the script will finish running, and your Redash installation will be available on your .onrender.com URL. Go to https://your-subdomain.onrender.com, fill in the basic information about your user account, and start using Redash on Render!

Optional: Setting up Mailing

To allow Redash to send emails (user invites, password resets, alert triggers, and more), you will need to configure it with the mail server you use. Our one-click deploy has a template for this step that is commented out in its render.yaml file.

  1. Create a new Environment Group named e.g. redash-mailing and add the relevant environment variables (skip any that are not required for your use case):
Key Value
REDASH_MAIL_SERVER SMTP server address
REDASH_MAIL_PORT SMTP server port, default: 25
REDASH_MAIL_USE_TLS default: false
REDASH_MAIL_USE_SSL default: false
REDASH_MAIL_USERNAME default: None
REDASH_MAIL_PASSWORD default: None
REDASH_MAIL_DEFAULT_SENDER email address to send from
  1. Link the newly created group to your Redash web service and your background workers.