User:MalakymR/Drafts/Prosody/Rev1

From Gentoo Wiki
Jump to:navigation Jump to:search
This article is a work in progress; treat its contents with caution - MalakymR (talk | contribs).

Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.

Installation

USE flags

USE flags for net-im/prosody Prosody is a modern XMPP communication server

+idn Enable support for Internationalized Domain Names
+libevent Use libevent for event handling
+sqlite Add support for sqlite - embedded sql database
+ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
+zlib Add support for zlib compression
icu Enable ICU (Internationalization Components for Unicode) support, using dev-libs/icu
ldap Add LDAP support (Lightweight Directory Access Protocol)
mysql Add mySQL Database support
postgres Add support for the postgresql database
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Emerge

Install the software on the system.

root #emerge --ask net-im/prosody

Configuration

Files

By default prosody will allow in-band registration, it is important we turn this off unless required, otherwise the server may be used as a spam relay.

FILE /etc/jabber/prosody.cfg.lua
allow_registration = false;
--VirtualHost "localhost"
VirtualHost "example.org"
        -- enabled = false -- Remove this line to enable this host

Service

root #/etc/init.d/prosody start
root #rc-update add prosody default

Adding Users

root #prosodyctl adduser username@domain.tld
Enter new password:
Retype new password:

Add a second user for testing

root #prosodyctl adduser username2

This will produce a working setup that will allow communication between clients on this server only. Unless SRV records are setup client software will require the hostname of the server i.e. xmpp.example.org

Client Software

There are many clients to choose from, with varying levels of support for XEP modules.

  • Conversations - Requires SSL so will not work until a certificate is setup (self-signed okay)
  • Xabber - Android (missing file transfer modules)
  • net-im/pidgin - GUI Windows/Linux/Android
  • Profanity.im - curses based
  • net-irc/xmpp-irssi - Addon for curses based net-irc/irssi