Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

LinuxFr.org : les journaux  -  Activer Elasticsearch pour son instance Mastodon

 -  Août 2023 - 

Cet article est la suite de l'article pour héberger une instance Mastodon.


Mastodon (<3) évolue encore avec une belle nouveautée dans sa version stable de rentrée, comme l'indique par un toot d'Eric F. :

La #recherche plein texte (contenu des toots) est disponible sur la toute dernière version du logiciel #mastodon (en version bêta, déploiement dans la branche stable prévue en septembre selon @renchap)

Encore faut-il avoir un Elasticsearch (ou son fork à licence bien plus permissive, Opensearch) d'actif à disposition. Et comme le rappelle Renaud C., Mastodon core team member (et MERCI à toute votre équipe !) :

"(…) la fonctionnalité requiert ElasticSearch (comme les fonctionnalités de recherche hors hashtag des versions précédentes).
On va clarifier la doc et indiquer plus clairement que ElasticSearch n'est plus vraiment considéré comme optionnel, vu que pas mal de fonctionnalités vont dépendre dessus."

Car, peut-être comme moi, vous vous êtes dits qu'Elasticsearch est (1) consommateur (pour mon NUC) ; (2) parfois un peu "subtil" (pénible) à administrer, pour assez peu d’intérêts lorsque vous êtes sur de très petites instances comme la mienne (mono-usager). Vous auriez volontairement zappé ce point…

Hélas il faut désormais se mettre à la page !

Voici les modifications à apporter afin de préparer l'environnement de cette nouvelle version. D'abord avec l'ajout du service concerné dans docker-compose.yml :


es01:
container_name: es01
image: elasticsearch:8.9.1
volumes:
- ./elasticsearch8:/usr/share/elasticsearch/data
environment:
- "node.name=es01"
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # à adapter
- "ELASTIC_PASSWORD=mon_super_mot_de_passe" # à changer
`

N'hésitez pas à ajouter un healthcheck si vous le souhaitez. Attention pour le point de montage du dossier dans le conteneur, Elasticsearch écrit en root par défaut.

Puis on charge la modification :

docker compose up -d

Ce qui lancera la récupération de l'image et son instanciation. Si vous avez plusieurs réseaux Docker voire plusieurs stacks, il est possible que vous ayez des redémarrages plus larges à prévoir.

Alors on regardera que l'instance va bien :

capp@nothusserv1:~/mastodon$ docker compose ps 
NAME                   IMAGE                       COMMAND                  SERVICE             CREATED             STATUS                    PORTS
db                     postgres:14.6               "docker-entrypoint.s…"   db                  8 months ago        Up 27 minutes (healthy)   
es01                   elasticsearch:8.9.1         "/bin/tini -- /usr/l…"   es01                24 minutes ago      Up 24 minutes             
mastodon-sidekiq-1     tootsuite/mastodon:v4.1.4   "/usr/bin/tini -- bu…"   sidekiq             23 minutes ago      Up 23 minutes (healthy)   3000/tcp, 4000/tcp
mastodon-streaming-1   tootsuite/mastodon:v4.1.4   "/usr/bin/tini -- no…"   streaming           23 minutes ago      Up 23 minutes (healthy)   3000/tcp, 127.0.0.1:4000->4000/tcp
mastodon-web-1         tootsuite/mastodon:v4.1.4   "/usr/bin/tini -- ba…"   web                 23 minutes ago      Up 23 minutes (healthy)   3000/tcp, 4000/tcp
redis                  redis:7-alpine              "docker-entrypoint.s…"   redis               58 minutes ago      Up 27 minutes (healthy)

Je vous conseille aussi de surveiller les journaux d'Elasticsearch (attention les yeux) :

docker compose logs es01

Vous pouvez également vérifier que l'instance ES tourne correctement en demandant le statut (comme pour un healthcheck), directement dans le conteneur visé :

julien@julien-Vostro-7580:~/Developpement/mastodon/article$ docker compose exec -it -u root es01 bash
root@a0276a607959:/usr/share/elasticsearch# curl -u elastic:mon_super_mot_de_passe http://es01:9200
{
  "name" : "es01",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "***-***",
  "version" : {
    "number" : "8.9.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "***",
    "build_date" : "***",
    "build_snapshot" : false,
    "lucene_version" : "9.7.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Parfait !

On modifiera alors le fichier .env.production pour que l'instance la prenne en compte, en prenant garde à ce que le nom résolvable de votre conteneur soit bien déclaré dans ES_HOST (ici c'est "es01") :

# Elasticsearch (optional)
# ------------------------
ES_ENABLED=true
ES_HOST=es01
ES_PORT=9200
# Authentication for ES (optional)
ES_USER=elastic
ES_PASS=mon_super_mot_de_passe

Ce qui va nous obligé à redémarrer (pas la peine de recréer) le conteneur Mastodon, ici s'appelant "web" :

docker compose restart web

Enfin vous pouvez rentrer dedans pour demander la création de l'index. Cela prend un peu de temps, soyez patient :

julien@julien-Vostro-7580:~/Developpement/mastodon/article$ docker compose exec -it -u root web bash
root@21a0039cfad6:/opt/mastodon# RAILS_ENV=production bin/tootctl search deploy
Done! 100529/100529 |=========================================================================================================================================================================================| Time: 00:00:17 (5913 docs/s)
Indexed 74684 records, de-indexed 0

Voilà, votre instance a sa propre indexation, comme une grande. Dans mon cas, les index nouvellement créés représentent 17 Mo au démarrage sur le disque, 4% de mon CPU et près d'1 Go de RAM - mais garder à l'esprit que mon instance est mono-utilisateur : cela peut être considérablement plus ! Laissez toujours Elasticsearch "souffler" et avoir du rab', il peut vite être erratique en cas de stress de ressources.

Évidemment on n'expose jamais son instance Elasticsearch au reste du monde, particulièrement avec aussi peu de sécurité que je viens de le décrire. Si vous avez un doute, n'hésitez jamais à demander dans un forum : mieux vaut s’embêter une heure avant, que tout perdre après !

Vivement la rentrée…

Commentaires : voir le flux Atom ouvrir dans le navigateur

par JulienG

LinuxFr.org : les journaux

LinuxFr.org : Journaux

Téléphone sous Linux ?

 -  25 avril - 

Aujourd'hui, avoir un téléphone avec un Android libéré, c'est possible, on pense en particulier à Murena.Avoir un téléphone sous GNU/Linux, c'est (...)


Quand votre voiture vous espionne… et vous le fait payer

 -  23 avril - 

Ceci se passe aux États-Unis, pour l’instant, aucune preuve qu’une telle fuite existe en Europe. Mais… si votre assurance augmente brutalement, (...)


firefox, nouvelle fenêtre dans une session isolée

 -  15 avril - 

Les fenêtres de navigation privées de firefox partagent leurs cookies de session or je souhaitais avoir des fenêtres de navigation isolées, (qui ne (...)


Pretendo tente de déprogrammer l'obsolescence des consoles Nintendo

 -  9 avril - 

Ah Nal,Gros N vient de faire un gros doigt aux utilisateurs de ses consoles 3DS et Wii U en annonçant la fermeture des services en ligne pour (...)


[Trolldi] Vulgarisation sur l'IA pour décideur pressé

 -  5 avril - 

Cher 'Nal,Je fais un article-marque-page sur un post tout frais de Ploum où il est question d'un fantasme vieux comme le Talmud avec le Golem. (...)