172 lines
7.0 KiB
Markdown
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
|