---
title: "Deploy Redash | (Just Updated) BI Dashboards And SQL Queries, Admin And API Key Generated"
description: "Redash SQL dashboards with worker, admin and API key generated"
category: "Analytics"
url: https://railway.com/deploy/redash-or-just-updated-bi-dashboards-and
---

# Deploy Redash | (Just Updated) BI Dashboards And SQL Queries, Admin And API Key Generated

Redash SQL dashboards with worker, admin and API key generated

**[Deploy Redash | (Just Updated) BI Dashboards And SQL Queries, Admin And API Key Generated on Railway](https://railway.com/template/redash-or-just-updated-bi-dashboards-and)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/redash-or-just-updated-bi-dashboards-and/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** Analytics

## Template content

### postgres

- **Image:** postgres:17.10-trixie

### redash-worker

- **Image:** redash/redash:26.9.0@sha256:fced015dbdb8bf171cbffe73e7841c9331c088b0fbf9542427cf4e72daa7f3c3
- **Start command:** `/bin/sh -c 'echo IyEvYmluL2Jhc2gKIyBSZWRhc2ggd29ya2VyICsgc2NoZWR1bGVyIGJvb3QgZm9yIFJhaWx3YXkuIEJvdGggcnVuIGluIHRoaXMgb25lIHNlcnZpY2U7IGlmIGVpdGhlcgojIGV4aXRzIHRoZSBjb250YWluZXIgZXhpdHMgc28gdGhlIHJlc3RhcnQgcG9saWN5IGJyaW5ncyBib3RoIGJhY2suCnNldCAtZXUKY2QgL2FwcAoKZXhwb3J0IFdPUktFUlNfQ09VTlQ9IiR7V09SS0VSU19DT1VOVDotMn0iCmV4cG9ydCBSRURBU0hfVkVSU0lPTl9DSEVDSz1mYWxzZQoKIyBUaGUgc2VydmVyIHNlcnZpY2UgY3JlYXRlcyB0aGUgdGFibGVzOyB3YWl0IGZvciBpdCByYXRoZXIgdGhhbiBjcmFzaC1sb29wLgpmb3IgaSBpbiAkKHNlcSAxIDE4MCk7IGRvCiAgaWYgcHl0aG9uIC0gPDwnUFknIDI+L2Rldi9udWxsCmltcG9ydCBvcywgcHN5Y29wZzIKYyA9IHBzeWNvcGcyLmNvbm5lY3Qob3MuZW52aXJvblsiUkVEQVNIX0RBVEFCQVNFX1VSTCJdKQpjLmN1cnNvcigpLmV4ZWN1dGUoIlNFTEVDVCAxIEZST00gb3JnYW5pemF0aW9ucyBMSU1JVCAxIikKUFkKICB0aGVuIGJyZWFrOyBmaQogIGVjaG8gIltyYWlsd2F5XSB3YWl0aW5nIGZvciByZWRhc2ggdGFibGVzICgkaSkiCiAgc2xlZXAgMwpkb25lCgplY2hvICJbcmFpbHdheV0gcmVkYXNoIHdvcmtlciB1aWQ9JChpZCAtdSkgd29ya2Vycz0kV09SS0VSU19DT1VOVCIKL2FwcC9iaW4vZG9ja2VyLWVudHJ5cG9pbnQgc2NoZWR1bGVyICYKL2FwcC9iaW4vZG9ja2VyLWVudHJ5cG9pbnQgd29ya2VyICYKd2FpdCAtbgplY2hvICJbcmFpbHdheV0gYSByZWRhc2ggYmFja2dyb3VuZCBwcm9jZXNzIGV4aXRlZDsgc3RvcHBpbmcgc28gaXQgcmVzdGFydHMiID4mMgpleGl0IDEK | base64 -d > /tmp/boot-worker.sh; exec /bin/bash /tmp/boot-worker.sh'`

### redis

- **Image:** redis:8.8.1-trixie
- **Start command:** `/bin/sh -c 'rm -rf /data/lost+found && chown -R redis:redis /data && exec docker-entrypoint.sh redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes --appendfsync everysec --dir /data'`

### redash

- **Image:** redash/redash:26.9.0@sha256:fced015dbdb8bf171cbffe73e7841c9331c088b0fbf9542427cf4e72daa7f3c3
- **Start command:** `/bin/sh -c 'echo IiIiRmlyc3QtYm9vdCBzZXR1cCBmb3IgdGhlIFJlZGFzaCBzZXJ2ZXIgc2VydmljZS4KClJ1bnMgdW5kZXIgdGhlIHJlZGFzaCB1c2VyLiBIb2xkcyBhIFBvc3RncmVzIGFkdmlzb3J5IGxvY2sgc28gdGhhdCB0aGUgc2V2ZXJhbApkZXBsb3ltZW50cyBSYWlsd2F5J3MgdGVtcGxhdGUgcGlwZWxpbmUgc3RhcnRzIGF0IG9uY2UgY2Fubm90IGNyZWF0ZSB0aGUgdGFibGVzIHR3aWNlLApjcmVhdGVzIHRoZSB0YWJsZXMgd2hlbiB0aGUgZGF0YWJhc2UgaXMgZW1wdHksIGFuZCBtYWtlcyB0aGUgYWRtaW4gdXNlciBhbmQgaXRzIEFQSQprZXkgbWF0Y2ggdGhlIGRlcGxveSdzIHZhcmlhYmxlcyBvbiBldmVyeSBib290LgoiIiIKaW1wb3J0IG9zCmltcG9ydCBzdWJwcm9jZXNzCmltcG9ydCBzeXMKaW1wb3J0IHRpbWUKCmltcG9ydCBwc3ljb3BnMgoKIyBUaGUgc2NyaXB0IGlzIHdyaXR0ZW4gdG8gL3RtcCwgc28gdGhlIHJlZGFzaCBwYWNrYWdlIHVuZGVyIC9hcHAgaXMgbm90IG9uIHRoZSBwYXRoLgpzeXMucGF0aC5pbnNlcnQoMCwgIi9hcHAiKQoKTE9DS19JRCA9IDcyNzI3NAp1cmwgPSBvcy5lbnZpcm9uWyJSRURBU0hfREFUQUJBU0VfVVJMIl0KCmNvbm4gPSBOb25lCmZvciBhdHRlbXB0IGluIHJhbmdlKDkwKToKICAgIHRyeToKICAgICAgICBjb25uID0gcHN5Y29wZzIuY29ubmVjdCh1cmwpCiAgICAgICAgYnJlYWsKICAgIGV4Y2VwdCBwc3ljb3BnMi5PcGVyYXRpb25hbEVycm9yIGFzIGV4YzoKICAgICAgICBwcmludCgiW3JhaWx3YXldIHdhaXRpbmcgZm9yIHBvc3RncmVzOiIsIHN0cihleGMpLnN0cmlwKCkuc3BsaXRsaW5lcygpWzBdLCBmbHVzaD1UcnVlKQogICAgICAgIHRpbWUuc2xlZXAoMikKaWYgY29ubiBpcyBOb25lOgogICAgc3lzLmV4aXQoIltyYWlsd2F5XSBwb3N0Z3JlcyBuZXZlciBiZWNhbWUgcmVhY2hhYmxlIikKCmNvbm4uYXV0b2NvbW1pdCA9IFRydWUKY3VyID0gY29ubi5jdXJzb3IoKQpjdXIuZXhlY3V0ZSgiU0VMRUNUIHBnX2Fkdmlzb3J5X2xvY2soJXMpIiwgKExPQ0tfSUQsKSkKCnN1YnByb2Nlc3MucnVuKFsiL2FwcC9tYW5hZ2UucHkiLCAiZGF0YWJhc2UiLCAiY3JlYXRlX3RhYmxlcyJdLCBjaGVjaz1UcnVlKQoKZW1haWwgPSBvcy5lbnZpcm9uWyJSRURBU0hfQURNSU5fRU1BSUwiXS5zdHJpcCgpLmxvd2VyKCkKcGFzc3dvcmQgPSBvcy5lbnZpcm9uWyJSRURBU0hfQURNSU5fUEFTU1dPUkQiXQphcGlfa2V5ID0gb3MuZW52aXJvblsiUkVEQVNIX0FETUlOX0FQSV9LRVkiXQppZiBsZW4oYXBpX2tleSkgIT0gNDA6CiAgICBzeXMuZXhpdCgiW3JhaWx3YXldIFJFREFTSF9BRE1JTl9BUElfS0VZIG11c3QgYmUgNDAgY2hhcmFjdGVycyIpCgpjdXIuZXhlY3V0ZSgiU0VMRUNUIGNvdW50KCopIEZST00gdXNlcnMgV0hFUkUgZW1haWwgPSAlcyIsIChlbWFpbCwpKQppZiBjdXIuZmV0Y2hvbmUoKVswXSA9PSAwOgogICAgc3VicHJvY2Vzcy5ydW4oCiAgICAgICAgWyIvYXBwL21hbmFnZS5weSIsICJ1c2VycyIsICJjcmVhdGVfcm9vdCIsIGVtYWlsLCAiQWRtaW4iLCAiLS1wYXNzd29yZCIsIHBhc3N3b3JkXSwKICAgICAgICBjaGVjaz1UcnVlLAogICAgKQogICAgcHJpbnQoIltyYWlsd2F5XSBjcmVhdGVkIGFkbWluIiwgZW1haWwsIGZsdXNoPVRydWUpCgpmcm9tIHJlZGFzaC5hcHAgaW1wb3J0IGNyZWF0ZV9hcHAgICMgbm9xYTogRTQwMgoKYXBwID0gY3JlYXRlX2FwcCgpCndpdGggYXBwLmFwcF9jb250ZXh0KCk6CiAgICBmcm9tIHJlZGFzaCBpbXBvcnQgbW9kZWxzICAjIG5vcWE6IEU0MDIKCiAgICB1c2VyID0gbW9kZWxzLlVzZXIucXVlcnkuZmlsdGVyKG1vZGVscy5Vc2VyLmVtYWlsID09IGVtYWlsKS5vbmUoKQogICAgdXNlci5oYXNoX3Bhc3N3b3JkKHBhc3N3b3JkKQogICAgdXNlci5hcGlfa2V5ID0gYXBpX2tleQogICAgbW9kZWxzLmRiLnNlc3Npb24uY29tbWl0KCkKICAgIHByaW50KCJbcmFpbHdheV0gYWRtaW4gcGFzc3dvcmQgYW5kIEFQSSBrZXkgc2V0IGZvciIsIGVtYWlsLCBmbHVzaD1UcnVlKQoKY3VyLmV4ZWN1dGUoIlNFTEVDVCBwZ19hZHZpc29yeV91bmxvY2soJXMpIiwgKExPQ0tfSUQsKSkKY29ubi5jbG9zZSgpCg== | base64 -d > /tmp/redash-bootstrap.py; echo IyEvYmluL2Jhc2gKIyBSZWRhc2ggc2VydmVyIGJvb3QgZm9yIFJhaWx3YXkuIFJ1bnMgYXMgdGhlIGltYWdlJ3MgcmVkYXNoIHVzZXIgKHVpZCAxMDAwKTsgdGhlCiMgc3RhcnQgY29tbWFuZCByZXBsYWNlcyB0aGUgaW1hZ2UgRU5UUllQT0lOVCwgc28gaXQgaXMgaW52b2tlZCBoZXJlIGJ5IG5hbWUuCnNldCAtZXUKY2QgL2FwcAoKIyBTZXR0aW5ncyB0aGUgdGVtcGxhdGUgY2Fubm90IHB1Ymxpc2ggYXMgdmFyaWFibGVzIChhIGxpdGVyYWwgdmFyaWFibGUgaXMgZHJvcHBlZCBieQojIHRlbXBsYXRlR2VuZXJhdGUgYW5kIHB1Ymxpc2hlZCBhcyBhIGJsYW5rIHJlcXVpcmVkIGZpZWxkKS4KZXhwb3J0IFJFREFTSF9XRUJfV09SS0VSUz0iJHtSRURBU0hfV0VCX1dPUktFUlM6LTJ9IgpleHBvcnQgUkVEQVNIX1ZFUlNJT05fQ0hFQ0s9ZmFsc2UKZXhwb3J0IFJFREFTSF9HVU5JQ09STl9CSU5EPSJbOjpdOiR7UE9SVDotNTAwMH0iCmV4cG9ydCBSRURBU0hfR1VOSUNPUk5fVElNRU9VVD0iJHtSRURBU0hfR1VOSUNPUk5fVElNRU9VVDotMTIwfSIKCmVjaG8gIltyYWlsd2F5XSByZWRhc2ggc2VydmVyIHVpZD0kKGlkIC11KSBwb3J0PSR7UE9SVDotdW5zZXR9IHdvcmtlcnM9JFJFREFTSF9XRUJfV09SS0VSUyIKcHl0aG9uIC90bXAvcmVkYXNoLWJvb3RzdHJhcC5weQpleGVjIC9hcHAvYmluL2RvY2tlci1lbnRyeXBvaW50IHNlcnZlcgo= | base64 -d > /tmp/boot-server.sh; exec /bin/bash /tmp/boot-server.sh'`
- **Health check:** /ping
- **Public domain:** Yes

## Documentation

# Deploy and Host Redash on Railway

**Built for an LLM agent to deploy and use.** There is no manual deploy step and nothing to fill in: the admin login, the cookie and encryption secrets and a 40-character admin API key are generated at deploy time, the contract below lists every URL and variable name, and one working script connects a database, runs a query on the worker and reads the rows. An agent reads its variables, runs the curl, and has dashboards backed by SQL.

Redash is an open-source SQL dashboard and query tool: connect a database, write a query, chart it and share it. This template runs the official image as a web service plus a background worker, with PostgreSQL and Redis, an admin user and an API key already created.

## About Hosting Redash

This template runs four services: the official `redash/redash` image (pinned by digest) as the **web server** and again as the **worker and scheduler**, plus **PostgreSQL** (volume at `/var/lib/postgresql`) and **Redis** (volume at `/data`). At every boot the web service waits for Postgres, creates the tables once under a database lock, creates the admin user if it does not exist and sets the admin password and API key from the generated variables, so they are the same after every redeploy. Version checks are off, the datasource encryption key is shared with the worker, and gunicorn binds Railway's `$PORT`. Queries run on the worker, so a slow query never blocks the UI.

### Agent contract

- Public URL: `REDASH_HOST` (`https://`), on the `redash` service
- Private URL: `http://redash.railway.internal:8080`
- Credentials: `REDASH_ADMIN_EMAIL` and `REDASH_ADMIN_PASSWORD` (browser sign-in at `/login`), `REDASH_ADMIN_API_KEY` (admin API key), all on the `redash` service. The bundled database password is `POSTGRES_PASSWORD` on the `postgres` service.
- Auth: send the API key as `Authorization: Key `; anonymous calls are rejected
- Health: `GET /ping` returns 200 `PONG` with no auth

```bash
# run with REDASH_HOST, REDASH_ADMIN_API_KEY (redash service) and POSTGRES_PASSWORD (postgres service)
AUTH="Authorization: Key $REDASH_ADMIN_API_KEY"
# 1. who am I (admin)
curl -s -H "$AUTH" "$REDASH_HOST/api/session" | jq '.user | {email, permissions}'
# 2. connect the bundled Postgres as a data source (reuse it if it already exists)
DS=$(curl -s -H "$AUTH" "$REDASH_HOST/api/data_sources" | jq '[.[] | select(.name=="bundled-postgres") | .id][0] // empty')
[ -n "$DS" ] || DS=$(curl -s -H "$AUTH" -H 'Content-Type: application/json' "$REDASH_HOST/api/data_sources" \
  -d "{\"name\":\"bundled-postgres\",\"type\":\"pg\",\"options\":{\"host\":\"postgres.railway.internal\",\"port\":5432,\"user\":\"postgres\",\"password\":\"$POSTGRES_PASSWORD\",\"dbname\":\"postgres\"}}" | jq .id)
# 3. run a query on the worker and poll the job
JOB=$(curl -s -H "$AUTH" -H 'Content-Type: application/json' "$REDASH_HOST/api/query_results" \
  -d "{\"data_source_id\":$DS,\"query\":\"select count(*) as users from users\",\"max_age\":0}" | jq -r '.job.id')
until [ "$(curl -s -H "$AUTH" "$REDASH_HOST/api/jobs/$JOB" | jq -r '.job.status')" = 3 ]; do sleep 1; done
QR=$(curl -s -H "$AUTH" "$REDASH_HOST/api/jobs/$JOB" | jq -r '.job.query_result_id')
curl -s -H "$AUTH" "$REDASH_HOST/api/query_results/$QR" | jq '.query_result.data.rows'
```

Alerts by email need an SMTP server, which only you can supply: add `REDASH_MAIL_SERVER`, `REDASH_MAIL_USERNAME`, `REDASH_MAIL_PASSWORD` and `REDASH_MAIL_DEFAULT_SENDER` to the `redash` and `redash-worker` services. Slack, webhook and the other destinations work without it.

## Why Deploy Redash on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Redash on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

- **Agent-ready** — generated credentials, a contract block and one working script; no browser step.
- **Complete stack** — web, worker, scheduler, PostgreSQL and Redis wired together; no compose file to translate.
- **Data survives redeploys** — dashboards and queries live on the Postgres volume, and the admin and API key stay the same.
- **Zero configuration** — no variables to fill in; every host and secret is wired for you.

## Common Use Cases

- **Team dashboards** — chart production data from Postgres, MySQL, BigQuery and dozens of other sources and share one URL.
- **AI agent reporting** — let an agent create queries and read results over the API instead of scraping a UI.
- **Scheduled reports and alerts** — refresh queries on a schedule and alert when a number crosses a threshold.

## Dependencies for Redash Hosting

- PostgreSQL with a volume at `/var/lib/postgresql` (included in this template).
- Redis with a volume at `/data` (included in this template).

### Deployment Dependencies

- [getredash/redash](https://github.com/getredash/redash) — upstream project
- [redash on Docker Hub](https://hub.docker.com/r/redash/redash) — the pinned image this template deploys


## Similar templates

- [Typesense Multilingual](https://railway.com/deploy/deploy-typesense-multilingual-search) — Locale-aware multilingual search with Typesense
- [Formbricks | Open-Source Typeform & Qualtrics Alternative](https://railway.com/deploy/formbricks-surveys) — Surveys, NPS and in-app feedback on your own Postgres, Hub and Cube
- [Typesense PHP](https://railway.com/deploy/typesense-php) — official PHP client against Railway

Open this page in a browser: https://railway.com/deploy/redash-or-just-updated-bi-dashboards-and
