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