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 :

wget https://raw.githubusercontent.com/dokku/dokku/v0.12.7/bootstrap.sh ; 
sudo DOKKU_TAG = v0.12.7 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 [email protected]: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 [email protected] -p 22

Puis saisissez la commande suivante pour créer votre première application 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.git
dokku 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 [email protected]:ruby-rails-exemple
git 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 !

Dokku : créez votre propre Cloud NodeJS (PaaS)
Voter pour cet article
1 commentaire
Laisser un commentaire

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

Inscrivez vous à notre newsletter

Soyez informé des derniers articles sur YubiGeek. Saisissez votre adresse email et validez le formulaire. Un email de confirmation vous sera communiqué.

Vous devriez également aimer

Tout savoir sur les CMS

« Système de Gestion de Contenu » traduit de l’anglais « Content Management System » est le…

Chatbot : créer une Intelligence Artificielle sur les réseaux sociaux

Un Chatbot, ou “agent conversationnel” est un agent qui dialogue avec un…

Couleurs des réseaux sociaux

Il arrive parfois que vous cherchiez les couleurs de votre réseau social…

Facebook API : comment obtenir un jeton d’accès qui n’expire pas

Si vous êtes développeur, et que vous utilisez l’API de Facebook, vous…