Railway

Deploy Redash

Query databases with SQL and turn results into shared dashboards

Deploy Redash

redash-worker-adhoc

redash/redash:26.3.0

Just deployed

redash-scheduler

redash/redash:26.3.0

Just deployed

Just deployed

/var/lib/postgresql/data

redash-worker-scheduled

redash/redash:26.3.0

Just deployed

Just deployed

/data

redash-worker-default

redash/redash:26.3.0

Just deployed

Redash logo

Deploy and Host Redash on Railway

Redash is an open-source data platform that turns SQL into shared charts and dashboards. Point it at a database, write a query, pick a visualization, and pin the result to a dashboard that refreshes on a schedule. It ships connectors for more than sixty sources — PostgreSQL, MySQL, BigQuery, Snowflake, ClickHouse, Athena, Databricks, MongoDB, Elasticsearch, Trino and Google Sheets among them — so one instance can front a whole warehouse estate. Analysts get a schema browser and autocomplete; everyone else gets a URL. Redash has been in use since 2013 and is BSD-licensed.

Self-host Redash on Railway and you get the topology its own production compose file describes, already wired together. A gunicorn web service serves the UI and REST API behind a generated HTTPS domain. A scheduler enqueues periodic work, and three worker services drain separate RQ queues: ad-hoc queries, scheduled refreshes and schema scans, and maintenance such as alert evaluation and result cleanup. Managed PostgreSQL holds queries, dashboards, users and cached results; managed Redis is the job broker and rate-limit store. Everything but the web service stays private.

Diagram of the Redash server, scheduler, worker and datastore services on Railway

Getting Started with Redash on Railway

Open the generated domain once the deploy finishes. The first visit lands on /setup, a one-time wizard creating the admin account and organisation — there are no default credentials, and the page disappears once the first account exists, so complete it promptly. Enter your name, email, a strong password and an organisation name to reach the home screen. Next go to Settings → Data Sources → New Data Source, choose your database type, fill in host, port, user, password and database name, then press Test Connection before saving. Now click Create → Query, pick that data source, write a SELECT and press Execute: the request is queued in Redis and run by the ad-hoc worker, so a returned result table proves the stack is healthy end to end. Add a visualization from the tab strip under the results, publish the query, then use Create → Dashboard to place it as a widget. Finally set a Refresh Schedule to confirm the scheduler and its worker are running — "Last Executed At" on the Queries list starts advancing on its own.

Redash dashboard with revenue counter, stacked column chart and channel pie Redash query editor showing SQL, schema browser and result table Redash data source catalogue listing available database connectors

About Hosting Redash

Redash is deliberately narrow: it does not model your data and does not replace your warehouse. It gives SQL-literate people a fast loop — query, chart, share, schedule — and everyone else a link. That suits teams who know their schema and want reporting without a modelling project.

Key features:

  • Query editor with schema browser, autocomplete, snippets and parameters
  • Around twenty visualization types: charts, counters, pivot tables, cohorts, funnels, maps
  • Dashboards built from any published visualization, with dashboard-level filters
  • Scheduled refreshes plus alerts to email, Slack, Discord, Teams, PagerDuty, Datadog and webhooks
  • A full REST API, so anything the UI does can be scripted
  • Groups and per-data-source permissions, plus Google OAuth, SAML and LDAP

Splitting the queues across separate services matters in practice: a slow ad-hoc query cannot starve scheduled refreshes, and neither can block alert evaluation or cleanup.

Why Deploy Redash on Railway

Railway removes the server work self-hosting Redash usually involves:

  • Managed PostgreSQL and Redis, provisioned and connected for you
  • HTTPS domain, certificates and redirects handled at the edge
  • Five services from one click, no compose file to maintain
  • Private networking between workers and datastores
  • Independent scaling and logs per worker tier

Common Use Cases

  • A shared analytics front end over a production replica, so teams self-serve without database credentials
  • Scheduled operational reporting — daily revenue, signup funnels, queue depth
  • Data-quality alerting: a query that counts anomalies, a threshold, and a Slack or webhook destination
  • One query surface across disconnected systems, joining a Postgres extract against a Google Sheet

Dependencies for Redash

  • redash/redash:26.3.0 — the web, scheduler and worker services all run this image (GitHub, Docker Hub)
  • Railway managed PostgreSQL — metadata store for queries, dashboards, users, groups, alerts and cached results
  • Railway managed Redis — RQ broker for every background job, and the store behind login rate limiting

All five application services must run the same image tag: they share a schema and enqueue jobs for each other, so version skew produces jobs that fail on deserialisation.

Environment Variables Reference

VariablePurpose
REDASH_DATABASE_URLPostgreSQL connection string for Redash's own metadata
REDASH_REDIS_URLRedis connection string used as the RQ broker
REDASH_COOKIE_SECRETSigns session cookies — must stay stable, or everyone is logged out
REDASH_SECRET_KEYEncrypts data-source credentials — change it and existing sources break
REDASH_HOSTPublic base URL used in invite links and alert emails
QUEUES / WORKERS_COUNTWhich RQ queues a worker drains, and how many processes it starts
REDASH_MAIL_*Optional SMTP settings for alert emails and invitations

Deployment Dependencies

Hardware Requirements for Self-Hosting Redash

ResourceMinimumRecommended
CPU2 vCPU total4+ vCPU
RAM4 GB total8 GB total
Storage5 GB PostgreSQL volume20 GB+ for large cached results
RuntimePython 3.13Python 3.13

Redash itself is light. What grows is the query_results table, since every execution stores its full result set. A cleanup job removes unused results older than seven days; lower REDASH_QUERY_RESULTS_CLEANUP_MAX_AGE if you query wide tables.

Self-Hosting Redash with Docker

Redash needs its schema created before the web service starts. This shell command does that against existing PostgreSQL and Redis instances:

docker run --rm \
  -e REDASH_DATABASE_URL="postgresql://user:pass@postgres/redash" \
  -e REDASH_REDIS_URL="redis://redis:6379/0" \
  -e REDASH_COOKIE_SECRET="$(openssl rand -hex 16)" \
  redash/redash:26.3.0 create_db

Then start the web service, the scheduler and one worker per queue:

docker run -d -p 5000:5000 -e REDASH_WEB_WORKERS=4  redash/redash:26.3.0 server
docker run -d  redash/redash:26.3.0 scheduler
docker run -d -e QUEUES="queries" -e WORKERS_COUNT=2  redash/redash:26.3.0 worker

Upstream also publishes an installer and compose file at https://github.com/getredash/setup.

How Much Does Redash Cost to Self-Host?

Redash is free and open source under the BSD 2-Clause licence — no paid edition, no seat limits, no feature gating; every connector, alert destination and SSO option ships in the same build. The hosted redash.io service was retired years ago, so self-hosting is the only way to run it. On Railway you pay for compute and storage only, and cost tracks how often your scheduled queries run.

FAQ

What is Redash?

An open-source tool for querying databases with SQL, turning results into visualizations, and combining those into shareable dashboards that refresh on a schedule. It supports over sixty data sources and is BSD 2-Clause licensed.

What does this Railway template deploy?

Seven services: a Redash web and API service on a public HTTPS domain, a scheduler, three RQ workers splitting ad-hoc queries, scheduled refreshes and maintenance, and managed PostgreSQL and Redis.

Why does Redash need both PostgreSQL and Redis?

PostgreSQL is Redash's own metadata store — queries, dashboards, users, groups, alerts and cached results. Redis is the job broker: each query execution, schema refresh and alert check is an RQ job a worker picks up. Neither holds the data you analyse; that stays in the sources you connect.

How do I create the first admin user in self-hosted Redash?

Open the deployed URL and complete the /setup wizard on your first visit; it creates the admin account and organisation together. No default credentials exist, and the page becomes unreachable once an account is present. Further users are invited from Settings → Users.

Can I invite team members without configuring SMTP?

Yes. With no mail server configured, Redash shows the invitation link directly in the admin UI so you can send it yourself. Set REDASH_MAIL_* only for alert emails, password resets or automatic invitations.

How do I scale Redash if queries start queuing?

Each worker service is separate, so raise WORKERS_COUNT on whichever queue is backing up — usually the ad-hoc worker — or add replicas. Raise REDASH_WEB_WORKERS only if the UI feels slow, and keep the web service at one replica during initial setup.


Template Content

redash-worker-adhoc

redash/redash:26.3.0

redash-scheduler

redash/redash:26.3.0

redash-worker-scheduled

redash/redash:26.3.0

redash-worker-default

redash/redash:26.3.0

More templates in this category

View Template
NEW
Betterlytics
Betterlytics is a cookieless analytics platform GDPR-compliant.

Anarchist Manifesto
27
View Template
NEW
Finance Tracker
Private multi-user household finance ledger with budgets and CSV import.

wotonews
0
View Template
Matomo Analytics + MariaDB
Privacy-friendly analytics with MariaDB and persistent volumes.

leodev
1