Introduction à Supabase
Découvrir Supabase, une base de données dans le Cloud

Notions théoriques
Qu’est-ce que Supabase ?
Supabase est une plateforme open-source qui permet de créer et gérer des bases de données relationnelles, avec une interface moderne et de nombreuses fonctionnalités prêtes à l’emploi.
Supabase repose sur PostgreSQL (https://www.postgresql.org/), un système de gestion de base de données relationnelle puissant et très utilisé dans le monde professionnel.
Supabase est souvent comparée à Firebase (de Google), mais elle présente plusieurs avantages pour les développeurs qui préfèrent les technologies open-source, les bases de données relationnelles, ou qui veulent garder le contrôle sur leurs données.
Voici quelques fonctionnalités principales de Supabase :
- Base de données PostgreSQL : chaque projet Supabase repose sur une base relationnelle robuste.
- Éditeur SQL : permet d’écrire et d’exécuter des requêtes SQL.
- Éditeur de tables : interface graphique pour créer et modifier les tables.
- Authentification intégrée : gestion des utilisateurs avec email/mot de passe, OAuth, etc.
- Stockage de fichiers : pour héberger des images, documents, etc.
- API REST et GraphQL : générées automatiquement pour interagir avec les données.
- Sécurité avec RLS (Row Level Security) : permet de définir finement qui peut accéder à quoi.
Supabase est hébergé sur l’infrastructure cloud (AWS, GCP, etc.), mais il est aussi possible de l’installer en local avec Docker.
Pourquoi utiliser Supabase ?
- Pour centraliser les données d’une application web ou mobile.
- Pour gérer des utilisateurs avec un système d’authentification intégré.
- Pour développer rapidement sans devoir tout coder soi-même (API, sécurité, etc.).
- Pour collaborer sur des projets avec une base de données partagée et accessible en ligne.
-
Supabase offre une interface simple pour créer des tables, ajouter des données, et gérer les relations entre les données, le tout en SQL.

-
Supabase va au-delà de la simple base de données en intégrant les services dont les développeurs ont besoin aujourd'hui (API, auth, stockage, temps réel), et elle simplifie le développement tout en s'appuyant sur la robustesse de PostgreSQL.
-
Supabase utilise PostgreSQL, un système de gestion de base de données relationnelle puissant et largement utilisé dans l'industrie.
-
PostgreSQL intègre des fonctionnalités avancées (supérieures à MariaDB) telles que la gestion des transactions, les vues matérialisées, les fonctions stockées, le support des types de données complexes et les RLS (que nous allons découvrir plus tard).
Limites du plan gratuit
- Le plan gratuit de Supabase a des limites :
- 2 bases de données,
- 500 Mo de stockage de base de données,
- 1 Go de stockage de fichiers,
- 2 Go de bande passante par mois.
- Pour un projet de quiz simple, cela devrait suffire, mais pour des projets plus grands, il faudra envisager un plan payant.
Interface de Supabase
Une fois connecté à Supabase, l'interface principale (appelée Dashboard) propose plusieurs sections :
- Table Editor : interface pour visualiser et modifier les tables et leurs données.
- SQL Editor : pour exécuter des requêtes SQL.
- Auth : pour gérer les utilisateurs authentifiés.
- Storage : pour gérer les fichiers.
- API : documentation automatique de l’API générée.
- Settings : pour configurer les clés API, les règles de sécurité, etc.
Création d’un compte Supabase
Pour utiliser Supabase, il faut créer un compte sur https://supabase.com.
L’inscription est gratuite et nécessite une adresse email valide.
Utiliser une adresse email professionnelle sécurisée, et éviter les adresses jetables ou non respectueuses de vos données personnelles.
Création d’un projet Supabase
Une fois connecté, il est possible de créer un nouveau projet.
Cela génère une instance PostgreSQL hébergée, avec un nom de projet, un mot de passe pour la base de données, et une région de déploiement.
Chaque projet Supabase dispose de :
- Une URL publique pour accéder à l’API.
- Une clé API (anon) pour les requêtes côté client.
- Une clé secrète (service_role) pour les requêtes côté serveur.
Ces clés sont sensibles, en particulier la clé service_role.
Ne jamais partager publiquement (sur GitHub par exemple) la clé service_role.
Bonnes pratiques cyber
- Utiliser un mot de passe fort (au moins 12 caractères, avec majuscules, minuscules, chiffres et symboles).
- Activer l’authentification à deux facteurs (2FA).
- Ne jamais publier les clés API dans un dépôt public (GitHub, etc.).
- Toujours vérifier les droits d’accès aux données (via RLS ou les permissions de la table).
Exemple pratique
Étapes pour créer un projet Supabase
Il est possible de créer un projet Supabase en suivant les étapes suivantes :
-
Aller sur le site :
Accéder à https://supabase.com et cliquer sur Start your project. -
Créer un compte :
S’inscrire avec une adresse email et un mot de passe sécurisé. -
Activer la 2FA :
Une fois connecté, aller dans les paramètres du compte et activer l’authentification à deux facteurs (via TOTP ou SMS). -
Créer un nouveau projet :
- Cliquer sur New project.
- Donner un nom au projet (par exemple :
ma-base-donnees). - Choisir une organisation (créer une nouvelle si nécessaire).
- Saisir un mot de passe base de données (à conserver précieusement).
- Choisir une région de déploiement (ex :
eu-west-1). - Valider la création.
-
Attendre quelques secondes :
Supabase va générer l’instance PostgreSQL, configurer l’API et l’interface. -
Explorer l’interface :
- Aller dans Table Editor : aucune table n’est encore créée.
- Aller dans SQL Editor : possibilité d’écrire des requêtes SQL.
- Aller dans API : copier l’URL du projet et la clé
anon.
-
Créer une table de test (optionnel) :
- Dans le SQL Editor, exécuter :
create table ma_table (
id serial primary key,
nom text
); - Vérifier que la table apparaît dans le Table Editor.
- Dans le SQL Editor, exécuter :
-
Tester l’API REST :
- Aller dans la section API.
- Copier l’URL REST et la clé
anon. - Tester une requête GET via un client HTTP (comme Postman ou curl).