Snikket is a secure and easy-to-use instant messaging platform that can be self-hosted. In this tutorial, we will walk through the process of installing Snikket on Arch Linux.
Before we begin, you need to have the following:
Snikket requires a few additional repositories to be enabled. We need to set up the Arch User Repository (AUR) and the Multilib repository.
To enable the AUR, run the following command:
sudo pacman -S --needed base-devel git
Next, edit the /etc/pacman.conf
file and add the following lines to the end of the file:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
Save and exit the file.
To enable the Multilib repository, uncomment the [multilib]
section in the /etc/pacman.conf
file:
[multilib]
Include = /etc/pacman.d/mirrorlist
Save and exit the file.
Now update the package lists:
sudo pacman -Syu
We need to install the packages required for Snikket.
First, install the ejabberd
package:
sudo pacman -S ejabberd
Snikket also requires some additional packages from the AUR.
Install the erlang-svg
package:
git clone https://aur.archlinux.org/erlang-svg.git
cd erlang-svg
makepkg -si
Install the otplib
package:
git clone https://aur.archlinux.org/erlang-otplib.git
cd erlang-otplib
makepkg -si
Install the tkabber-plugins
package:
git clone https://aur.archlinux.org/tkabber-plugins.git
cd tkabber-plugins
makepkg -si
Finally, install the snikket-server
package:
git clone https://aur.archlinux.org/snikket-server.git
cd snikket-server
makepkg -si
Now we need to configure Snikket.
First, edit the ejabberd.yml
file:
sudo nano /etc/ejabberd/ejabberd.yml
Find the following lines:
listen:
-
port: 5222
ip: "::"
module: ejabberd_c2s
max_stanza_size: 65536
And replace them with:
listen:
-
port: 5222
ip: "::"
module: ejabberd_c2s
max_stanza_size: 65536
starttls: true
certfile: "/etc/letsencrypt/live/<your-domain>/fullchain.pem"
keyfile: "/etc/letsencrypt/live/<your-domain>/privkey.pem"
protocol_options:
- "no_sslv3"
- "no_tlsv1"
- "no_tlsv1_1"
-
port: 5269
ip: "::"
module: ejabberd_s2s_in
Replace <your-domain>
with your actual domain.
Save and exit the file.
Next, edit the ejabberdctl.cfg
file:
sudo nano /etc/ejabberd/ejabberdctl.cfg
Add the following line at the end of the file:
ERLANG_NODE=ejabberd@localhost
Save and exit the file.
Now restart the ejabberd service:
sudo systemctl restart ejabberd
Next, edit the snikket.yml
file:
sudo nano /etc/snikket/snikket.yml
Replace the xmpp_domain
field with your actual domain:
xmpp_domain: "<your-domain>"
Save and exit the file.
Finally, restart the Snikket service:
sudo systemctl restart snikket
To use Snikket securely, a valid SSL certificate is required.
We can use Let's Encrypt to obtain a free SSL certificate.
First, install the Certbot client:
sudo pacman -S certbot
Next, run the Certbot command to obtain a certificate:
sudo certbot certonly --standalone -d <your-domain>
Follow the prompts to obtain and install the certificate.
You should now be able to access Snikket at:
https://<your-domain>/
You'll need to create a new account and configure your client to use your Snikket server.
Congratulations! You've successfully installed Snikket on Arch Linux.
In this tutorial, we have shown you how to install Snikket on Arch Linux. Snikket provides a secure and private messaging platform that can be self-hosted.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!