Nous vous proposons d’installer et de tester un outil de veille sur lequel vous avez complètement la main contrairement aux solutions en SAAS qui restent des boîtes noires.
Le tutoriel vous propose de découvrir Huginn, un logiciel libre qui propose des fonctionnalités qui le positionnent entre (feu) Yahoo Pipes et IFTTT. Développée par une communauté importante et mis à jour régulièrement, il saura répondre à la plupart de vos attentes et vous permettra de mieux comprendre comment fonctionne les outils de veille.
Nous pourrons compléter cette première approche d’Huginn, en fonction de vos retours/demandes, en faisant des focus sur des points spécifiques.
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
(Tutoriel) Installer et Utiliser Huginn - Outil de veille open source
1. Installer et utiliser Huginn
Outil de veille open source
Par Antoine Henry – antoine@icolab.fr
2. 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.
3. 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).
4. 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, …)
5. 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 ip
de 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.
6. 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)
7. 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).
9. 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.
10. 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
11. 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.
12. 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 !
13. 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 ces
commandes 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
15. 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
16. 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
17. 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
18. 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éé.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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
24. Voilà vous disposez des clés
pour mettre en place votre
instance Huginn
De nombreux exemples sont disponibles sur le Github ou sur Vimeo
Tutoriel réalisé par Antoine Henry - antoine@icolab.fr