(tutoriel) installer et utiliser huginn - outil de veille open source
TRANSCRIPT
Installer et utiliser HuginnOutil de veille open source
Par Antoine Henry – [email protected]
Introduction 1/2
Après la fermeture de Yahoo Pipes, comme beaucoup de personnes faisant de
la veille, j’ai cherché un moyen de remplacer cet outil simple et puissant.
Huginn est une solution de substitution très intéressante Yahoo Pipes, l’outil
propose en effet les mêmes fonctions de bases (notamment agrégation et
traitement des flux RSS), mais il propose aussi de se connecter à de nombreux
services en ligne (Twitter, météo, XKCD, …). Huginn fonctionne grâce à des
agents qui vont accomplir des actions bien précises qui vous permettront de
gérer votre veille comme bon vous semble.
Huginn requiert un serveur (préférez un serveur sur linux) sur lequel est installé
Ruby, MySQL et Git (nous n’aborderons pas l’installation des ces dépendances
techniques dans ce tutoriel, de nombreuses ressources sont disponibles en
ligne). Cet outil nécessite la maîtrise de certaines notions techniques mais je vais
m’efforcer à faire en sorte que ce tutoriel soit simple et accessible pour tous.
Introduction 2/2
Huginn est notamment développé par Andrew Cantino. Les sources sont
disponibles sur Github, où l’outil est régulièrement mis à jour.
Les développeurs sont très réactifs, en cas de problème n’hésitez pas à les
contacter. Vous pouvez aussi participer au développement de l’outil,
Github étant une plateforme collaborative pour le code informatique.
Passons maintenant à l’installation de Huginn sur notre serveur. (Les
commandes à faire depuis le terminal ainsi que le nom des fichiers sont en
italique).
Installation depuis les sources
Une fois votre serveur et MySQL installés et configurés, nous allons pouvoir
commencer par installer Huginn.
Placez vous dans le dossier où vous souhaitez installer Huginn, puis avec un
terminal, nous allons lancer la commande suivante :
git clone https://github.com/cantino/huginn.git
Elle va permettre de récupérer Huginn depuis Github et de l’installer sur
votre serveur.
Nous devons maintenant configurer le fichier .env présent dans le dossier
qui vient d’être créer suite à notre commande. Vous pouvez utiliser votre
éditeur de texte préféré (vi, vim, emacs, …)
Configuration de Huginn
Depuis le dossier Huginn, faites cp .env.example .env. Nous allons maintenant éditer le fichier .env qui vient d’être créé.
Vous verrez dans le fichier cette ligne : APP_SECRET_TOKEN=REPLACE_ME_NOW!
Pour créer ce token, ressortez du fichier et faites depuis le terminal rake secret pour générer le code a insérer à la place de REPLACE_ME_NOW
Dans DOMAIN, si vous êtes sur un serveur, remplacez localhost par l’adresse ipde votre serveur (via la commande ifconfig ou utilisez la même ip que vous utilisez pour vous connecter en ssh à votre serveur).
En dessous de DOMAIN, vous pouvez configurer le port sur lequel écoute Huginn (par défaut 3000).
Les valeurs de DOMAIN et PORT seront à mettre dans la barre URL de votre navigateur pour accéder à l’interface d’Huginn (ex 192.0.0.1:3000)
Vous pouvez enlever aussi le # devant RAILS_ENV=production pour préparer le déploiement d’Huginn.
Configuration de Huginn
Une fois cette partie configurée, nous allons passer à la connexion entre Huginn et MySQL.
DATABASE_ADAPTER=mysql2 (on ne touche pas)
DATABASE_ENCODING=utf8 (on ne touche pas)
DATABASE_RECONNECT=true (on ne touche pas)
DATABASE_NAME=huginn_development (il faut avoir créé dans MySQL la base de données huginn_development ou une autre base et la renseigner ici)
DATABASE_POOL=10 (on ne touche pas)
DATABASE_USERNAME=root (on remplace si besoin si le nom d’utilisateur pour MySQL n’est pas root)
DATABASE_PASSWORD="" (mot de passe du compte (ici mot de passe du compte root de MySQL)
Configuration de Huginn
Après cela, vous allez pouvoir configurer vos utilisateurs (si vous souhaitez
l’ouvrir à d’autres utilisateurs) et votre compte mail (si vous souhaitez
recevoir des notifications par e-mail).
Il est possible de connecter Huginn avec de nombreux services en ligne
(Twitter, Thirty, Github, Tumblr, Dropbox, Wunderlist et Evernote sont
disponibles). Pour cela, vous devez mettre vos clés d’accès. Prenons
l’exemple de twitter.
Rendez-vous sur apps.twitter.com et connectez vous avec votre compte.
Vous allez créer une application pour Twitter. Donnez lui un nom, et une
description. Pour la Callback URL, il faut que vous saisissiez : http://<votre ip
ou domaine>/auth/twitter/callback (de cette manière Huginn va pouvoir
se connecter à votre compte Twitter).
Configuration Twitter
Configuration de Huginn
Maintenant que vous avez votre API KEY et API SECRET, vous pouvez saisir
ces clés dans le fichier .env.
Voici les liens vers les autres services pour créer vos applications pour y
accéder :
Dropbox
Wunderlist
Basecamp
Tumblr
Voilà, Huginn est configuré, nous allons pouvoir finaliser son installation.
Fin de l’installation
Notre fichier .env est désormais bien configuré, nous allons pouvoir maintenant faire les commandes suivantes :
bundle install --deployment --without development test (attention, si vous avez installé une version 2.1 ou 2.2 de ruby, vous allez avoir une erreur. Il faudra rajouter dans le fichier Gemfile :
if RUBY_VERSION =~ /2.2/
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
if RUBY_VERSION =~ /2.1/
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
Fin de l’installation
Après que les dépendances après avoir installer les dépendances , nous
allons créer et structurer la base de données :
bundle exec rake db:create RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake db:seed RAILS_ENV=production
bundle exec rake assets:precompile RAILS_ENV=production
Enfin, notre instance Huginn est prête à démarrer.
Lancement d’Huginn
Pour vérifier que tout se passe bien, depuis votre terminal faite :
bundle exec foreman start –p 3000 (si votre port d’écoute est le 3000)
Allez maintenant sur DOMAIN:PORT et normalement vous devriez voir
Félicitations, votre instance Huginn fonctionne !
Déployer Huginn
Sur Ubuntu ou Debian
Editer le fichier Procfile pour enlever les # devant web: bundle exec rails server -p ${PORT-3000} -b ${IP-0.0.0.0} et jobs: bundle exec rails runner bin/threaded
Faites après bundle exec rake production:export
Puis sudo cp deployment/logrotate/huginn /etc/logrotate.d/huginn
Et enfin sudo bundle exec rake production:status
Pour demarrer ou éteindre votre instance d’Huginn, vous n’aurez besoin que de cescommandes sudo bundle exec rake production:start et sudo bundle exec rake production:stop
Sur FreeBSD :
Si comme moi, vous utilisez FreeBSD, cette commande fonctionne très bien :
daemon –fr bundle exec foreman start –p 3000
Utilisation d’Huginn
Première connexion
Votre instance Huginn est configurée ? Parfait allez sur DOMAIN:PORT et
cliquez sur Login.
Les identifiants par défaut sont : admin/password
Vous pouvez (devez !) les changer après dans account -> user
management
L’interface d’Huginn
Onglet pour
accéder à
l’ensemble de nos
agents
Onglet pour
accéder à
l’ensemble de nos
scenarii
Services externes
auxquels Huginn est
connecté
Gestion du compte
et des utilisateurs
Nombre d’agents et
accès rapide vers
ceux-ci
Nombre
d’évènements créés
par nos agents
Agent/Scenario
Que sont les agents et les scenarii ?
Les agents vont permettre de faire une action bien précise. Il existe de nombreux agents (comme RSS Agent, Twitter Stream Agent, Trigger Agent, ….). Quand vous demandez à créer un nouvel agent, l’ensemble des agents est proposé. Si vous ne trouvez pas votre bonheur dans la liste, vous pouvez suggérer sur Github les services/fonctions que vous souhaiteriez voir implémenter.
Les agents vont faire une action et envoyer le résultat de cette action vers d’autres agents.
Exemple : Un RSS agent va récupérer un flux RSS, il va pouvoir l’envoyer dans le Trigger Agent, qui va filtrer en fonction de la valeur que nous avons défini et va transmettre les résultats filtrés au Data Output Agent, qui vous permet de générer un flux RSS des résultats filtrés.
Les scenarii vont vous permettre de regrouper ensemble plusieurs agents pour mieux les gérer (actions de masse) et avoir une vision schématique de leur comportement
Créer son premier agent
Lors de la création d’un agent, un texte apparaît à droite et décrit l’agent,
ses fonctions et la syntaxe qu’il faut utiliser pour bien le configurer.
Je vais créer un agent de type RSS
Typologie de l’agent
Nom de l’agent (pensez à les nommer de manière bien
distincte pour vous retrouvez dans vos agents
Ici, on défini la fréquence à laquelle l’agent va fonctionner.
Ici, il va aller une fois par jour consulter le flux RSS pour voir s’il y
a de nouvelles entrées
Temps que vous souhaitez garder les « évènements » (1
évènement = 1 nouvelle entrée dans un flux RSS par exemple)
dans votre base de données. /!\ vous pouvez rapidement
vous retrouver avec votre BDD saturée.
Ici, vous pouvez sélectionner les agents qui vont recevoir le
résultat de l’agent créé.
Créer son premier agent
Pour ajouter de
nombreux flux RSS, vous
devez sélectionner
Toggle View et mettre
vos flux comme sur
l’exemple (pas de
virgule après le dernier
flux RSS et on ferme le
crochet ] et virgule
après le crochet )
Vous pouvez enregistrer
ou tester à blanc votre
agent pour vérifier qu’il
n’y a pas d’erreur.
Filtrer les données de notre premier
agent
Typologie de l’agent
Ici, je mets en source mon agent créé
précédemment et je coche pour que
les résultats du 1er agent soient
propagés de suite dans mon nouvel
agent.
Filtrer les données de notre premier
agent
Si vous souhaitez garder les
évènements, mettez sur true
Le filtre marche en se basant sur les
regex (même si d’autres modes
peuvent être utilisés). Dans value, il
faut mettre votre regex (avec vos
mots-clés). Dans path, il faut mettre le
chemin où Huginn doit chercher notre
regex. Dans un flux RSS, notre mot-clé
peut se trouver dans description ou
title.
Représentation schématique du
fonctionnement d’Huginn
En faisant des scenarii, vous pouvez visualiser un diagramme avec les
interactions de vos agents. En voici un exemple :
Il y a mon flux d’entrée, mes filtres et mon rendu
final.
Connexion aux services externes
Cliquez sur Services en haut à droite et vous pourrez accéder à l’interface
pour connecter votre instance d’Huginn à des services en ligne
Voilà vous disposez des clés
pour mettre en place votre
instance HuginnDe nombreux exemples sont disponibles sur le Github ou sur Vimeo
Tutoriel réalisé par Antoine Henry - [email protected]