Loading...

Dans cet article, nous allons détailler pas à pas comment installer Docker sur une machine Debian, déployer Metabase dans un conteneur Docker et rendre votre instance accessible sur Internet via votre nom de domaine personnalisé. Nous verrons également comment configurer Nginx comme reverse proxy et sécuriser votre site avec un certificat SSL gratuit via Certbot.

Illustration de l'architecture

L'image ci-dessous représente l'architecture de déploiement décrite dans cet article :

Description : L'utilisateur accède à l'URL https://sous-domaine.domaine.com.com, la résolution DNS redirige vers le serveur Debian, où Nginx agit comme reverse proxy et termine la connexion SSL grâce à Certbot, puis redirige le trafic vers Metabase tournant dans un conteneur Docker sur le port 3000.

1. Installation de Docker sur Debian

a. Mettre à jour le système

Commencez par mettre à jour la liste des paquets et installer les mises à jour disponibles :

sudo apt update
sudo apt upgrade -y


b. Installer les dépendances nécessaires

Installez les paquets qui permettent à apt d’utiliser des dépôts via HTTPS :

sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common


c. Ajouter la clé GPG officielle de Docker

Ajoutez la clé GPG officielle de Docker pour vérifier l’authenticité des paquets :

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Vérifiez que la clé a bien été ajoutée :

sudo apt-key fingerprint 0EBFCD88


d. Ajouter le dépôt Docker APT

Ajoutez le dépôt officiel de Docker à votre liste de sources. Si la commande add-apt-repository n'est pas disponible, utilisez :

echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list


e. Installer Docker Engine

Mettez à jour le cache de apt et installez Docker :

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io


f. Vérifier l'installation

Testez l'installation avec la commande suivante qui exécute un conteneur de test :

sudo docker run hello-world


2. Déploiement de Metabase dans un conteneur Docker

a. Lancer le conteneur Metabase

Pour déployer Metabase sur un port interne (ici le port 3000) et ajouter une politique de redémarrage, utilisez :

sudo docker run -d -p 3000:3000 --restart unless-stopped --name metabase metabase/metabase

Note : Si un ancien conteneur existe, supprimez-le avec :

sudo docker rm -f metabase


3. Publication de Metabase sur votre nom de domaine

a. Configuration DNS

1. Connectez-vous au panneau de gestion DNS de votre hébergeur.
2. Créez un enregistrement de type A pour le sous-domaine dataviz qui pointe vers l’adresse IP publique de votre serveur.
3. Attendez la propagation des DNS (cela peut prendre de quelques minutes à quelques heures).

b. Installation et configuration de Nginx comme reverse proxy

i. Installer Nginx

Installez Nginx sur votre serveur Debian :

sudo apt update
sudo apt install nginx -y


ii. Créer la configuration de site pour votre domaine

Créez un nouveau fichier de configuration pour sous-domaine.domaine.com.com :

sudo nano /etc/nginx/sites-available/sous-domaine.domaine.com.com

Ajoutez-y le contenu suivant :

server {
    listen 80;
    server_name sous-domaine.domaine.com.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


iii. Activer la configuration et recharger Nginx

Activez le site en créant un lien symbolique :

sudo ln -s /etc/nginx/sites-available/sous-domaine.domaine.com.com /etc/nginx/sites-enabled/

Testez la configuration :

sudo nginx -t

Puis rechargez Nginx :

sudo systemctl reload nginx


c. Installation de Certbot et obtention d’un certificat SSL

i. Installer Certbot et le plugin Nginx

Installez Certbot et le plugin Nginx pour obtenir des certificats SSL gratuits :

sudo apt install certbot python3-certbot-nginx -y


ii. Obtenir et installer le certificat SSL

Lancez Certbot pour configurer automatiquement SSL sur votre domaine :

sudo certbot --nginx -d sous-domaine.domaine.com.com

Suivez les instructions affichées (fourniture d'une adresse email, acceptation des conditions, redirection HTTP vers HTTPS, etc.).

iii. Tester le renouvellement automatique

Certbot met en place une tâche planifiée pour renouveler automatiquement les certificats. Vous pouvez tester le renouvellement avec :

sudo certbot renew --dry-run


4. Accéder à votre instance Metabase

Après avoir effectué les étapes précédentes, rendez-vous sur https://sous-domaine.domaine.com.com depuis votre navigateur. Vous devriez voir l'interface Metabase, accessible de manière sécurisée grâce à HTTPS.

Description : L'utilisateur accède à l'URL https://sous-domaine.domaine.com.com, la résolution DNS redirige vers le serveur Debian, où Nginx agit comme reverse proxy et termine la connexion SSL grâce à Certbot, puis redirige le trafic vers Metabase tournant dans un conteneur Docker sur le port 3000.

Conclusion

En suivant ces étapes, vous avez installé Docker sur Debian, déployé Metabase dans un conteneur Docker avec une politique de redémarrage automatique, et configuré Nginx comme reverse proxy pour publier votre instance Metabase sur le domaine sous-domaine.domaine.com.com avec un certificat SSL gratuit. Cette approche garantit une mise en production sécurisée et fiable, tout en facilitant la maintenance et le déploiement de vos services.

Pour plus d'informations, consultez la documentation officielle de Docker, Metabase et Certbot.

Pattern Pattern Pattern

Questions Fréquemment Posées

Développer un MVP (Minimum Viable Product) avec notre agence vous permet de tester rapidement votre idée sur le marché avec un investissement initial réduit. Cela vous aide à valider vos hypothèses, recueillir des retours utilisateurs précieux et itérer efficacement avant de lancer un produit complet.

Nous suivons une méthodologie en quatre étapes : Découverte et Analyse, Conception et Planification, Développement et Itération, puis Lancement et Support Post-lancement. Chaque étape est conçue pour assurer une progression structurée et flexible, garantissant ainsi la qualité et la rapidité de livraison de votre MVP.

Nous utilisons une variété de technologies modernes et open-source telles que React, Node.js, Python, PHP, Angular, etc., pour garantir que votre MVP est à la fois performant et évolutif. Nous sélectionnons les technologies en fonction des besoins spécifiques de votre projet.

Nous mettons en place des mécanismes de suivi et d'analyse des performances dès le lancement. Nous recueillons activement les retours des utilisateurs, analysons les données pour identifier les améliorations nécessaires et intégrons ces retours dans les itérations suivantes pour optimiser votre produit.

Oui, nous offrons un support continu après le lancement du MVP, incluant l'assistance technique, les mises à jour régulières et les optimisations pour assurer la croissance et la scalabilité de votre produit. Notre équipe reste disponible pour vous accompagner à chaque étape.

Le coût de développement d'un MVP dépend de la complexité des fonctionnalités et des technologies utilisées. Nous travaillons avec vous pour définir un budget adapté à vos besoins, en garantissant une transparence totale et un retour sur investissement optimal.
En partant d'une feuille blanche pour une première version d'une application, il faut compter entre 20k€ et 30k€ pour un MVP de qualité. Ci-dessous, un exemple de répartition d'un budget sur un projet "from scratch".

Phase Etape % du budget
Conception et planification Cadrage 5%
Design UI/UX 10%
Développement et itérations Delivery du MVP 50%
Outils relation client 5%
Gestion de projets 15%
Post lancement Support 10%
Marketing / Ads 5%
TOTAL 100%

Top