5.0 KiB
title: Datasette created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, tracking, sqlite, data-exploration, python] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Data+Analysis, https://github.com/simonw/datasette]
🔍 Datasette
Explorateur web instantané pour fichiers SQLite : crée une API JSON et une UI de requête interactive pour n'importe quelle base, par Simon Willison.
| Métadonnée | Valeur |
|---|---|
| Site web | datasette.io |
| GitHub | simonw/datasette |
| License | Apache-2.0 |
| Langage principal | Python |
| Étoiles GitHub | 846 ⭐ |
| Dernière MAJ | 2026-05-22 |
| Catégorie | cat-tracking |
Description
Datasette est un outil écrit par Simon Willison (célèbre blogueur et créateur de Django) qui transforme n'importe quel fichier SQLite en une API JSON explorable et une interface web de requêtage. Le principe : datasette ma_base.db et l'utilisateur dispose instantanément de filtres, tris, facettes, full-text search et de points d'accès REST documentés.
C'est l'outil idéal pour les journalistes de données, les équipes data qui veulent partager un dataset, les chercheurs ou toute personne qui veut publier un extrait de base de données en quelques minutes. Datasette propose aussi un riche écosystème de plugins (cartographie, authentification, export CSV/JSON, visualisations Vega) et de clis (sqlite-utils) pour faciliter la vie.
Pour du self-hosting, Datasette est ultra-léger (sert des Go de données en Mo de RAM), fonctionne derrière Nginx/Caddy/Traefik et peut être déployé via Docker, pip, ou PaaS (Cloud Run, Fly.io). La version 1.0 alpha publiée récemment ajoute le support de PostgreSQL, ce qui en fait aussi un excellent outil de requêtage ad-hoc sur une base de production.
Installation
Via Docker (recommandé)
version: "3.8"
services:
datasette:
image: ghcr.io/simonw/datasette:latest
container_name: datasette
restart: unless-stopped
ports:
- "8001:8001"
volumes:
- ./data:/data
- ./metadata.yml:/metadata.yml
command: >
datasette serve /data/*.db
--host 0.0.0.0
--port 8001
--metadata /metadata.yml
--setting default_page_size 50
--setting suggest_facets on
Installation manuelle
- Disposer de Python 3.10+ et pip
- Installer :
pip install datasette datasette-cluster-map datasette-auth-github - Créer un répertoire
data/et y déposer vos.dbSQLite - Écrire un
metadata.ymlpour configurer titres, sources, licences - Lancer :
datasette serve data/*.db --host 0.0.0.0 --port 8001 - Pour la production : installer
gunicornou utilisercaddycomme reverse proxy
Configuration
- Configurer un fichier metadata.yml (titre du site, sources des données, descriptions de tables)
- Activer l'authentification via plugin (GitHub OAuth, mot de passe, ou token Bearer)
- Limiter l'accès à certaines tables avec des permissions granulaires
- Brancher des plugins :
datasette-cluster-map,datasette-vega,datasette-export - Définir des facettes et sort defaults par table pour faciliter la navigation
- Activer le mode immutable pour éviter les écritures non souhaitées sur des données sensibles
- Exposer l'API JSON derrière un reverse proxy avec rate limiting (Caddy / Traefik)
Alternatives
Open source
- Apache Superset — BI complet mais plus lourd à mettre en œuvre
- Metabase — alternative populaire, PostgreSQL natif, charts
- Nocodb — Airtable-like, multi-bases
- Directus — headless CMS sur base SQL, API auto-générée
- CKAN — portail open data institutionnel
Propriétaires
- Retool — UI builder low-code avec sources multiples
- Airtable — no-code avec vues kanban/form
- Tableau Public — dataviz mais non self-hosted
- Google Data Studio — équivalent Google
Sécurité
- Ne jamais exposer une base SQLite mutable en écriture à Internet
- Préférer le mode immutable pour les données publiques/partagées
- Activer un plugin d'authentification dès qu'il y a des données non publiques
- Restreindre l'accès par IP source (CrowdSec, fail2ban) ou via VPN (WireGuard)
- Activer HTTPS (Traefik + Let's Encrypt)
- Sauvegarder les
.dbrégulièrement (un simplecpsuffit, oulitestreampour la réplication continue) - Auditer les plugins installés : ils s'exécutent dans le même process que vos données
Ressources
- Site officiel
- Documentation
- Blog de Simon Willison
- sqlite-utils : github.com/simonw/sqlite-utils
- Liste de plugins