Pourquoi auto-héberger vos tableaux de bord BI
Les outils de BI hébergés sont pratiques… jusqu’à ce que la facture par utilisateur tombe — et jusqu’à ce que vous réalisiez que vos données produit, chiffre d’affaires et clients sont recopiées dans un SaaS tiers facturé en dollars. Metabase renverse la donne : il est open source (AGPL), auto-hébergeable, et se connecte à une base de données qui vous appartient déjà. Faites-le tourner sur un VPS derrière votre propre domaine et votre couche analytique ne quitte jamais votre serveur. Vous payez un coût mensuel fixe pour le VPS, pas un abonnement par utilisateur qui gonfle, et vos données restent sur une infrastructure que vous maîtrisez — ce qui, pour une équipe marocaine, signifie aussi la souveraineté des données, pas un datacenter sur un autre continent.
Ce que Metabase vous apporte
- Un constructeur de requêtes visuel pour que les utilisateurs non techniques créent graphiques et questions en cliquant — avec un éditeur SQL complet pour les analystes.
- Des tableaux de bord interactifs avec filtres, exploration détaillée (drill-through) et actualisation planifiée.
- Des connecteurs pour plus de 20 bases de données : PostgreSQL, MySQL/MariaDB, SQL Server, ClickHouse, BigQuery, Redshift, Snowflake et d’autres encore.
- Des abonnements programmés et des alertes de seuil envoyés par e-mail ou Slack.
- Des permissions au niveau des groupes et des collections, plus des contrôles par ligne et par colonne, pour que chaque équipe ne voie que ses propres données.
- De l’analytique embarquée pour intégrer des tableaux de bord signés et filtrés directement dans votre propre application.
- Open source sous AGPL — aucun frais par utilisateur, son propre état stocké dans une base de données Postgres qui vous appartient.
Prérequis
Un VPS sous Ubuntu 22.04 (ou Debian 12) avec Docker installé. Metabase tourne sur la JVM, alors donnez-lui de la marge : 2 Go de RAM est le minimum réaliste et 4 Go est confortable pour une petite équipe. Le déploiement se compose de deux conteneurs — Metabase lui-même et un postgres:16 compagnon qui stocke les métadonnées propres à Metabase (utilisateurs, tableaux de bord, questions enregistrées). Aucun domaine n’est strictement requis — Metabase répond sur le port 3000 via l’IP de votre serveur — mais vous voudrez un reverse proxy pour le HTTPS en production.
Déployer Metabase sur votre VPS
Créer une pile docker-compose
Metabase doit stocker son propre état dans une vraie base de données, pas dans le fichier H2 embarqué par défaut. Créez un
docker-compose.ymlavec deux services :metabase/metabase:v0.62.3.6et unpostgres:16compagnon. Reliez Metabase à Postgres avecMB_DB_TYPE=postgres,MB_DB_HOST=metabase-db,MB_DB_DBNAME=metabaseappdb,MB_DB_PORT=5432,MB_DB_USER=metabaseet unMB_DB_PASSrobuste. Utilisez le même mot de passe pour lePOSTGRES_PASSWORDdu conteneur Postgres, montez un volume nommé pour/var/lib/postgresql/data, et définissezrestart: unless-stoppedsur les deux.Lancer la pile et attendre le démarrage
Lancez
docker compose up -d. Au premier démarrage, Metabase exécute ses migrations de base de données sur Postgres, ce qui prend 60 à 120 secondes sur un petit VPS — c’est normal. Sondez la disponibilité aveccurl -f http://localhost:3000/api/health; dès qu’il renvoie{"status":"ok"}, l’application est prête. La pile compose conditionne Metabase au healthcheck de Postgres, si bien que l’application ne démarre jamais avant que sa base de données ne soit prête.Terminer l’assistant de configuration
Ouvrez
http://<your-server-ip>:3000. Metabase redirige vers l’assistant de configuration : créez le compte administrateur, puis connectez la base de données que vous voulez réellement analyser — en général le PostgreSQL ou le MySQL de votre application, idéalement une réplique en lecture pour que les requêtes analytiques ne touchent jamais votre base primaire de production. Metabase scanne le schéma et vos tables sont interrogeables en quelques secondes.Construire un tableau de bord
Créez deux ou trois questions avec le constructeur de requêtes visuel (un décompte dans le temps, une répartition par catégorie), enregistrez-les dans une collection et épinglez-les sur un tableau de bord doté d’un filtre par date. Basculez n’importe quelle question vers l’éditeur SQL natif lorsque vous avez besoin d’un contrôle total. Mettez en place un abonnement par e-mail ou Slack pour recevoir le tableau de bord à intervalles réguliers.
Ajouter le HTTPS et verrouiller l’accès
Placez Metabase derrière un reverse proxy pour obtenir un vrai domaine et un certificat. Avec Caddy :
apt install caddy, puis un/etc/caddy/Caddyfilecontenantbi.votre-domaine.com { reverse_proxy localhost:3000 }etsystemctl reload caddypour un certificat Let’s Encrypt automatique. Faites d’abord pointer l’enregistrement DNS A debi.votre-domaine.comvers votre VPS, restreignez le port 3000 avecufw allow from <proxy> to any port 3000, et définissez un mot de passe administrateur robuste — quiconque parvient à se connecter peut interroger toutes les bases de données connectées.Se connecter la première fois
Ouvrez l'adresse juste après l'installation : Metabase affiche un écran de bienvenue puis « Let's get started », et vous crée un compte à partir de votre nom, votre e-mail et le mot de passe que vous choisissez — ce premier compte est automatiquement administrateur.
Faites pointer Metabase vers une réplique en lecture, pas vers votre base primaire
Les requêtes analytiques peuvent être lourdes. Connectez Metabase à une réplique en lecture ou à une base de reporting dédiée plutôt qu’à votre base primaire de production, ainsi une requête de tableau de bord lente ne ralentira jamais votre application en production. Sur un seul VPS, vous pouvez faire tourner une réplique légère dans son propre conteneur sur le même réseau Docker privé — Metabase l’atteint par son nom de service et votre base primaire reste intacte.