XMPP

From NixNet
Revision as of 21:47, 24 November 2021 by Amolith (talk | contribs) (use wikilink to terms)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
XMPP
XMPP logo (without text).svg
Repositorygithub.com/processone/ejabberd
Developer(s)ProcessOne
Written inErlang, Elixer
Instance URLxmpp.nixnet.services

XMPP stands for eXtensible Messaging and Presence Protocol. It was originally called Jabber and some people still use that, however. XMPP is an instant messaging protocol that provides near-real-time communication, presence information (online/offline status, typing indicators), and contact list management. You can communicate with individuals as well as join larger Multi-User Chats (MUCs). XMPP is incredibly extensible (after all, it's in the name) and even allows for voice and videos calls as well as end-to-end encryption via protocols such as OMEMO.

The server running on NixNet is ejabberd, one of the more modern and robust implementations available.

Make sure you read the Terms of Service.

Registration

There are two ways to register with this service: from the web UI or from within your client. The latter is probably simplest and what I recommend. Whichever registration method you choose, you'll need to come up with a username and pick a domain from those listed below. Your Jabber ID (JID) is what people use to contact you; it's similar to a Twitter handle. Your JID will look like username@nixnet.services, username@paranoid.network, etc.

  • nixnet.services
  • paranoid.network
  • linux.monster
  • pwned.life

Once you've come up with an awesome JID, you need to get registered with it!

Client registration

As I said above, this method is probably simplest. Take a look at the recommended clients, pick one, install, and open it up. There will usually be a dialogue prompting you to either log in or create an account. You want to create an account. It should be pretty self-explanatory from there, aside from the CAPTCHA. Due to a large amount of abuse, I've had to implement a CAPTCHA to deter bots from mass-registering and sending copious amounts of spam to other users. Your client may display the CAPTCHA for you but, if it doesn't, you'll need to copy the provided URL, open it in your browser, then enter the generated numbers back in your client.

That should be it!

Web registration

For this one, head over to xmpp.nixnet.services, pick your username, enter one of the domains listed above, and generate a strong password to store in your password manager. Fill in the CAPTCHA, hit the Register button, then take a look at the recommended clients.

Clients

If you’re not sure what client to use, here is a list of some of the more popular clients for each of the major platforms! If you have any recommendations, please let me know and I'll add to the lists.

I do not have any Apple devices and cannot test these but I have heard good things.


Personally, I use Conversations on Android, Dino on Linux, and Gajim on Windows.

Tor

If you want to use this XMPP server over Tor, first install and enable the daemon.

# Installation for Debian and Debian-based distributions like Ubuntu or Linux Mint
# sudo apt install tor

# Installation for Arch and Arch-based distributions
# sudo pacman -S tor

# Installation for RedHat and rpm-based distributions like Fedora
# sudo dnf install tor

# This command should™ work whether your init system is systemd or OpenRC. I'm not sure about runit or other alternatives
# sudo service tor enable --now

After that, there are a few settings you’ll have to change depending on your client. At a birds-eye view, you want to enable a SOCKS5 proxy; some clients allow for this and some don't. Gajim does and that's my preferred client so I'll describe its process. Go to Gajim -> Preferences -> Advanced and simply set the Global Proxy to Tor. As long as your Tor daemon is up and running properly, the default settings should work perfectly fine.

Account management

Passwords can be changed and accounts created or deleted from the web UI.

https://xmpp.nixnet.services/

Note that because we do not collect email addresses at registration, there is no way to recover a lost password. Please store it in a password manager such as Bitwarden or KeePassXC.

Encryption

TODO

Group chat

In XMPP, group chats are called Multi User Chats or MUCs. To create a MUC on any of the domains above, you'll first need an account on this server. It shouldn't matter which domain you're using, you just need an account on one of them. When creating the MUC, you'll be asked for an address. This usually takes the form of name@muc.example.com or name@conference.example.com. My domains all use muc. so that would be …

  • muc.nixnet.services
  • muc.paranoid.network
  • muc.linux.monster
  • muc.pwned.life

After the room has been created, you can send people a join link in the form of xmpp:name@muc.example.com?join. For example, clicking this link will prompt you to join the NixNet Community MUC: xmpp:nixnet@muc.nixnet.services?join

Audio and video calls

The only client I know of supports A/V calls at the moment is Conversations on Android (if you know of any more, let me know and I'll update this page). This feature should Just Work™ and, if so, there will be a telephone icon in the top right. There's noticeable latency and video quality isn't the greatest but it can be quite convenient.

Storage Limits

  • Upload limit for individual files is set to 100 MB
  • Total upload limit per-user is set to 1 GB; when this limit is reached, the user's oldest uploads are automatically deleted until the total used storage is less than 1 GB
  • Uploads older than 14 days are deleted automatically
  • Messages stored with Message Aarchive Management are retained indefinitely

Support