Private chat and messaging with xx Network on DietPi

Hello everyone,

What is xx Network

I’m a DietPi and xx Network user. Everyone’s familiar with the former, so I’ll just quickly explain what the latter is: it’s a P2P network (green “cloud” in this picture below).

image

What that green cloud does is accept clients’ sent encrypted messages, mixes many of them, and stores them (encrypted). Recipient can download and decrypt messages immediately or later (no need to be online at the same time).
This way there’s no direct connection between clients and messages do not carry any user-identifiable metadata.

In this picture DietPi is the blue box with a reverse HTTPS proxy (mandatory) and the chat app (Speakeasy) which can be containerized or run as Node.js application. The chat app runs in the browser and uses WASM to communicate with xx Network. No user data is stored on the DietPi OS.

How to install Speakeasy

Install the app

Either way, the app is supposed to bind the loopback IP and some app port such as 127.0.0.1:3000.

It requires around 1 GB RAM and very little CPU.

Proxy the app with an HTTPS reverse proxy

This is done as usual - get a self-signed or Let’s Encrypt TLS certificate, setup a reverse proxy (NGINX, Traefik, etc.) and proxy https://hostname:443 to http://localhost:3000 (or other port you picked). I won’t go into detail here, generic HTTPS reverse proxy instructions for NodeJS apps ought to apply.

App users do not need to use the same server - the server is just a means to download the app code, so one user can connect to own DietPi server, another participant can connect to their own DietPi server.

Messages are mixed, served and stored encrypted in xx Network. The main purpose of running own app is to hide your IP address from Web app operator and make sure the app is not compromised, which is what we achieve by deploying our own on DietPi.

How do Speakeasy / xx Network compare to …

Some commercial apps own your application identity, collect metadata (such as your IP, phone number, etc.), and even can read message data. Speakeasy & xx Network don’t do any of that.

Some community chat apps cannot protect your metadata. Others do that, but require Tor and/or cannot store messages so all parties to a conversation must be online at the same time. xx Network doesn’t do that: messages are encrypted at the source, sender metadata is stripped in mixing, and messages are stored up to 21 days.

You may ask questions here in this thread and I’ll try to answer them.

Can I try it first

Yes, you can join the public community channel. I can’t post more than 2 links (limit for new forum users) so if anyone’s interested I can share that in a reply.

When joining you’re prompted to create a unique identity. No email or anything else is required from you.

As you will see the current version (v0.3.4) is quite simple (like IRC). Attachments are coming in next release.

1 Like

Because the first posts limits the number of links, I will just share these as images.

This is how Speakeasy (with basic CSS mods) looks like:

To try it out using the official xx General Chat channel, click here, create an identity and try some messages. You may also create own channels in the same go.

Again, there’s no need to provide your email, or share anything else with anyone.

Just wanted to add I recently created a combination of Haven (formerly Speakeasy) with Tribler v8 (preview) with the idea to enable private chat for the exchange of magnet links (protected by Haven mixnet) and download (protected by Tribler P2P proxy network) in single tab.

  • Create private channel (or “space”) or join public
  • Find magnet links and copy them over to Tribler
  • Eliminates hunting for magnet links over VPNs, Tor, clearnet with complete privacy for private chats

Docker compose file for the combo is available in the repository.