Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
dimanche 12 février 2017

:: Simple application avec Dancer2 ::

Présentation

Dans cet exemple, on va créer une simple application web avec Dancer2.

Pour le déploiement, on se basera sur starman pour la gestion de l'application avec Nginx en frontal.

Installation de Dancer2

Préparation de l'environnement

Afin de sécuriser l'application, on fait tourner Starman (notre serveur d'application) sous une identité propre que nous appelerons starman. La seule manière d'y accéder sera via l'utilisateur root.

# adduser --gecos "" --disabled-password starman

Brewing Perl

Afin de séparer la distribution Perl installée sur le système (system perl) de celle que l'on souhaite utiliser pour lancer notre application, nous utiliserons PerlBrew, un outil de gestion des versions de Perl.

Pour installer PerlBrew, cf.Gestion des versions de Perl avec Perlbrew

  • Liste des versions Perl disponibles à l'installation :

    # su - starman
    $ perlbrew available
      perl-5.23.3
      perl-5.22.0
      perl-5.20.3
      perl-5.18.4
      perl-5.16.3
      perl-5.14.4
      perl-5.12.5
      perl-5.10.1
      perl-5.8.9
      perl-5.6.2
      perl5.005_04
      perl5.004_05
      perl5.003_07
  • Installation de la dernière version stable (nombre pair) :

    $ perlbrew install perl-5.22.0
  • Vérification de la version installée (deux méthodes) :

    1. Lister les versions installées :

      $ perlbrew list
        perl-5.22.0
    2. Lister les versions disponibles (remarquez le "i" devant la version installée) :

      $ perlbrew available
        perl-5.23.3
      i perl-5.22.0
        perl-5.20.3
        perl-5.18.4
        perl-5.16.3
        perl-5.14.4
        perl-5.12.5
        perl-5.10.1
        perl-5.8.9
        perl-5.6.2
        perl5.005_04
        perl5.004_05
        perl5.003_07

Installation des modules CPAN

Avant tout, on installe un client cpan. Pour cela, on utilise la commande PerlBrew permettant d'installer cpanminus.

$ perlbrew install-cpanm

Puis on installe les modules :

$ cpanm Dancer2 Starman Daemon::Control

Création de l'application

La méthode la plus rapide pour créer son application est d'utiliser la commande dancer2 qui met en place l'arborescence des répertoires et fichiers à partir d'un squelette standard :

$ dancer2 -a Xzz::Blog

Cette commande crée le répertoire Xzz-Blog ainsi qu'un ensemble de sous-répertoires et fichiers.

Notez le double : dans le nom qui demande à dancer2 de créer le module "Blog" dans la sous-arborescence "Xzz", ce qui permet de cloisonner différentes parties de l'application en ajoutant simplement d'autres modules (ex: Xzz::Admin, Xzz::Galerie, etc.)

Pour lancer l'application, exécuter la commande suivante :

$ plackup -R lib bin/app.psgi 
Watching lib bin/lib bin/app.psgi for file updates.
HTTP::Server::PSGI: Accepting connections at http://0:5000/

L'application (vide) est dorénavant disponible à l'adresse http://AdresseServeur:5000. (Ctrl+C pour stopper)

Mise en place du service systemd Starman

Pour lancer automatiquement notre application, on crée le fichier /etc/systemd/system/starman.service avec le contenu ci-dessous :

$ sudo vi /etc/systemd/system/starman.service

[Unit]
Description=Starman
After=syslog.target

[Service]
Type=forking
ExecStart=/home/starman/perl5/perlbrew/perls/perl-5.18.4/bin/starman --listen 127.0.0.1:5001 --env development --daemonize /home/starman/apps/MCO/bin/app.psgi
Restart=always

[Install]
WantedBy=multi-user.target

Lancement et activation du service au démarrage :

$ sudo systemctl start starman.service
$ sudo systemctl enable starman.service

Installation et configuration de Nginx

$ sudo aptitude install nginx

--- A SUIVRE ---