---
title: "Deploy Chartbrew"
description: "Chartbrew 5.3: dashboards and charts from your databases and APIs."
category: "Analytics"
url: https://railway.com/deploy/chartbrew-1
---

# Deploy Chartbrew

Chartbrew 5.3: dashboards and charts from your databases and APIs.

**[Deploy Chartbrew on Railway](https://railway.com/template/chartbrew-1)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/chartbrew-1/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Analytics

## Template content

### web https://raw.githubusercontent.com/chartbrew/chartbrew/v5.3.2/client/src/assets/app_icon.png

- **Image:** razvanilin/chartbrew:5.3.2
- **Start command:** `sh -c 'cd /code/client && npm run build && exec npx serve -s dist -l 4018'`
- **Health check:** /
- **Public domain:** Yes

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### api https://raw.githubusercontent.com/chartbrew/chartbrew/v5.3.2/client/src/assets/app_icon.png

- **Image:** razvanilin/chartbrew:5.3.2
- **Start command:** `sh -c 'printf "%s\n" "$CHARTBREW_SEED" > /tmp/seed.mjs; cd /code/server; node index.js & pid=$!; trap "kill -TERM $pid; wait $pid; exit 0" TERM INT; node /tmp/seed.mjs & wait $pid'`
- **Health check:** /
- **Public domain:** Yes

## Documentation

# Deploy and Host Chartbrew on Railway

Chartbrew builds live dashboards and charts from your databases and APIs. It connects to PostgreSQL, MySQL, MongoDB, Firestore, REST APIs and services like Stripe or Google Analytics, lets you query them with a visual builder or SQL, and shares dashboards publicly, by link or embedded in other sites.

## About Hosting Chartbrew

This template runs the official `razvanilin/chartbrew:5.3.2` image as two services, the API and the web app, so each gets its own domain, plus Railway PostgreSQL and Redis. The owner account is created on first boot from the variables and further sign-ups are refused. The web service builds the interface at startup with the API's public URL, which takes about a minute. Chart data refreshes run as background jobs in Redis. Dashboards and connections live in Postgres, and credentials for data sources are encrypted with a generated key. Plan on about 1 GB of memory across services. Chartbrew is licensed under FSL-1.1-MIT.

## Common Use Cases

- Business dashboards from your production database
- Client reports shared by link or embedded in a portal
- Combining Stripe, analytics and database metrics on one page

## Dependencies for Chartbrew Hosting

- `razvanilin/chartbrew:5.3.2` (official image, used for api and web)
- Railway PostgreSQL
- Railway Redis

### Deployment Dependencies

- [Chartbrew website](https://chartbrew.com)
- [Chartbrew on GitHub](https://github.com/chartbrew/chartbrew)
- [Chartbrew 5.3.2 release](https://github.com/chartbrew/chartbrew/releases/tag/v5.3.2)

### Implementation Details

| Service | Source | Networking | Storage |
| --- | --- | --- | --- |
| api | `razvanilin/chartbrew:5.3.2` | public domain on 4019 | none |
| web | `razvanilin/chartbrew:5.3.2` | public domain on 4018 | none |
| Postgres | Railway PostgreSQL | private | Railway volume |
| Redis | Railway Redis | private | Railway volume |

| Variable | Default | Purpose |
| --- | --- | --- |
| `CHARTBREW_ADMIN_EMAIL` | `admin@example.com` | Owner account (first boot only) |
| `CHARTBREW_ADMIN_PASSWORD` | generated | Its password |
| `CB_RESTRICT_SIGNUP` | `1` | Only the first account may sign up |
| `CB_ENCRYPTION_KEY` | generated | Encrypts data-source credentials |
| `VITE_APP_API_HOST` | `https://${{api.RAILWAY_PUBLIC_DOMAIN}}` | API URL built into the web app |

Notes:

- Invite teammates from Team settings; they join without open sign-up.
- Use private hostnames such as `postgres.railway.internal` for data sources in the same project.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by Chartbrew or its maintainers.

## Why Deploy Chartbrew 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 Chartbrew 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.


## Similar templates

- [Typesense vs Meilisearch](https://railway.com/deploy/typesense-vs-meilisearch) — self-hosted Typesense vs Meilisearch
- [Betterlytics](https://railway.com/deploy/betterlytics) — Betterlytics is a cookieless analytics platform GDPR-compliant.
- [Finance Tracker](https://railway.com/deploy/finance-tracker-1) — Private multi-user household finance ledger with budgets and CSV import.

Open this page in a browser: https://railway.com/deploy/chartbrew-1
