Snikket is a self-hosted instant messaging solution that is designed to be easy to set up and use. In this tutorial, we will discuss how to install Snikket on Fedora Server latest version.
Before you start with the installation process, you will need the following:
First, you need to install the required dependencies to run Snikket. Run the following command to install the required dependencies:
sudo dnf install -y wget openssl certbot nginx
Next, you need to install the Prosody XMPP server, which is required by Snikket. Run the following command:
sudo dnf install prosody prosody-modules prosody-certbot prosody-lua-socket prosody-luacheck prosody-postgresql prosody-carbons prosody-muc prosody-http prosody-mod-omemo prosody-mod-cloud-notify prosody-mod-http-upload prosody-mod-http-download prosody-mod-smacks prosody-mod-smacks-offline prosody-mod-offline-storage prosody-mod-blocklist prosody-mod-groups
Once installed, start and enable the Prosody service with the following command:
sudo systemctl enable --now prosody
Now, you can install Snikket. You can download the latest version from the Snikket's official website using the following command:
sudo wget https://snikket.org/server/latest/snikket-server-latest.tar.gz
Once downloaded, extract the contents of the archive with the following command:
sudo tar -zxvf snikket-server-latest.tar.gz
Then, move into the extracted directory:
cd snikket-server-latest
Finally, run the Snikket installer with the following command:
sudo ./install.py
During the installation process, follow the prompts to configure the settings and set up your domain and SSL certificate.
After the installation process is completed, start the Snikket service with the following command:
sudo systemctl enable --now snikket-server
Snikket uses Nginx as a reverse proxy to provide SSL. You have to configure SSL settings for Nginx to access the Snikket web interface. To do this, create a new Nginx configuration file:
sudo nano /etc/nginx/conf.d/snikket.conf
And add the following configuration:
server {
listen 80;
server_name chat.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://localhost:5280;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Change the server_name, ssl_certificate, and ssl_certificate_key values to match your domain name and SSL certificate.
Save and close the file.
Next, restart Nginx to apply the changes:
sudo systemctl restart nginx
Finally, restart the Snikket server:
sudo systemctl restart snikket-server
That's it! You have successfully installed Snikket on Fedora Server latest version. You can access the web interface by visiting https://your-domain.com.
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!