English English

Configurer le chat bot Go-neb pour le serveur de messagerie Matrix

Comment installer Go-neb (dernière version). Il s'agit d'un chatbot (chat bot) qui fournit des services tels que l'envoi automatique de flux d'informations RSS, la recherche d'images GIF ou d'informations de Wikipédia et bien d'autres fonctionnalités. Le chatbot est facile à mettre en place et peut ensuite être utilisé via le client de messagerie Riot (client pour le serveur matriciel).

Remarque:
J'ai décidé de mettre à jour ce tutoriel car il y a une nouvelle version du chat bot Go-neb sur Github. La procédure d'installation est maintenant différente, car le chat bot est désormais un module Go. La nouvelle version comporte également de nouveaux services (bots) et le bot wikipedia a également été corrigé.

Dans ce tutoriel, le chat bot est installé avec toutes ses exigences. La racine est utilisée ici. Cependant, une instance de serveur matriciel déjà en cours d'exécution et configurée est nécessaire. L'installation de Matrix via les "Prebuild Packages" est recommandée. Plus d'informations sur l'installation et la configuration de Matrix : https://github.com/matrix-org/synapse/blob/master/INSTALL.md



Installation de GO

Vous devez disposer de la version 1.14 ou d'une version plus récente. Si cette version est déjà installée et configurée, cette section peut être ignorée. GO peut être téléchargé à partir de ce site web. Veuillez télécharger la dernière version pour Linux :

https://golang.org/dl/

Vous pouvez également utiliser ce script testé qui permet de télécharger la dernière version de Golang pour votre système d'exploitation :

https://github.com/udhos/update-golang

Ensuite, ajoutez un lien souple à votre fichier bin du Go:

ln -s /usr/local/go1.14.2.linux-amd64/bin/go go
ln -s /usr/local/go1.14.2.linux-amd64/bin/gofmt gofmt

 

Définissez ensuite les chemins d'accès au système d'exploitation (si vous n'avez pas utilisé le script mentionné ci-dessus). Les chemins doivent pointer vers le dossier où GO a été téléchargé.

export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH

 

Avec cette commande, vous pouvez vérifier si GO est maintenant appelé et vous pouvez afficher tous les chemins définis pour GO.

go env

La commande "version" peut également être utilisée pour afficher la version de GO.

 

Installation de go-neb

Maintenant, allez dans le chemin du dossier d'accueil de votre installation "Golang" ("Go")
Si vous êtes connecté en tant que root (utilisé ici dans cet exemple), alors il s'agit de ce dossier.

/root/go/src/


Il s'agit de "username" puis de "go/src". Vous pouvez également aller dans le chemin d'installation de votre go dans "/usr/local".

Créez ce chemin dans le dossier "/root/go/src/" ou dans votre dossier "go home".

mkdir -p "github.com/matrix-org"


Changement vers le nouveau dossier créé "github.com/matrix-org"

cd github.com/matrix-org


Et ensuite, cloner le dépôt Github go-neb :

git clone https://github.com/matrix-org/go-neb

Retournez dans le dossier "github.com".

cd ..

 

Maintenant, faites l'étape suivante.

Créez ces dossiers :

mkdir -p "lib/pq"
mkdir -p "matrix-org/dugong"
mkdir -p "matrix-org/util"
mkdir -p "mattn/go-sqlite3"
mkdir -p "prometheus/client_golang"
mkdir -p "sirupsen/logrus"

 

Clonez ce dépôt Github "https://github.com/lib/pq.git" dans le dossier créé :

git clone https://github.com/lib/pq.git lib/pq/

Clonez ce dépôt Github "https://github.com/matrix-org/dugong" dans le dossier créé :

git clone https://github.com/matrix-org/dugong matrix-org/dugong

 

Clonez ce dépôt Github "https://github.com/matrix-org/util" dans le dossier créé :

git clone https://github.com/matrix-org/util matrix-org/util

 

Clonez ce dépôt Github "https://github.com/mattn/go-sqlite3" dans le dossier créé :

git clone https://github.com/mattn/go-sqlite3 mattn/go-sqlite3

Clonez ce dépôt Github "https://github.com/prometheus/client_golang" dans le dossier créé :

git clone https://github.com/prometheus/client_golang prometheus/client_golang

Clonez ce dépôt Github "https://github.com/sirupsen/logrus" dans le dossier créé :

git clone https://github.com/sirupsen/logrus sirupsen/logrus


Passez à votre dossier go-neb.

cd matrix-org/go-neb

Maintenant, vous pouvez construire votre go-neb Chat bot.

go build github.com/matrix-org/go-neb

Cela peut prendre un certain temps. Vous pouvez aller prendre un café pendant ce temps :D

 

Si le processus de construction a été fait, alors vous pouvez trouver le fichier binaire (nom : "go-neb") de votre chat bot dans ce dossier :

 

~/go/src/github.com/matrix-org/go-neb

Veuillez créer un dossier "bin" et déplacer ce fichier binaire dans le dossier créé "bin".

mkdir bin && mv go-neb bin/


Copiez le dossier "go-neb" complet dans un dossier où vous enregistrez vos demandes :

cp ~/go/src/github.com/matrix-org/go-neb /opt/ -R



Configuration du go-neb

Vous devez maintenant créer un utilisateur (go-neb) pour le chatbot, qui n'a pas de droits Sudo et peut être utilisé avec le répertoire d'accueil "/opt/go-neb".

Créez le groupe go-neb et ajoutez l'utilisateur go-neb à ce groupe. N'oubliez pas de donner les droits d'accès au dossier du programme go-neb pour l'utilisateur go-neb maintenant créé.

 

chown -R go-neb:go-neb /opt/go-neb

 

Créez un nouvel utilisateur dans Matrix pour le chatbot. Ici, le bot utilisateur est utilisé pour go-neb.

 

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml https://localhost:8448

 

Go-neb peut être exécuté directement à l'aide de cette commande:

 

BIND_ADDRESS=:4050 DATABASE_TYPE=sqlite3 DATABASE_URL=go-neb.db?_busy_timeout=5000 BASE_URL=http://localhost:4050 bin/go-neb

Ici, cependant, un service système pour ce programme est créé à des fins de production.

vim /etc/systemd/system/go-neb.service
[Unit]
Description=Go-neb bot for matrix-synapse server
After=network.target
[Service]
WorkingDirectory=/opt/go-neb
ExecStart=/opt/go-neb/bin/go-neb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=go-neb
User=go-neb
Group=go-neb
Environment=BIND_ADDRESS=localhost:4050 DATABASE_TYPE=sqlite3 DATABASE_URL=db/go-neb.db?_busy_timeout=5000 BASE_URL=http://localhost:4050 CONFIG_FILE=config.yaml
Restart=always
RestartSec=10
StartLimitInterval=900
StartLimitBurst=3
[Install]
WantedBy=multi-user.target

 

Créez un dossier pour la base de données du chat bot.

 

mkdir /opt/go-neb/db

 

Configurez maintenant les paramètres du chatbot go-neb. Le fichier de configuration doit être copié et peut ensuite être personnalisé en fonction de vos besoins.

cp config.sample.yaml config.yaml

Le robot de chat est installé dans cette section. Plusieurs utilisateurs (clients) peuvent être utilisés pour le robot de chat. Un seul utilisateur est configuré ici. Veuillez entrer le AccessToken défini dans la configuration de la matrice. L'ID utilisateur correspond au compte de l'utilisateur dans le serveur Matrix.

clients:
  - UserID: "@bot:localhost"
    AccessToken: "XXXXXXXXXXX"
    HomeserverURL: "http://localhost:8448"
    Sync: true
    AutoJoinRooms: true
    DisplayName: "Go-NEB Chatbot"

Les fonctions du chatbot peuvent être configurées dans cette section "services". Vous pouvez également ajouter vos propres services ici. De nouvelles clés Api doivent être créées. Les clés API dans la configuration ne fonctionnent pas. Vous devez créer vos clés API.

# The list of services which Go-NEB is aware of.
# Delete or modify this list as appropriate.
# See the docs for /configureService for the full list of options:
# https://matrix-org.github.io/go-neb/pkg/github.com/matrix-org/go-neb/api/index.html#ConfigureServiceRequest
services:
  - ID: "giphy_service"
    Type: "giphy"
    UserID: "@goneb:localhost" # requires a Syncing client
    Config:
      api_key: "XXXX"
      use_downsized: false

Maintenant, activez et démarrez le service nouvellement créé.

systemctl enable go-neb
systemctl start go-neb

 

Dépannage

Si vous obtenez l'erreur suivante "start-limit-hit" :

Apr 05 19:28:02 myserver systemd[1]: Failed to start Go-neb Bot For Synapse-Matrix server.
Apr 05 19:28:02 myserver systemd[1]: go-neb.service: Failed with result 'start-limit-hit'.

Solution: Réinitialisez votre service avec cette commande.

systemctl reset-failed go-neb

Informations complémentaires

Il existe d'autres paramètres que ceux mentionnés ici. La fonctionnalité de Go-neb peut également être étendue par des services autoprogrammés. Pour le service guggy, il n'y a plus de clés API de la part de l'opérateur.

Vous trouverez de plus amples informations sur Go-neb et l'API Go-neb sur ce site web : https://matrix-org.github.io/go-neb/pkg/github.com/matrix-org/go-neb/

Page Github de Go-neb (comprend également de la documentation) : https://github.com/matrix-org/go-ne

 

 

 

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok