Initial vault setup
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
---
|
||||
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](https://datasette.io) |
|
||||
| **GitHub** | [simonw/datasette](https://github.com/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é)
|
||||
```yaml
|
||||
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
|
||||
- [Site officiel](https://datasette.io)
|
||||
- [Documentation](https://docs.datasette.io)
|
||||
- [Blog de Simon Willison](https://simonwillison.net)
|
||||
- **sqlite-utils** : [github.com/simonw/sqlite-utils](https://github.com/simonw/sqlite-utils)
|
||||
- [Liste de plugins](https://datasette.io/plugins)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-tracking]]
|
||||
- [[recettes-docker-compose]]
|
||||
- [[cat-data-analysis]]
|
||||
Reference in New Issue
Block a user