Files
wiki/Catalogue-Self-Hosted/apps/app-datasette.md
T
2026-06-09 18:40:21 +02:00

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

  1. Disposer de Python 3.10+ et pip
  2. Installer : pip install datasette datasette-cluster-map datasette-auth-github
  3. Créer un répertoire data/ et y déposer vos .db SQLite
  4. Écrire un metadata.yml pour configurer titres, sources, licences
  5. Lancer : datasette serve data/*.db --host 0.0.0.0 --port 8001
  6. Pour la production : installer gunicorn ou utiliser caddy comme 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 .db régulièrement (un simple cp suffit, ou litestream pour la réplication continue)
  • Auditer les plugins installés : ils s'exécutent dans le même process que vos données

Ressources

Pages Liées