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

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

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

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

Installation de Dokku

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

wget https://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

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.

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

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 :

ssh user@domaine.fr -p 22

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

dokku apps:create ruby-rails-exemple

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 :

sudo dokku plugin:install https://github.com/dokku/dokku-postgres.gitdokku postgres:create rails-database

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

dokku postgres:link rails-database ruby-rails-exemple

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.

cd ruby-rails-exemple git remote add dokku dokku@domaine.fr:ruby-rails-exemplegit push dokku master

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 !

Total
0
Shares
Laisser un commentaire
Previous Post
Ubuntu : comment l’installer sur Windows 10 ?

Ubuntu : comment l’installer sur Windows 10 ?

Next Post
iPhone reconditionné, quels sont les avantages à connaître ?

iPhone reconditionné, quels sont les avantages à connaître ?

Related Posts