Configurer Laravel Horizon sur Infomaniak

Laravel Horizon est un outil de gestion pour vos tâches asynchrones utilisant redis, il vous permet de surveiller la bonne exécution de vos tâches, d’extraire des métriques quant à leur exécution et même de relancer celles qui ont échoués.

Ce package est simple à utiliser mais la configuration de celui-ci l’est un peu moins, notamment lorsque vous devez recourir à un hébergeur tiers, nous allons d’ailleurs voir comment configurer Horizon sur l’hébergeur suisse Infomaniak.

Les prérequis Infomaniak :

  • Un serveur cloud dédié Infomaniak
  • Un accès SSH

Les prérequis Laravel :

  • Le package Laravel Horizon installé dans votre application

Configuration Infomaniak

Le moyen le plus simple d’installer les packages nécessaires pour utiliser Horizon est de passer par l’utilitaire appelé « Fast installer » disponible dans l’interface de gestion de votre serveur cloud dédié.

Dans cet utilitaire vous trouverez une multitude de logiciels et outils pouvant être installés sur votre serveur, mais ceux qui nous intéressent sont les suivants :

  • Redis
  • SystemD

Redis est un système de base de données clé-valeur à haute performance et SystemD permet l’exécution de processus en arrière-plan (comme Laravel Horizon).

Grâce à SystemD le service Horizon sera exécuté et plus important relancé en cas d’arrêt.

Fichier de configuration SystemD

Le fichier de configuration nécessaire pour utiliser SystemD est très simple, il vous suffit de spécifier le chemin absolu vers le fichier artisan de votre application.

[Unit]
Description=Laravel Horizon Queue Manager
After=network.target auditd.service

[Service]
ExecStart=/usr/bin/php /home/clients/VOTRE_ID_CLIENT/sites/VOTRE_SITE/artisan horizon
Restart=always

[Install]
WantedBy=multi-user.target

Ce fichier est à stocker dans un dossier spécifique à SystemD :

~/.config/systemd/user/

Dans cet exemple le fichier créé s’appelle « horizon.service », il peut être créé avec Nano par exemple en utilisant la commande :

nano ~/.config/systemd/user/horizon.service

Mais comment est-ce que je trouve le chemin absolu de mon application ?

Le plus simple est de vous connecter en SSH et de vous rendre à la racine de votre application et d’exécuter la commande pwd ainsi :

$ pwd

// chemin absolu de votre application
/home/clients/VOTRE_ID_CLIENT/sites/VOTRE_SITE

Commandes utiles

Maintenant que votre fichier a été créé vous êtes prêt à utiliser Horizon mais il ne vas pas s’exécuter par lui-même, vous devez autoriser le fichier de configuration et l’exécuter.

Autoriser le fichier de configuration

systemctl —user enable horizon

Exécuter le fichier de configuration

systemctl —user start horizon

Arrêter l’exécution du fichier de configuration

systemctl —user stop horizon

Conclusions

Votre Horizon devrait être en cours d’exécution et celui-ci devrait être relancé en cas d’arrêt, vous pouvez vérifier que Horizon tourne correctement dans son panneau de commande.

Laisser un commentaire

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