Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+158
View File
@@ -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