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

Aujourd’hui, je vais vous montrer un outil open source que vous pouvez utiliser pour configurer une plate-forme en tant que service (PaaS) de style Heroku. Le but de ce système est de faciliter le déploiement d’applications comme NodeJS, Ruby on Rails, etc. sur le serveur avec une seule commande (git push dokku master).

Je développe une application NodeJS et je souhaite terminer le projet et déployer l’application. Il ne vous reste plus qu’à ajouter les fichiers que vous souhaitez « valider » dans GIT et à les télécharger dans le référentiel distant créé par Dokku. Il n’y a pas de déploiements dans la branche « develop » du référentiel, mais dans la branche « master » du référentiel, Dokku utilise des Buildpacks pour compiler l’application et l’exécuter.

Docku se compose de plusieurs modules:

  • Gitreceive : interface GIT et SSH
  • Buildpack : Préparation de votre application (ex. Webpack)
  • Docker : gestion des conteneurs
  • Nginx : gestion du trafic HTTP

Prérequis

Ce tutoriel utilise un serveur VPS OVH avec une distribution Linux : Ubuntu 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 :

wgethttps://raw.githubusercontent.com/dokku/dokku/v0.20.0/bootstrap.sh;sudo DOKKU_TAG=v0.20.0 bash bootstrap.sh

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

Après avoir installé Dokku, vous pouvez ouvrir un navigateur pour configurer les clés SSH et les paramètres de l’hôte virtuel. Pour cela, ouvrez le navigateur de votre choix (comme Google Chrome), rendez-vous sur l’adresse IP de votre machine dédiée ou virtuelle, ou le domaine que vous avez attribué à cette adresse IP, et configurez Dokku via l’administration web.

Il ne vous reste plus qu’à entrer la clé publique SSH, qui est le nom d’hôte (hostname) de votre machine dédiée ou machine virtuelle, et vous avez fini de configurer votre installation Dokku. Si vous ne terminez pas la configuration via le programme d’installation Web (même si vous configurez vos clés SSH et vos hôtes virtuels ailleurs), votre installation Dokku restera vulnérable à toute personne trouvant la page de configuration et collant les clés.

Déployez votre première application sur Dokku

Une fois Dokku configuré avec au moins un utilisateur, vous pouvez déployer votre application via la commande (git push). Pour voir rapidement le déploiement de Dokku en action, vous pouvez utiliser l’exemple d’application Heroku Ruby on Rails.

git clone git@github.com:heroku/ruby-rails-sample.git ruby-rails-example

Avant de déployer cette application sur Dokku, nous devons d’abord créer l’application sur l’hôte Dokku. Vous avez besoin d’une connexion SSH à votre ordinateur pour exécuter cette commande.

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

ssh utilisateur@domaine.fr -p 22

Créez ensuite votre première application sur Dokku en tapant la commande suivante :

dokku apps:create ruby-rails-exemple

Par défaut, Dokku ne monte pas de bases de données telles que MySQL ou PostgreSQL lors de la création d’une nouvelle application. Vous devez installer un « plugin » (extension) pour gérer cela, mais heureusement, Dokku a un « plugin » officiel pour sa base de données. L’exemple d’application nécessite un service PostgreSQL:

 plugin sudo dokku : https://github.com/dokku/dokku-postgres.gitdokku installer postgres : créer une base de données rails

Après avoir créé le service, liez-le et définissez la variable d’environnement POSTGRES_URL.

dokku postgres : lien rails-base de données ruby-rails-exemple

Vous pouvez maintenant déployer votre application ruby-rails-exemple sur votre serveur dokku. Ajoutez simplement une commande pour nommer votre application. Les applications sont construites à la volée sur les serveurs Dokku.

cd ruby-rails-example git remote add dokku dokku@domaine.fr:ruby-rails-examplegit push dokku master

Le terminal affiche alors la configuration de l’application et autorise l’utilisation de l’application lorsque le terminal reprend la main. 

Pour plus d’informations sur les commandes, « plugins » disponibles pour Dokku, veuillez vous référer à la documentation en anglais.

Recommended For You

About the Author: Alex Bruno

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *