Guide de déploiement

Héberger Metabase sur un VPS : tableaux de bord BI open source

Déployer sur un VPS Cloud →

Tutoriel

Héberger Metabase sur un VPS : tableaux de bord BI open source

Self-hosting5 min de lecture6 étapes

Metabase (AGPL, ~46k étoiles) est le moyen le plus simple de poser des tableaux de bord en libre-service au-dessus d’une base de données que vous exploitez déjà — PostgreSQL, MySQL, ClickHouse et bien d’autres — sans abonnement par utilisateur en dollars auprès d’un SaaS de BI étranger. Les utilisateurs non techniques construisent questions et graphiques en cliquant ; les analystes basculent en SQL brut quand ils en ont besoin. Dans ce guide, vous déployez Metabase et son Postgres de métadonnées compagnon sous forme de pile Docker à deux conteneurs sur un VPS, pour que toute votre couche analytique reste sur une infrastructure que vous maîtrisez.

Sommaire· Pourquoi auto-héberger vos tableaux de bord BI1/5
  1. 01Pourquoi auto-héberger vos tableaux de bord BI
  2. 02Ce que Metabase vous apporte
  3. 03Prérequis
  4. 04Déployer Metabase sur votre VPS
  5. 05Faites pointer Metabase vers une réplique en lecture, pas vers votre base primaire

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

  1. 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.yml avec deux services : metabase/metabase:v0.62.3.6 et un postgres:16 compagnon. Reliez Metabase à Postgres avec MB_DB_TYPE=postgres, MB_DB_HOST=metabase-db, MB_DB_DBNAME=metabaseappdb, MB_DB_PORT=5432, MB_DB_USER=metabase et un MB_DB_PASS robuste. Utilisez le même mot de passe pour le POSTGRES_PASSWORD du conteneur Postgres, montez un volume nommé pour /var/lib/postgresql/data, et définissez restart: unless-stopped sur les deux.

  2. 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é avec curl -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.

  3. 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.

  4. 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.

  5. 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/Caddyfile contenant bi.votre-domaine.com { reverse_proxy localhost:3000 } et systemctl reload caddy pour un certificat Let’s Encrypt automatique. Faites d’abord pointer l’enregistrement DNS A de bi.votre-domaine.com vers votre VPS, restreignez le port 3000 avec ufw 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.

  6. 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.

Déployez Metabase sur votre VPS en un clic

Cessez de payer par utilisateur en dollars pour de la BI hébergée. ServOrbit provisionne une instance Metabase prête à l’emploi — Postgres compagnon pré-câblé, vérifié par healthcheck et accessible depuis votre navigateur en quelques minutes — sur une infrastructure que vous maîtrisez.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet