Serveur jabber avec Prosody

Références

Quelques pages de référence:

Chemin d'intérêt sur le serveur :

  • /etc/prosody/ : contient les fichiers de configuration.
  • /var/lib/prosody : emplacement du contenu, notamment comptes utilisateurs.
  • /usr/lib/prosody : contient notamment le dossier des modules présents de base. Lieu privilégié pour ajouter des modules créés par la communauté.

Motivations

  • Avoir de la messagerie instatanée que je maîtrise. J'ai apprécié WhatsApp lorsque je l'utilisais, mais son caractère central, intrusif (pas envie de donner mon numéro à une boîte privée pour utiliser un service de chat), propriétaire me rebute. Le rachat par Facebook n'a certainement pas fait évoluer le service dans une direction qui aurait pu me satisfaire;
  • Pourquoi Prosody?

Installation

La base

La documentation du projet est suffisante. Basiquement, sous une Debian actuelle (Jessie à l'écriture de ce texte) :

  1. 'apt-get install prosody'
  2. aller dans /etc/prosody/conf.avail/ et cloner le fichier exemple puis l'adapter à son cas
  3. ajouter la confguration créée dans le dossier /etc/prosody/conf.d/, idéalement via un lien symoblique (ln -S)
  4. permettre, dans le fichier de configuration général, le transfert de fichier : 'Component "proxy.____domaine____" "proxy65"'

En vrac (notes postérieures de loin à l'installation) :

  • bien penser à ajouter le virtual host dans le fichier de configuration1:

    VirtualHost "domaine.org"
             ssl = {
                     key = "/etc/prosody/certs/certificat_du_domaine.key";
                     certificate = "/etc/prosody/certs/certificat_du_domaine.crt";
             }
    
  • une génération de certificat pour la configuration créé.

  • vérifier que ça marche avec un client dont on est sûr qu'il supporte les fonctionnalités recherchées (cf première expérience avec un client qui ne suportait pas l'envoi d'image, échec que j'avais imputé à mon serveur).

Installation d'un module

Voir cette page. Concrètement: on met le fichier en .lua du module dans un dossier (le dossier des modules par exemple), on s'assure que ce dossier est référencé parmi les dossiers sources pour les modules (avec une ligne 'plugin_paths = {"/chemin1/absolu/", "/chemin2/absolu"}' dans le fichier de configuration général/etc/prosody/prosody.cfg.lua). On ajoute ensuite le nom du module à la liste 'modules_enabled' du même fichier de configuration. Par exemple pour le module de nom de fichier 'mod_mam.lua' on ajoute :

 modules_enabled = {
     ...
    "mam";
     ...
}

Les options du modules sont à renseigner directement dans le fichier de configuration, avec une option par ligne, comme n'importe quelle autre option.

Modules installés

  • mam : pour la récupération des messages postés pendant qu'on était hors ligne
  • smacks : pour assouplir les exigences de connexion, parfois aléatoires sur mobile
  • carbons : pour une synchronisation correcte entre les divers appareils (redondance avec mam ?)
  • http_upload : essentiel pour le partage d'image dans une conférence
  • csi : pour avertir du statut (connecté ou non)
  • throttle_presence : pour limiter l'usage de la bande passante depuis le serveur

HTTP_UPLOAD

Bien penser à ouvrir le port 5281 (5280 si connexion non sécurisée) pour pouvoir utiliser ce module. Le module de proxy (proxy65) n'est pas nécessaire.

Pour le debug à l'aide d'un client sur Android (comprendre pourquoi cela ne fonctionne pas), on fera un 'adb logcat' avec un téléphone connecté à l'ordinateur, pour voir ce qui coince lors de l'upload d'une image. Ou alors une meilleure option, dans le cas où le client utilisé est Conversations, sur Android (variante trouvée ici):

adb -d logcat -v time -s conversations

  1. on notera bien ici que mon hôte, pour la connexion, est de la forme "sousdomaine.domaine.org", mais que le VirtualHost utilisé ici est le domaine principal "domaine.org". 

Vus : 687
Publié par vhaguer : 5