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 :
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