YubiGeek

Dokku : créez votre propre Cloud NodeJS (PaaS)

You shall not PaaS !

Like
Like Love Haha Wow Sad Angry
21

Aujourd’hui, je vais vous présenter un outil open source qui vous permettra de mettre en place un PaaS (Platform as a Service, Plateforme en tant que Service) à la manière Heroku. Le but de ce système est de faciliter le déploiement d’application tels que NodeJS, Ruby on Rails sur vos serveurs en une seule commande (git push dokku master).

Vous développez une application NodeJS, vous terminez le projet, et vous souhaitez déployer l’application, il suffira alors d’ajouter les fichiers que vous voulez “commiter” avec GIT, puis de les envoyer sur le dépôt distant créé par Dokku. Sur la branche “develop” de votre dépôt, il n’y aura aucun déploiement, par contre, sur la branche “master” de votre dépôt, Dokku compilera votre application avec Buildpack et rendra votre application en ligne.

Dokku se compose de plusieurs modules :

  • Gitreceive : interface GIT & SSH
  • Buildpack : préparation des applications (Webpack, etc…)
  • Docker : gestion de containers
  • Nginx : gestion du trafic HTTP

Prérequis

Pour ce tutoriel, j’utiliserai un serveur VPS de chez OVH avec une distribution LinuxUbuntu 14.04 LTS (Long-Term Support). Et j’utiliserai aussi un terminal de commande disposant de GIT & SSH (cmder sur Windows 10).

Dokku fonctionne très bien sur ces autres OS :

  • Ubuntu 16.04 x64
  • Ubuntu 14.04 x64
  • Debian 8.2 x64
  • CentOS 7 x64 (expérimental) avec l’ensemble FQDN (Fully Qualified Domain Name, ou nom de domaine complètement qualifié)

Je vous conseille d’utiliser une machine dédiée ou virtuelle avec au moins 1Go de mémoire système (RAM).

Dokku est conçu pour être utilisé sur une nouvelle installation de machine et doit installer toutes les dépendances nécessaires lors de l’installation via la méthode “bootstrap”.

Installation de Dokku

Pour installer la dernière version stable de Dokku, vous pouvez exécuter les commandes “shell” suivantes :

Le processus d’installation prend environ 5 à 10 minutes selon la vitesse de connexion Internet de votre machine dédiée ou virtuelle. Si vous utilisez Debian 8 ou Ubuntu 14.04, assurez-vous que votre gestionnaire de paquets est configuré pour installer une version suffisamment récente de Nginx, sinon l’installation peut échouer en raison de “dépendances non satisfaites” liées à Nginx.

Configurer la clé SSH et les paramètres Virtualhost

Une fois l’installation de Dokku terminée, vous pouvez ouvrir un navigateur pour configurer vos paramètres de clé SSH et de Virtualhost. Pour cela, ouvrez le navigateur de votre choix (Google Chrome par exemple) et accédez à l’adresse IP de votre machine dédiée ou virtuelle, ou au domaine que vous auriez attribué à cette adresse IP, et configurez Dokku via l’administrateur Web.

Il suffira de saisir votre SSH “Public Key”, le nom d’hôte (hostname) de votre machine dédiée ou virtuelle pour terminer la configuration de l’installation de Dokku. Si vous ne terminez pas la configuration via le programme d’installation Web (même si vous configurez des clés SSH et des hôtes virtuels dans le cas contraire) votre installation Dokku restera vulnérable à toute personne trouvant la page de configuration et insérant sa clé.

Déployez votre première application sur Dokku

Une fois que Dokku a été configuré avec au moins un utilisateur, les applications peuvent être déployées via une commande (git push). Pour voir rapidement le déploiement de Dokku en action, vous pouvez utiliser l’exemple d’application Heroku Ruby on Rails.

Avant de déployer cette application sur Dokku, il faut d’abord créer l’application sur l’hôte Dokku. Vous aurez besoin de SSH sur votre ordinateur pour exécuter cette commande.

Connectez-vous à votre machine dédiée ou virtuelle avec cette commande :

Puis saisissez la commande suivante pour créer votre première application Dokku :

Lorsque vous créez une nouvelle application, Dokku par défaut ne fournit pas de banque de données telles que MySQL ou PostgreSQL. Vous aurez besoin d’installer des “plugins” (extensions) pour gérer cela, mais heureusement, Dokku a des “plugins” officiels pour les bases de données. Notre exemple d’application nécessite un service PostgreSQL :

Une fois la création du service terminée, définissez la variable d’environnement “POSTGRES_URL” en reliant le service :

Vous pouvez maintenant déployer l’application “ruby-rails-exemple” sur votre serveur Dokku. Tout ce que vous avez à faire est d’ajouter une commande pour nommer l’application. Les applications sont créées à la volée sur le serveur Dokku.

Le terminal affichera alors la compilation de votre application et rendra disponible votre application une fois que le terminal aura rendu la main.

Pour en savoir plus sur les commandes, les “plugins” disponible sur Dokku, vous pouvez consulter la documentation Anglaise, qui, au passage, est très bien écrite !

Like
Like Love Haha Wow Sad Angry
21

Maxence Rose

Passionné de high-tech et fasciné par Google, j'écris ce que bon me semble et je teste pour vous les derniers services du Web. Ce blog me permet de m'exprimer sur les différents produits de Google, en premier lieu ses services et les appareils Android.

Un seul commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Maxence Rose

Passionné de high-tech et fasciné par Google, j'écris ce que bon me semble et je teste pour vous les derniers services du Web. Ce blog me permet de m'exprimer sur les différents produits de Google, en premier lieu ses services et les appareils Android.