---
title: Mathesar
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, database, postgresql, spreadsheet, typescript, python, sqlalchemy, intermediate]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Database, https://github.com/mathesar-foundation/mathesar]
---

# 🗄️ Mathesar

> **L'interface tableur pour PostgreSQL** : éditer vos données Postgres comme dans un Google Sheet, sans compromettre l'intégrité de la base. Créé par la fondation à l'origine de SQLAlchemy.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [mathesar.org](https://mathesar.org/) |
| **GitHub** | [mathesar-foundation/mathesar](https://github.com/mathesar-foundation/mathesar) |
| **License** | PostgreSQL License (permissive, libre) |
| **Langage** | TypeScript (frontend) + Python (backend) |
| **Étoiles GitHub** | 5k ⭐ |
| **Dernière MAJ** | 2026-05-25 |
| **Catégorie** | [[cat-database\|Database]] |

## 📝 Description

**Mathesar** est une **interface web collaborative pour PostgreSQL** qui présente les données sous forme de **tableaux éditables** façon Airtable/Google Sheets, mais en stockant **réellement** les données dans une vraie base PostgreSQL. Le projet est développé par la **Mathesar Foundation**, une organisation à but non lucratif créée par Mike Bayer, le créateur de **SQLAlchemy** (l'ORM Python le plus utilisé). Cette filiation apporte une garantie de sérieux technique sur la couche base de données.

L'idée centrale est de rendre PostgreSQL **accessible à des non-développeurs** : on peut créer des tables, définir des types, ajouter des contraintes de clés étrangères, saisir des données, filtrer, créer des vues et exporter — le tout via une UI web, sans écrire une ligne de SQL. Sous le capot, Mathesar crée et manipule un vrai schéma Postgres, avec les types riches du moteur (JSON, UUID, géométrie, etc.). Pour les utilisateurs avancés, un **éditeur SQL** est disponible, et l'**API REST auto-générée** permet d'exploiter les tables dans des apps tierces.

L'autre force est l'**import massif** : on peut charger un CSV, Excel, ou un dump SQL, et Mathesar crée automatiquement les tables et infère les types. La collaboration multi-utilisateurs est gérée avec un système de rôles (admin, éditeur, lecteur). La version *community* est gratuite et open source ; la *fondation* propose du support commercial pour les entreprises.

**Public cible** : **équipes qui veulent offrir un accès Postgres à des non-techs**, data analysts, ONG, projets internes où on veut éviter le shadow IT Airtable.

### Fonctionnalités principales

- ✅ **Interface tableur** : édition de cellules en place, auto-complétion, validation
- ✅ **Vraie base PostgreSQL** : pas de couche propriétaire, SQL standard
- ✅ **Types riches** : UUID, JSONB, date/timestamp, array, enum, money
- ✅ **Contraintes visuelles** : clés étrangères, NOT NULL, UNIQUE, CHECK
- ✅ **Import CSV/Excel/SQL** avec inférence de types
- ✅ **API REST auto-générée** pour chaque table
- ✅ **Éditeur SQL** intégré avec coloration
- ✅ **Vues, fonctions, triggers** : création via UI
- ✅ **Multi-utilisateurs** : rôles et permissions par table
- ✅ **Rôles de connexion Postgres** : respecter les ACL existantes

## 🚀 Installation

### Option 1 : Docker Compose (recommandé)

```yaml
# docker-compose.yml
version: '3.8'
services:
  mathesar:
    image: mathesar/mathesar:latest
    container_name: mathesar
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      SECRET_KEY: "changez-moi-en-production-50-chars-min"
      ALLOWED_HOSTS: "mathesar.example.com,localhost"
    volumes:
      - mathesar_data:/mathesar/data
    depends_on:
      - db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.mathesar.rule=Host(`mathesar.example.com`)"
      - "traefik.http.routers.mathesar.entrypoints=websecure"
      - "traefik.http.routers.mathesar.tls.certresolver=letsencrypt"

  db:
    image: postgres:16
    container_name: mathesar-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: mathesar
      POSTGRES_PASSWORD: changez-moi
      POSTGRES_DB: mathesar
    volumes:
      - mathesar_db:/var/lib/postgresql/data

volumes:
  mathesar_data:
  mathesar_db:
```

### Option 2 : PostgreSQL existant

```bash
# Se connecter à un Postgres existant et créer un schéma dédié
psql -h db.example.com -U postgres -c "CREATE SCHEMA mathesar_meta;"

# Puis lancer Mathesar en pointant dessus via DATABASE_URL
```

## ⚙️ Configuration Initiale

1. **Créer le compte admin** : première connexion = création de l'admin Mathesar
2. **Connecter une base existante** ou **créer un nouveau schéma** dans le Postgres embarqué
3. **Importer un CSV** : bouton "Import" > glisser-déposer > Mathesar infère les types
4. **Définir des contraintes** : clic droit sur colonne > "Add constraint" pour NOT NULL, FK
5. **Créer une exploration** : vue sauvegardée avec filtres et tris
6. **Inviter des collaborateurs** : menu "Users" > envoyer des invitations par email

## 🔄 Alternatives

### Open Source

- [[app-baserow]] — Alternative Airtable, base NoSQL interne
- [[app-nocodb]] — Smart spreadsheet sur SQL
- [[app-directus]] — Headless CMS avec UI de gestion
- **NocoDB** — Le concurrent le plus direct
- **Teable** — No-code DB sur Postgres
- **Grist** — Tableurs relationnels avancés

### Comparaison Mathesar vs alternatives

| Critère | Mathesar | NocoDB | Baserow | Airtable |
| :--- | :--- | :--- | :--- | :--- |
| Backend | **PostgreSQL** | SQL existant | NoSQL interne | Cloud |
| Type d'UI | Tableur | Tableur | Tableur | Tableur |
| SQL natif | ✅ | ✅ (lecture) | ❌ | ❌ |
| API REST | ✅ auto | ✅ | ✅ | ✅ payante |
| Collaboration | ✅ | ✅ | ✅ | ✅ |
| Licence | PostgreSQL | AGPL | AGPL + Commercial | Propriétaire |
| Schéma dans Postgres | ✅ (vrai) | ✅ | ❌ (mappé) | ❌ |
| Pré-requis | PostgreSQL | MySQL/Postgres | Aucun | Aucun |

**Verdict** : Mathesar est **la meilleure option si on veut du "vrai" Postgres** accessible à des non-techs. Pour une expérience plus simple et plus connue, NocoDB ou Baserow.

### Propriétaires (ce que Mathesar remplace)

- **Airtable** (très cher au-delà de 5 users)
- **Retool Database**
- **Stackby**
- **Google Tables**
- **Microsoft Lists** (en partie)

## 🔐 Sécurité

- **🔐 `SECRET_KEY` obligatoire en production** : `openssl rand -hex 50` minimum, sert à signer les sessions
- **🔒 Respecter les ACL PostgreSQL** : Mathesar s'appuie sur les rôles Postgres existants, ne pas connecter en `postgres` superuser
- **🛡️ HTTPS obligatoire** : Mathesar gère l'auth et la modification de données, doit transiter en TLS via [[app-traefik]]

## 📚 Ressources

- [Site officiel](https://mathesar.org/)
- [Documentation](https://docs.mathesar.org/)
- [GitHub mathesar-foundation/mathesar](https://github.com/mathesar-foundation/mathesar)
- [Mathesar Foundation](https://mathesar.org/foundation/)

## Pages Liées

- [[cat-database]] — Catégorie Database
- [[app-traefik]] — Reverse proxy recommandé
- [[recettes-docker-compose]] — Intégration stack
- [[securisation-home-lab]] — Bonnes pratiques globales
