Ejabberd on Raspberry Pi with Raspbian Jessie
---------------------------------------------
Last edited: $Date: 2015/12/06 17:09:31 $
## Jabber for really safe communication
There are some benefits on using Jabber as your instant message
protocol:
* Jabber is decentralised (everyone can run a Jabber server, there
is no central authority that controls all Jabber communication).
* Jabber can be used with [PGP or GnuPG for really safe encrypted
messaging](
http://box.matto.nl/gnupgjabber.html)
* There are several open and free servers and several open and
free clients available.
## Raspbian on Raspberry Pi
The Raspberry Pi (
http://www.raspberrypi.org/faqs) is a very cheap
small board with a 700 MHz Arm11 SoC. Buy only the B-model, because
this one has a network interface. The A-model comes without network,
which makes it much less fun and useable.
Raspbian (
http://www.raspbian.org/) is an operating system based on
Debian that is optimized for the Raspberry Pi hardware.
There are several Raspbian images available, see
https://www.raspberrypi.org/downloads/raspbian/
I choose the Raspbian Jessie Lite, this is a minimal image based on
Debian Jessie.
After download and dd the image to a SD-card we can boot the system.
## Remove systemd
The first thing to do, is to remove systemd.
Systemd has no place on a Unix-like system.
You can follow the steps on the without-systemd.org wiki:
http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian_jessie/sid_installation
## Install ejabberd
First step is to apt-get install it:
apt-get install ejabberd
This will result in a list of quite some packages to be installed,
just say yes and have a cup of coffee or tea.
In the end you will run is some chicken-or-egg problem, ejabberd-
contrib will not finish its install before ejabberd is configured.
## ejabberd configuration
Previous versions for Debian / Raspbian came with a ejabberd.cfg,
but Jessie comes with a ejabberd.yml in /etc/ejabberd.
You have to set your own hostname (fqdn) and the admin-user, but
most importantly you have to change the configuration from ipv6 to
ipv4.
You can raise the debug-level from 4 to 5 in order to get more
debug- information in the logfile. This debug-level is in the top
part of the yml-file.
### ejabberd.yml and ipv4
Change every line that contains
ip: "::"
into
ip: "0.0.0.0"
To be sure, I also uncommented the lines:
outgoing_s2s_families:
- ipv4
## Setup hostname in ejabberd.yml
Change the lines:
hosts:
- "localhost"
into
hosts:
- "jabber.example.com"
- "localhost"
where jabber.example.com is your own sub-domain for your
jabber-server and your domainname.
Next, search for the fqdn line in a comment block and insert the
following line below it:
fqdn: "jabber.example.com"
Open a second ssh-session and as root, do
tail -f /var/log/ejabberd/ejabberd.log
After this, in the first ssh-session restart ejabberd with
/etc/init.d/ejabberd restart
(Remember we removed systemd.)
In the screen with the tail -f command, you can now follow the
messages of ejabberd. When everty thing goes as expected, you can
stop the tail -f with Ctrl-C.
Now, you have to add some users with
ejabberdctl register myuser jabber.example.com mypassword
(Change myuser into the required username, mypassword with the
preferred password :)
After this, your Raspberry Pi works as a Jabber server :)
$Id: ejabberdjessie.txt,v 1.2 2015/12/06 17:09:31 matto Exp $