Exporter et auto-héberger
Sortez votre application de la plateforme : téléchargez le code source, exécutez-la localement, et déplacez le backend vers votre propre projet Supabase.
Votre application n'est pas verrouillée sur MeDo. Vous pouvez télécharger l'intégralité de son code source et l'exécuter sur votre propre infrastructure.
Quand le faire
- Vous devez héberger sur vos propres serveurs, pour des raisons de conformité ou de politique d'entreprise.
- Un développeur reprend le projet et veut le placer dans son propre dépôt.
- Vous voulez continuer à développer au-delà de ce que la plateforme génère pour vous.
- Vous remettez le projet à un client qui veut tout posséder.
Si aucun de ces cas ne s'applique, rester sur MeDo est plus simple : l'hébergement, le backend et les mises à jour sont gérés pour vous.
Coût et prérequis
Chaque téléchargement coûte 300 crédits. Au-delà, l'auto-hébergement signifie que vous reprenez les parties que MeDo assurait : provisionner une base de données, déployer des fonctions, gérer les clés et héberger le frontend. Prévoyez une heure pour une première migration et attendez-vous à avoir besoin d'un terminal.
Remarque : Si votre application est un frontend pur sans données stockées, les sections 1 à 4 suffisent, puis exécutez-la localement à la section 9. Si votre application stocke des données, suivez tout le parcours pour reconstruire la structure sur votre propre projet Supabase.
1. Ce que contient (et ne contient pas) votre téléchargement
Le ZIP obtenu via Download Code (Télécharger le code) contient le code de structure et de fonctions du backend — pas de données, pas de fichiers, pas de clés. Cela détermine ce que la migration implique.
Remarque : L'URL et la clé anon dans
.envpointent vers le backend hébergé par MeDo. Si vous ne les remplacez pas, votre application locale continue de parler à la plateforme, pas à votre propre base. Le cœur de la migration est « reconstruire la structure, puis échanger ces deux valeurs ».
2. Télécharger le code de l'application
- Ouvrez l'application dans l'éditeur. Le téléchargement est une fonctionnalité Pro et Max et nécessite une génération terminée — attendez la fin de la génération.
- Cliquez sur l'icône Download Code dans la barre supérieure (à gauche de votre solde de crédits). Une infobulle explique que le package inclut un
README.mdpour la suite du développement. - Cliquez sur Download Code pour confirmer. Le téléchargement coûte 300 crédits.

Vous obtenez la version que vous êtes en train d'éditer. Si vous avez changé les polices, les couleurs ou le contenu en mode Edit ou dans la vue Code, publiez d'abord pour que le package contienne ces changements.
3. Décompresser le code source
Décompressez le package téléchargé et entrez dans le répertoire :
Une structure typique ressemble à ceci :
Remarque : Si
schema.sqlexiste, utilisez-le (section 5, import complet). Sinon, exécutezsupabase db pushpour appliquer les migrations.
4. Préparer les outils
Vous pouvez utiliser VSCode, IntelliJ IDEA ou tout IDE de votre choix pour modifier le code. Pour exécuter et migrer l'application, trois outils sont nécessaires : Node.js 20 ou plus récent, le Supabase CLI, et psql (le client Postgres).
Sur macOS avec Homebrew :
Remarque :
libpqest keg-only. Sipsqlest encore signalé comme « command not found », ajoutez-le à votre PATH avececho 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc, puis rouvrez le terminal.
Sous Windows, installez Node.js LTS, le Supabase CLI via Scoop (scoop install supabase), et PostgreSQL (qui inclut psql). Les commandes ci-dessous sont identiques ; seule la ligne export PATH=... est spécifique à macOS.
Sous Linux, installez Node 20 ou plus récent, le Supabase CLI depuis le binaire de release, et psql via votre gestionnaire de paquets (par exemple sudo apt install postgresql-client).
Vérifiez que les trois affichent une version :
Remarque : Si votre application est un frontend pur sans backend, passez à la section 9 et exécutez-la localement maintenant. Les étapes Supabase (5 à 8) ne s'appliquent qu'aux applications qui stockent des données backend.
5. Créer votre propre projet Supabase
Si vous n'avez pas encore de compte Supabase
Allez sur https://supabase.com, cliquez sur Start your project, et inscrivez-vous avec GitHub ou un e-mail (gratuit). Le plan Free suffit largement pour migrer une application MeDo.

Remarque : Le plan Free autorise au plus 2 projets actifs à la fois. Si vous en avez déjà 2, mettez-en un en pause d'abord, sinon vous ne pourrez pas en créer un nouveau.
Créer le projet
Sur l'accueil de l'organisation, cliquez sur New project et renseignez :
- Project name, par exemple
taskflow-migrate - Database password : cliquez sur Generate a password pour en obtenir un fort, et copiez-le bien (nécessaire pour l'import du schéma ; s'il est perdu, vous ne pourrez que le réinitialiser)
- Region : choisissez celle la plus proche de vos utilisateurs

Cliquez sur Create new project et attendez une à deux minutes le provisionnement.

Collecter quatre identifiants
Allez dans Project Settings et notez ce qui suit. Vous en aurez besoin à chaque étape suivante.
Remarque : La clé anon est publique par conception (protégée par RLS) et peut aller dans le
.envdu frontend. La clé service_role / secret est une clé à accès complet — ne la mettez jamais dans le frontend ni ne la commitez dans git.
6. Importer la structure de la base de données
Utilisez la chaîne de connexion de la section 5 pour charger schema.sql dans la nouvelle base. La chaîne ressemble à postgresql://postgres:<your-DB-password>@db.<project-ref>.supabase.co:5432/postgres.
Remarque : Le
schema.sqlde MeDo utilise une syntaxe défensive (CREATE TABLE IF NOT EXISTS, politiques de stockage encapsulées dansDO $$ ... EXECUTE, buckets avecON CONFLICT DO UPDATE), donc l'import dans un projet tout neuf s'exécute sans conflits.
Sans schema.sql, appliquez les migrations via le CLI à la place :
Vérifier l'import
Vous pouvez aussi voir les tables migrées directement dans le Table Editor de Supabase.

7. Déployer les Edge Functions et configurer les secrets
Vérifiez d'abord si le package contient des fonctions :
S'il n'y a pas de fonctions (beaucoup d'applications sont du anon plus RLS, sans fonctions côté serveur), sautez cette section.
S'il y a des fonctions, déployez-les et reconfigurez leurs secrets :
Remarque : Les secrets des fonctions ne sont pas dans le package source et doivent être reconfigurés manuellement : clés d'API tierces, et tout
SUPABASE_SERVICE_ROLE_KEYréférencé dans les fonctions.
8. Migrer les données (facultatif)
Cette étape exige la chaîne de connexion de la base source (le Supabase hébergé par MeDo). Les utilisateurs habituels n'ont généralement pas d'accès direct à la source ; dans ce cas, les données ne peuvent pas être migrées automatiquement — vous pouvez seulement relancer l'application pour générer des données, ou demander à la plateforme d'aider à l'export. Une application tout juste créée n'a pas de données, vous pouvez donc sauter cette étape.
Si vous pouvez atteindre la base source :
Vérifiez que select count(*) sur les tables principales correspond entre source et cible.
9. Remplacer .env et exécuter en local
Modifiez .env à la racine du projet, en remplaçant l'URL et la clé anon par les valeurs de votre propre projet (collectées à la section 5). Le préfixe des variables dépend du framework, vérifiez donc les noms existants dans votre .env :
Après modification, .env ressemble à peu près à ceci :
Installez les dépendances et démarrez le serveur de développement :
Remarque : N'utilisez pas
npm run dev. MeDo remplace les scriptsdevetbuilddepackage.jsonpar unechofactice, donc ils ne font rien. Utiliseznpx viteà la place.
Ouvrez l'adresse affichée dans le terminal (par exemple http://127.0.0.1:5173/) ; la page d'accueil devrait s'afficher.

Désactiver la confirmation par e-mail
Un nouveau projet Supabase a la confirmation par e-mail activée par défaut, donc après l'inscription il faudrait un e-mail de confirmation avant de pouvoir se connecter. Pour les tests locaux, désactivez-la d'abord : dans la console, allez dans Authentication → Sign In / Providers → Email, désactivez Confirm email, et enregistrez.
Remarque : Désactiver la confirmation (et le raccourci admin-API ci-dessous) est réservé aux tests locaux. Avant de passer en production, réactivez Confirm email pour que les vrais utilisateurs vérifient leur adresse.
Le plan Free a aussi une limite de débit d'envoi d'e-mails. Si vous voyez encore email rate limit exceeded après avoir désactivé la confirmation, utilisez la clé de service pour créer un utilisateur pré-confirmé via l'API d'administration :
Vérifier que les données arrivent dans votre base
Dans l'application, inscrivez-vous ou connectez-vous et créez un enregistrement, puis interrogez la base :
Après connexion, vous arrivez dans l'espace de travail, avec des données provenant de votre propre Supabase.

Les trois tables renvoient les enregistrements correspondants, ce qui prouve que toute la chaîne — inscription, profil créé par déclencheur, écriture métier — atteint votre propre Supabase.
10. Pièges courants
11. Liste de contrôle de migration
- Outils prêts :
supabase,psql,node20 ou plus récent - Télécharger et décompresser le code, confirmer que
supabase/schema.sqlexiste - Créer votre propre projet Supabase, enregistrer le mot de passe de la base
- Collecter quatre identifiants : URL, clé anon, chaîne de connexion, clé de service
- Exécuter
psql -f supabase/schema.sql, vérifier les tables, RLS et déclencheurs - S'il y a des fonctions, les déployer et configurer les secrets (sinon sauter)
- Si des données sont nécessaires, les migrer (uniquement si vous atteignez la base source, sinon sauter)
- Remplacer l'URL et la clé anon dans
.env - Désactiver Confirm email
- Exécuter
pnpm installetnpx vite, puis s'inscrire, se connecter et créer des données - Interroger la base pour confirmer que les données atteignent votre propre Supabase