---
title: ChartDB
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, database, design, schema, visualization, diagram, typescript, apache]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Database, https://github.com/chartdb/chartdb]
---

# 🗄️ ChartDB

> **L'éditeur visuel de schémas de base de données** : en un clic, importez un schéma SQL existant (PostgreSQL, MySQL, MariaDB, SQLite) → diagramme ER interactif, export DDL, migration scripts. La "Figma du SQL".

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [chartdb.io](https://chartdb.io/) |
| **GitHub** | [chartdb/chartdb](https://github.com/chartdb/chartdb) |
| **License** | Apache-2.0 |
| **Langage** | TypeScript |
| **Étoiles GitHub** | 22k ⭐ |
| **Dernière MAJ** | 2026-06-05 |
| **Catégorie** | [[cat-database\|Database]] |

## 📝 Description

**ChartDB** est un **éditeur visuel de schémas de base de données**. Ce n'est **pas un SGBD**, pas non plus un outil de BI : son unique job est de **rendre visible** et **modifiable** la structure de vos bases, sans avoir à lire du DDL à la main.

Le point d'entrée magique de ChartDB est son **import "one-click"** : collez une URL de connexion à votre base (PostgreSQL, MySQL, MariaDB, SQLite) ou bien un script SQL, et l'outil :
- Reconnaît automatiquement les **tables, colonnes, types, index, foreign keys**
- Génère un **diagramme ER** propre et interactif
- Vous laisse le **réorganiser** visuellement, ajouter des notes
- **Exporte** le DDL modifié en plusieurs dialectes SQL
- **Génère un script de migration** entre l'ancien et le nouveau schéma

C'est l'outil idéal pour :
- **Documenter** une base existante (le "livre de bord" visuel)
- **Préparer une migration** (voir le diff visuel)
- **Onboarder** un nouveau développeur sur un projet
- **Concevoir** un nouveau schéma avant de l'écrire

À comparer à **DBeaver** (outil de gestion BDD complet, mais pas de visualisation ER intégrée aussi léchée) et à **dbdiagram.io** (service freemium équivalent, mais en SaaS).

- ✅ **One-click import** depuis PostgreSQL, MySQL, MariaDB, SQLite (live ou via DDL)
- ✅ **Diagramme ER** interactif (zoom, pan, drag, layout auto)
- ✅ **Export multi-dialectes** : PostgreSQL, MySQL, SQL Server, MariaDB, SQLite
- ✅ **Migration script generation** : détecte les changements, propose un ALTER TABLE
- ✅ **Export** : image PNG, JSON, DDL SQL
- ✅ **Thèmes clair/sombre**
- ✅ **Responsive** : utilisable sur mobile
- ✅ **Pas de compte requis** pour importer/exporter
- ✅ **Optionnel** : export vers GitHub Issue / Share via lien
- ✅ **Édition en ligne** : types, default values, commentaires

**Public cible** : architectes data, développeurs qui reprennent un projet existant, équipes qui veulent une doc visuelle, homelabs qui veulent documenter leur stack.

## 🚀 Installation

### Option 1 : Docker Compose (recommandé pour self-host)

```yaml
# docker-compose.yml
version: '3.8'
services:
  chartdb:
    image: chartdb/chartdb:latest
    container_name: chartdb
    restart: unless-stopped
    ports:
      - "8000:80"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.chartdb.rule=Host(`chartdb.example.com`)"
      - "traefik.http.routers.chartdb.entrypoints=websecure"
      - "traefik.http.routers.chartdb.tls.certresolver=letsencrypt"
      - "traefik.http.services.chartdb.loadbalancer.server.port=80"
```

> 💡 ChartDB tourne en frontal pur (l'import DDL est local, l'import live est direct navigateur → BDD). Pas de BDD ChartDB à sauvegarder.

### Option 2 : Cloud (sans installation)

Utiliser [chartdb.io](https://chartdb.io/) directement, sans rien installer. L'import live se fait via une connexion SSL/TLS depuis le navigateur (mécanisme de tunneling sécurisé).

### Option 3 : Lancement local (dev)

```bash
git clone https://github.com/chartdb/chartdb.git
cd chartdb
npm install
npm run dev
```

## ⚙️ Configuration Initiale

1. **Accéder à l'UI** : `https://chartdb.example.com`
2. **Importer un DDL** : menu "Import" → coller un `pg_dump --schema-only` ou un script CREATE TABLE
3. **Importer depuis une BDD live** : "New Diagram" → saisir la connection string (`postgresql://user:***@host:5432/db`) → import automatique
4. **Explorer le diagramme** : zoom, pan, clic sur une table pour voir les colonnes
5. **Modifier** : double-clic sur une colonne pour changer le type, drag-and-drop pour réorganiser le layout
6. **Exporter** : menu "Export" → choisir le dialecte cible → copier le DDL ou le migration script

## 🔄 Alternatives

### Open Source
- **DBeaver** — Client SQL complet, visualisation ER basique, multi-BDD
- **PgModeler** — Spécialisé PostgreSQL, plus puissant, GPL
- **draw.io / diagrams.net** — Dessin libre, pas d'import auto
- **Mermaid** — Diagramme-as-code (markdown), ER supportés
- **PlantUML** — Idem, plus de contrôles
- **dbt docs** — Auto-généré depuis un projet dbt

### Propriétaires / SaaS
- **dbdiagram.io** — Le concurrent direct freemium, ER visuels
- **Lucidchart** — Outil de diagramme généraliste
- **DbSchema** — Outil commercial multi-BDD, ER
- **Vertabelo** — Modeleur BDD en ligne
- **DataGrip** (JetBrains) — IDE SQL avec visualisation

### Comparaison

| Critère | ChartDB | dbdiagram.io | DBeaver | draw.io |
| :--- | :--- | :--- | :--- | :--- |
| Licence | Apache-2.0 | Freemium | Apache-2.0 (community) | Apache-2.0 |
| Self-hosted | ✅ | ❌ | ✅ (desktop) | ✅ |
| Import DDL | ✅ Auto | ✅ Auto | ✅ | ❌ Manuel |
| Import live | ✅ (PG/MySQL/SQLite) | ✅ | ✅ | ❌ |
| Migration script | ✅ | ❌ | ❌ | ❌ |
| Export SQL | ✅ Multi-dialectes | ✅ | ✅ | ❌ |
| Collaboration | ❌ | ✅ | ❌ | ✅ |
| Prix | Gratuit | Freemium | Gratuit / Pro | Gratuit |

**Verdict** : ChartDB est **le meilleur outil gratuit** pour visualiser et documenter un schéma BDD en 2026. Pour la collaboration d'équipe, **dbdiagram.io** reste devant, mais en SaaS payant. Pour un homelab, **ChartDB self-hosted** est imbattable.

## 🔐 Sécurité

- **HTTPS obligatoire** via [[app-traefik]] — ChartDB manipule potentiellement des credentials BDD dans le navigateur
- **Pas d'auth intégrée** : à protéger via Authelia/Authentik en amont si on veut exposer publiquement, ou restreindre à un VPN/Tailscale
- **Pas de BDD à sauvegarder** : ChartDB est un outil stateless, tout se fait dans le navigateur
- **Connection strings sensibles** : ne pas laisser les credentials dans les diagrammes exportés

## 📚 Ressources

- [Site officiel](https://chartdb.io/)
- [GitHub chartdb/chartdb](https://github.com/chartdb/chartdb)
- [Documentation](https://chartdb.io/docs)
- [Démo interactive](https://chartdb.io/app)

## Pages Liées
- [[cat-database]] — Catégorie Database
- [[app-postgres]] — BDD pour importer
- [[app-mysql]] — BDD pour importer
- [[app-traefik]] — Reverse-proxy HTTPS
- [[securisation-home-lab]] — Bonnes pratiques
- [[glossaire-homelab]] — Glossaire
