Files
2026-06-09 18:40:21 +02:00

172 lines
7.0 KiB
Markdown

---
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