Setting up a Redash Instance

Create an Instance

For basic deployments we recommend a minimum of 4GB of RAM and reasonable amount of CPU allocation. As usage grows you might need additional RAM and CPU power to support increased number of background workers and API processes.

To create an instance, you have the following options:

  1. AWS EC2 AMI
  2. DigitalOcean
  3. Google Compute Engine Image
  4. Other
  5. Docker

We have not updated our official images for V10 yet. However, you can deploy a V8 instance and upgrade it following these instructions.

There is a video demonstration of this process below

AWS

Launch the instance with the pre-baked AMI we create (for small deployments t2.small should be enough):

Region AMI
us-east-1 ami-0d915a031cabac0e0
us-east-2 ami-0b97435028ca44fcc
us-west-1 ami-068d0753a46192935
us-west-2 ami-0c457f229774da543
eu-west-1 ami-046c6a0123bf94619
eu-west-2 ami-0dbe8ba0cd21ea12b
eu-west-3 ami-041bf9180061ce7ea
eu-central-1 ami-0f8184e6f30cc0c33
eu-north-1 ami-08dd1b893371bcaac
ap-south-1 ami-0ff23052091536db2
ap-southeast-1 ami-0527e82bae7c51958
ap-southeast-2 ami-0bae8773e653a32ec
ap-northeast-1 ami-060741a96307668be
ap-northeast-2 ami-0d991ac4f545a6b34
sa-east-1 ami-076f350d5a5ec448d
ca-central-1 ami-0071deaa12b66d1bf

(the above AMIs are of version: 8.0.0)

When launching the instance make sure to use a Security Group, that only allows incoming traffic on ports: 22 (SSH), 80 (HTTP) and 443 (HTTPS). These AMIs are based on Ubuntu so you will need to use the user ubuntu when connecting to the instance via SSH.

Now proceed to “Setup”.

DigitalOcean

To get started on DigitalOcean, you can use the image from DigitalOcean’s Marketplace (Redash on the Marketplace). Once started the Droplet, proceed to ”Setup“.

Google Compute Engine

To get started on GCE, run the following commands in your Cloud Shell.

First, you need to add the Redash image to your account:

$ gcloud compute images create "redash-8-0-0" --source-uri gs://redash-images/redash.8.0.0-b32245-1.tar.gz

Next, you need to launch an instance using this image. The n1-standard-1 machine type is recommended. You can launch an instance using the image with the command below (you may need to specify the zone of the instance with the --zone parameter):

$ gcloud compute instances create redash --image redash-8-0-0

Now proceed to “Setup”.

Other

The AWS, DigitalOcean and Google Compute Engine images are created using our Setup Script, which is designed to run on Ubuntu 18.04 server. You can either use the script as is (if you intend to run it on Ubuntu) or use it as a blueprint to create your own setup.

What the script does is:

  1. Install Docker and Docker Compose.
  2. Download our recommended Docker Compose configuration and create initial configuration.
  3. Start everything.

Note that the script assumes you are running it on a “clean” machine. If you’re running this script on a machine that is used for other purposes, you might want to tweak it to your needs.

Docker

For every Redash release we also create updated Docker image. Our image follows best practices and can be used in any container orchestation platforms like Kubernetes, ECS or just simply with Docker Compose (which we use in our images).

If you do not use one of our cloud images, you must manually set up Redash’s secret keys:

  1. Create a .env in the same folder as your docker-compose.yml file.
  2. Write any sensitive environment variables in bash syntax:
REDASH_SECRET_KEY=...
REDASH_COOKIE_SECRET=...
GOOGLE_CLIENT_ID=...

Do not commit this file to version control.

For development environment setup, please refer to the developer guide (which includes Docker specific instructions as well).

To run Redash you need several instances of Redash (API server and background workers to run queries) along with Redis and PostgreSQL. If you don’t want or can’t use our images or Setup Script, you can refer to the Docker Compose configuration to understand what services you need to define.

Setup

Once you created the instance with either the image or the script, you should have a running Redash instance with everything you need to get started. Redash should be available using the server IP or DNS name you assigned to it. You can point your browser to this address.

Before you can continue, it will ask you to create your admin account. Once this is done, you can start using Redash.

Initial Setup Screen

Make sure to complete the web based setup before using the CLI or proceeding with the rest of the setup.

To make your setup more complete, there are a few more steps that you need to manually do:

Mail Configuration

For the system to be able to send emails (user invites, password resets, when alerts trigger and more), you need to configure Redash with the mail server you use. Mail server configuration is done using Envrionment Variables. If you’re using one of our images, you can do this by editing the /opt/redash/env file.

The relevant configuration variables are (note that not all of them are required):

  • REDASH_MAIL_SERVER (default: localhost)
  • REDASH_MAIL_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)

Also you need to set the value of REDASH_HOST, which is the base address of your Redash instance (the DNS name or IP) with the protocol, so for example: https://demo.redash.io.

Once you updated the configuration, restart all services (docker-compose up -d, running docker-compose restart won’t be enough as it won’t read changes to env file). To test email configuration, you can run docker-compose run --rm server manage send_test_mail.

It’s recommended to use some mail service, like Amazon SES or Mailgun to send emails to ensure deliverability.

Google OAuth Setup

If you want to use Google OAuth to authenticate users, you need to create a Google Developers project (see instructions and then add the needed configuration in the /opt/redash/env file:

  • REDASH_GOOGLE_CLIENT_ID (Google OAuth Client ID)
  • REDASH_GOOGLE_CLIENT_SECRET (Google OAuth Client Secret)

Once updated, restart the web server (docker-compose up -d server). Once enabled, Redash will use Google OAuth to authenticate existing user accounts. To enable automatic user creation who belong to a specific domain name, you can add this domain (or more) in the setting page:

Other Configuration Options

Redash uses environment variables for configuration. For a full list of environment variables, see the settings article.

HTTPS

If this is a production setup, you should enforce HTTPS and make sure you set the cookie secret (see instructions).

Health Check for Installation

After your installation is complete, you can do the healthcheck by calling /ping API endpoint.

RESPONSE
PONG.

How to upgrade?

It’s recommended to upgrade when new releases are available to benefit from bug fixes and new features. See here for full upgrade instructions.

    QUICK NAV