---
title: Chartbrew
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, database, bi, visualisation, dashboard, charts, javascript, apache, intermediate]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Database, https://github.com/chartbrew/chartbrew]
---

# 🗄️ Chartbrew

> **L'outil de visualisation de données self-hosted** : connectez vos bases et APIs, créez des dashboards et graphiques en quelques clics. L'alternative open source à Retool/Metabase pour la dataviz.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [chartbrew.com](https://chartbrew.com/) |
| **GitHub** | [chartbrew/chartbrew](https://github.com/chartbrew/chartbrew) |
| **License** | Apache-2.0 |
| **Langage** | JavaScript (Node.js + React/Vue) |
| **Étoiles GitHub** | 3,9k ⭐ |
| **Dernière MAJ** | 2026-05-20 |
| **Catégorie** | [[cat-database\|Database]] |

## 📝 Description

**Chartbrew** est une **plateforme de visualisation et création de dashboards** qui se connecte à des **bases de données, APIs et services tiers** pour produire des graphiques et tableaux de bord sans coder. Le projet a démarré en 2019 et vise à offrir une expérience de dataviz plus moderne et plus simple que les stacks BI classiques (Metabase, Superset), tout en restant **léger, rapide à déployer, et full JavaScript**.

L'idée centrale est de définir des **"connections"** vers une source de données (PostgreSQL, MySQL, MongoDB, REST API, Google Analytics, etc.), puis de créer des **"charts"** en mappant les champs de la réponse à des types de visualisation (line, bar, pie, table, KPI, doughnut, etc.). Les graphiques sont ensuite assemblés en **"projects"** (dashboards) partageables. Chartbrew gère bien le **rafraîchissement automatique** (cron), les **filtres croisés** entre graphiques, et l'**export PDF/PNG** des dashboards.

Pour qui n'est pas équipe data engineer, Chartbrew est un excellent compromis : plus simple qu'Apache Superset, plus moderne que Metabase, plus flexible que Grafana pour de la donnée métier non-métriques. La version *community* est open source et auto-suffisante ; une offre *cloud* hébergée existe pour ceux qui ne veulent pas self-host.

**Public cible** : **petites équipes data, marketers, devs qui veulent un dashboard rapidement**, projets internes avec données dans Postgres/Mongo.

### Fonctionnalités principales

- ✅ **Connexions multiples** : PostgreSQL, MySQL, MongoDB, Google Analytics, REST API, MySQL, Firestore
- ✅ **Types de graphiques** : line, bar, pie, doughnut, table, KPI, matrice, radar
- ✅ **Dashboards** : assemblage de charts en projets
- ✅ **Filtres croisés** : un filtre affecte plusieurs charts
- ✅ **Rafraîchissement auto** : cron configurable par chart
- ✅ **Partage public** : lien read-only pour un dashboard
- ✅ **Auth multi-utilisateurs** : rôles (admin, éditeur, lecteur)
- ✅ **Export PDF / PNG** des dashboards
- ✅ **API publique** pour intégration
- ✅ **Thèmes** clair/sombre personnalisables

## 🚀 Installation

### Option 1 : Docker Compose (recommandé)

```yaml
# docker-compose.yml
version: '3.8'
services:
  chartbrew:
    image: chartbrew/chartbrew:latest
    container_name: chartbrew
    restart: unless-stopped
    ports:
      - "8080:4019"
    environment:
      APP_URL: "https://chartbrew.example.com"
      SECRET_KEY: "changez-moi-en-production-50-chars-min"
      REACT_APP_CLIENT_HOST: "https://chartbrew.example.com"
      REACT_APP_API_HOST: "https://chartbrew.example.com/api"
      CB_DB_HOST: db
    volumes:
      - chartbrew_data:/home/chartbrew/data
    depends_on:
      - db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.chartbrew.rule=Host(`chartbrew.example.com`)"
      - "traefik.http.routers.chartbrew.entrypoints=websecure"
      - "traefik.http.routers.chartbrew.tls.certresolver=letsencrypt"

  db:
    image: postgres:16
    container_name: chartbrew-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: chartbrew
      POSTGRES_PASSWORD: changez-moi
      POSTGRES_DB: chartbrew
    volumes:
      - chartbrew_db:/var/lib/postgresql/data

volumes:
  chartbrew_data:
  chartbrew_db:
```

### Option 2 : npm (développement)

```bash
git clone https://github.com/chartbrew/chartbrew.git
cd chartbrew
npm install
npm run setup
npm start
```

## ⚙️ Configuration Initiale

1. **Créer le compte admin** : première connexion = signup
2. **Ajouter une connexion** : menu "Connections" > "+ New" > choisir SGBD/API > credentials
3. **Créer un dataset** : nom + requête SQL/query API
4. **Créer un chart** : lier à un dataset > choisir le type > mapper X/Y
5. **Assembler un dashboard** : menu "Projects" > "+ New" > drag-and-drop les charts
6. **Configurer le rafraîchissement** : onglet "Schedule" d'un chart > cron

## 🔄 Alternatives

### Open Source

- **Metabase** — Le poids lourd de la BI open source
- **Apache Superset** — BI enterprise (plus complexe)
- **Redash** — SQL queries + viz (plus minimal)
- **Grafana** — Excellent pour séries temporelles (métriques)
- **Nocodb Airtable-like** — Pour des vues tabulaires
- **Directus** — Headless CMS avec dashboard

### Comparaison Chartbrew vs alternatives

| Critère | Chartbrew | Metabase | Superset | Grafana |
| :--- | :--- | :--- | :--- | :--- |
| Interface | Moderne | Simple | Complexe | Technique |
| Setup Docker | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| SGBD supportés | 6+ | 15+ | 30+ | 30+ |
| Types de charts | 10+ | 15+ | 50+ | 30+ |
| Filtres croisés | ✅ | ✅ | ✅ | ✅ variables |
| Auth utilisateurs | ✅ | ✅ | ✅ | ✅ |
| Alertes | ❌ | ✅ | ✅ | ✅ |
| Langage | JS/Node | Java/Clojure | Python | Go |
| Licence | Apache-2.0 | AGPL | Apache | AGPL |

**Verdict** : Chartbrew brille par sa **simplicité et modernité**. Pour de la BI enterprise avec alerting, Metabase. Pour des métriques time-series, Grafana.

### Propriétaires (ce que Chartbrew remplace)

- **Retool** (très cher au-delà de 5 users)
- **Tableau Public / Public Tableau**
- **Looker Studio** (Google, gratuit mais cloud)
- **Power BI embedded** (Microsoft, payant)
- **Chartio** (racheté par Atlassian)
- **Domo**

## 🔐 Sécurité

- **🔐 `SECRET_KEY` obligatoire en production** : `openssl rand -hex 50` minimum
- **🔒 HTTPS obligatoire via [[app-traefik]]** : Chartbrew accède potentiellement à des données métier sensibles
- **🛡️ Row-Level Security** : créer des utilisateurs SQL dédiés en lecture seule pour Chartbrew (jamais `root` ou superuser)
- **🛡️ Partage public de dashboard** : activer avec précaution, les liens publics sont sensibles

## 📚 Ressources

- [Site officiel](https://chartbrew.com/)
- [Documentation](https://docs.chartbrew.com/)
- [GitHub chartbrew/chartbrew](https://github.com/chartbrew/chartbrew)
- [Démo en ligne](https://app.chartbrew.com/)

## Pages Liées

- [[cat-database]] — Catégorie Database
- [[app-traefik]] — Reverse proxy recommandé
- [[recettes-docker-compose]] — Intégration stack
- [[securisation-home-lab]] — Bonnes pratiques globales
