💾 Archived View for jumeaux.nappey.org › lunixite › prosody-sur-un-serveur-freebsd.gmi captured on 2024-05-10 at 10:40:39. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-04)

-=-=-=-=-=-=-

Title: Prosody sur un serveur FreeBSD

Date: 2011-07-09 17:11

Author: jdn06

Category: Auto-hébergement

Tags: FreeBSD, Jabber, Prosody

Prosody

est un serveur Jabber léger écrit en

Lua.

Sa compilation par les ports

est très facile. La configuration m’a demandé un peu plus d’effort et les informations étant assez disséminées (même si le

site de Prosody

est assez bien documenté), je synthétise ici les opérations de base pour la mise en service.

Le problème du pid

Le serveur refuse de démarrer indiquant qu’il ne trouve pas le pid. Il faut éditer le fichier de configuration /usr/local/etc/prosody/prosody.cfg.lua, vérifier que posix apparaît dans les modules_enabled (ça doit être le cas par défaut) et ajouter après la fermeture des {} des modules la ligne suivante

`pidfile = "/usr/local/var/lib/prosody/prosody.pid"`

J’avais d’abord voulu placer ce pidfile dans /var/run, mais le script du démon veut le lancer dans l’adresse ci-dessus et du coup ça ne fonctionnait pas.

Les certificats SSL

La création d’une paire de clés autosignées étant

bien documentée,

je n’insiste pas sur ce point. Dans le fichier de configuration, il faut au moins placer le chemin de ces clés à deux endroits :

Le point où ça a coincé pour moi, c’est la gestion des droits du .key : si on le met en chmod 400, il faut alors effectuer un

`chown prosody:prosody nom_de_la_clé.key`

pour que le programme puisse le lire, puisqu’il démarre en démon sans les droits root. L’utilisateur et le groupe prosody sont normalement créés automatiquement lors de la compilation-installation du programme.

Les logs

Dans log = … le plus simple est d’utiliser syslog. Ou il faut créer des fichiers de log sur lesquels prosody ait des droits d’écriture (puisqu’il ne démarre pas en root)

Les ports Ă  ouvrir

Par défaut, prosody utilise les ports suivants (on peut les changer assez facilement d’après la doc) :

Ce qui donne, pour tous ceux qui utilisent Packet Filter, l’ajout des lignes suivantes dans pf.conf :

pass in on $interface proto { tcp, udp } from any to $interface port 5222
pass in on $interface proto { tcp, udp } from any to $interface port 5269
pass in on $interface proto { tcp, udp } from any to $interface port 5280

Le lancement de Prosody

Deux manières possibles :

Ajout d’utilisateurs :

Il est bon d’avoir ajouté un utilisateur administrateur dans le fichier de configuration (`admins = { "user1@example.com"}`)

Si la configuration de base n’a pas été changée (`allow\_registration = false;`) il faut créer les utilisateurs par une ligne de commande sur le serveur :

`prosodyctl adduser nom_de_l'utilisateur`

Sinon modifier dans la configuration :

`allow_registration=true ;`

pour que tous ceux qui ont accès au serveur puissent se créer un compte directement par leur client jabber.

Et voilà… Bel outil…

Ajout du 10 février 2014 :

Le serveur aura tourné presque trois ans sans toucher à la configuration. Vraiment un bel outil.

Le passage à la version 0.9.2 demande une petite manipulation pour ceux qui le font tourner derrière un nat. En effet, le serveur semble par défaut vouloir se connecter à l’adresse ip publique, qu’il ne trouve évidemment pas sur l’interface. Le message du mainteneur du port est tout sauf clair, puisqu’il semble décrire l’inverse de ce qu’il faut faire :

If you're running Prosody in a jail and experience problems,
please add the

following to the global section of your prosody.cfg.lua:

interfaces = { 'x.x.x.x' }

where 'x.x.x.x' is the public IP you wish Prosody to bind to.

En réalité, il faut placer l’adresse interne du serveur à la place des 'x.x.x.x', par exemple '10.2.2.3'.