MCPcopy
hub / github.com/chartbrew/chartbrew

github.com/chartbrew/chartbrew @v5.2.2 sqlite

repository ↗ · DeepWiki ↗ · release v5.2.2 ↗
3,407 symbols 9,727 edges 810 files 77 documented · 2%
README

ChartBrew logo

Docker Pulls CI Status

Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create beautiful charts. It features a chart builder, editable dashboards, embedable charts, query & requests editor, and team capabilities.

Chartbrew as a service is available here

ChartBrew dashboard


📚 Read the full docs here

💡 Have any ideas or discussion topics?

💬 Join our Discord

Data sources

Check Chartbrew's website for the latest list of supported data sources

Prerequisites

  • NodeJS v22+
  • MySQL (5+) or PostgreSQL (12.5+)
  • Redis (v6+)

Start

It is recommended you head over to the more detailed documentation to find out how to set up Chartbrew

📚 You can find it here

Set up Chartbrew locally

Create a new database

Chartbrew can run on MySQL or PostgreSQL. Create an empty database that Chartbrew can use.

Clone and setup

git clone https://github.com/chartbrew/chartbrew.git
cd chartbrew && npm run setup

Complete the required environmental variables in chartbrew/.env. Check out which need to be set here.

Run the project in Development

Open two terminals, one for front-end and the other for back-end.

# frontend
cd client/
npm run start

# backend
cd server/
npm run start-dev

Head over to http://localhost:4018 to see the app running and create your first user account.

Deploy Chartbrew on DigitalOcean

Chartbrew can be deployed on DigitalOcean using the 1-click droplet from the marketplace. This allows you to quickly set up and run Chartbrew with minimal configuration.

Deploy to DigitalOcean

Run with Docker

Check the full guide in the docs.

Quickstart

A Chartbrew docker image is built whenever a new version is released.

Before running the commands below, make sure you have a MySQL server already running and an empty database that Chartbrew can use. The database name should match the value of the CB_DB_NAME variable.

You will need a 32 bytes AES encryption key for the CB_ENCRYPTION_KEY variable. Run the following command to generate one:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
docker pull razvanilin/chartbrew

docker run -p 4019:4019 -p 4018:4018 \
  -e CB_ENCRYPTION_KEY=your_32_bytes_key \
  -e CB_API_HOST=0.0.0.0 \
  -e CB_API_PORT=4019 \
  -e CB_DB_HOST=host.docker.internal \
  -e CB_DB_PORT=3306 \
  -e CB_DB_NAME=chartbrew \
  -e CB_DB_USERNAME=root \
  -e CB_DB_PASSWORD=password \
  -e CB_REDIS_HOST=host.docker.internal \
  -e CB_REDIS_PORT=6379 \
  -e CB_REDIS_PASSWORD=password \
  -e VITE_APP_CLIENT_HOST=http://localhost:4018 \
  -e VITE_APP_CLIENT_PORT=4018 \
  -e VITE_APP_API_HOST=http://localhost:4019 \
  razvanilin/chartbrew

Acknowledgements

Many thanks to everybody that contributed to this open-source project 🙏

Start here if you want to become a contributor

Core symbols most depended-on inside this repo

filter
called by 433
server/sources/plugins/firestore/firestore.connection.js
create
called by 261
server/controllers/ChartController.js
get
called by 178
server/modules/runtimeCache.js
getAuthToken
called by 138
client/src/modules/auth.js
update
called by 113
server/controllers/TeamController.js
getSourceById
called by 96
server/sources/index.js
set
called by 82
server/modules/runtimeCache.js
findAll
called by 81
server/controllers/TeamController.js

Shape

Function 3,021
Method 322
Class 64

Languages

TypeScript100%

Modules by API surface

server/sources/plugins/stripeOfficial/stripeOfficial.protocol.js77 symbols
server/sources/plugins/jira/jira.protocol.js70 symbols
server/modules/runtimeCache.js49 symbols
server/sources/plugins/jira/ai/jira.ai.js40 symbols
server/sources/plugins/customerio/ai/customerio.ai.js40 symbols
server/controllers/ChartController.js40 symbols
server/sources/plugins/api/ai/api.ai.js35 symbols
client/src/containers/AddChart/components/VisualSQL.jsx32 symbols
server/sources/plugins/firestore/ai/firestore.ai.js31 symbols
client/src/containers/ProjectDashboard/ProjectDashboard.jsx31 symbols
server/controllers/TeamController.js29 symbols
client/src/sources/stripeOfficial/stripeOfficial-builder.utils.js29 symbols

Dependencies from manifests, versioned

@bull-board/api6.7.9 · 1×
@clickhouse/client1.10.1 · 1×
@faker-js/faker10.0.0 · 1×
@google-analytics/admin9.0.0 · 1×
@google-analytics/data5.1.0 · 1×
@heroui/react3.0.1 · 1×
@heroui/styles3.0.1 · 1×
@internationalized/date3.5.3 · 1×
@monaco-editor/react4.7.0 · 1×
@playwright/test1.48.2 · 1×

Datastores touched

(mongodb)Database · 1 repos
(mysql)Database · 1 repos
appDatabase · 1 repos
dbnameDatabase · 1 repos
dbnameDatabase · 1 repos
dbnameDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add chartbrew \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact