Difference between revisions of "XMPP"

From NixNet
m (update instance path)
m (revise tor instructions)
Line 34: Line 34:
  
  
== Tor ==
+
= Tor =
  
 
If you want to use this XMPP server over Tor, first install and enable the daemon.
 
If you want to use this XMPP server over Tor, first install and enable the daemon.
Line 54: Line 54:
 
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 outline its steps below.
 
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 outline its steps below.
  
*Add Account -> I want to register for a new account
+
*Traverse these menus: Gajim → Preferences → Advanced
*Server: <code>nixnet.services</code> (or one of the other domains)
 
*Advanced
 
**Proxy: Tor
 
**Manage -> Tor
 
 
***Type: SOCKS5
 
***Type: SOCKS5
***Proxy Host: <code>127.0.0.1</code>
+
***Proxy Host: <code>127.0.0.1</code> or <code>localhost</code>
 
***Proxy Port: <code>9050</code>
 
***Proxy Port: <code>9050</code>
**☑️ Use custom hostname/port
 
***Hostname: <code>nixnet54icmeh25qsmcsereuoareofzevjqjnw3kki6oxxey3jonwwyd.onion</code>
 
***Port: <code>5222</code>
 
*Enter a username
 
*Generate and enter a strong password
 
  
 
That should be it. Scroll further down to read about end-to-end encryption, group chats, and A/V calls.
 
That should be it. Scroll further down to read about end-to-end encryption, group chats, and A/V calls.

Revision as of 18:34, 4 August 2021

Note: the old XMPP server on nixnet.xyz is being retired due to a variety of issues. I will leave it running for a time then shut it down. If you would still like an XMPP account, a new server has been set up and registration is open.
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.

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.


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 outline its steps below.

  • Traverse these menus: Gajim → Preferences → Advanced
      • Type: SOCKS5
      • Proxy Host: 127.0.0.1 or localhost
      • Proxy Port: 9050

That should be it. Scroll further down to read about end-to-end encryption, group chats, and A/V calls.

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.

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.

"Migration" from nixnet.xyz

Unfortunately, there is no proper route; the server was in such a bad state that your best bet regarding migration is to leave your old account in the client and copy contacts/rooms to the new account. Clients usually store conversations, contacts, and bookmarks (MUCs) locally. This will allow you to log into your new account and re-add contacts and bookmarks from the old.