Initial vault setup
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user