Yes, it's working :D
            o
            o
     //@@  o
    @@ ^^
   @@@ v @   _____
  /  \ /  | |\____\
 /  ( X ) | | |   |
<___=\      | |   |
    \======\ \|_"_|
                (____



Hello, today we are going to explain how to create a self-hosted chat and how the entire process works.

You might be wondering, why create a self-hosted client when I can simply call my friends on Discord to talk about things...
Messaging apps today are controlled by big tech companies that know exactly what you type. Have you ever stopped to think about what is written in the fine print of their privacy policies?
There are services that summarize this, like ToSDR, and yes, it gets worse when you discover the privacy policies of other apps.

For example, Discord is listed on ToSDR as level D, which is the worst possible level on ToSDR, and the reasons for it being there are:

- Instead of asking directly, this Service will assume your consent simply from your usage.
- The service is only available in certain countries approved by your government (censorship).
- The service can look at your private messages (whether they are drafts or anything else).

Other reasons for using self-hosted services are that no messaging or other services last forever.
The service can be shut down for various reasons, such as censorship, servers being closed due to persecution, and attempts at surveillance, among others.
That's why I always prefer to host my own services, as it ensures my security, and I can trust myself and the code I am working with.

- Well, but how can we do this without spending anything? (or almost nothing)

We have two options: if you have a spare computer (with minimal specifications to at least run Linux), you can use it to host services.
Or, if you prefer, you can use your own computer with technologies like Docker or a Virtual Machine to host it more securely.

In this case, I will be hosting it on an old computer of mine. It only has 4GB of RAM and a worn-out processor, but it will be more than enough for this.
Okay, let's go! To start, I will introduce the chat we will be hosting: voce.chat
a chat project that aims to create a chat similar to Discord/RocketChat/Matrix, but with easy and simple management, and compatible with Linux/Windows/Android and macOS.

It has several features for security and privacy, such as:

- Images and large files transmission
- Burn after reading
- Voice / Video
- Webhook+Bot
- Personal AI Bot

Great, right? And it's very simple to install and host on a Tor network. I'll show you how to do this now:

First, make sure you have Docker and curl installed on your server:
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|bezumiya@x00r:~$ sudo apt update -y
|bezumiya@x00r:~$ sudo apt install curl -y
|bezumiya@x00r:~$ curl -fsSL https://get.docker.com | bash
|bezumiya@x00r:~$ systemctl start docker
|bezumiya@x00r:~$ systemctl enable docker
|Synchronizing state of docker.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
|Executing: /usr/lib/systemd/systemd-sysv-install enable docker
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Now we can download the image and run it, but first, make sure you have disabled all firewall systems if you have any installed.

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|bezumiya@x00r:~$ docker run -d --restart=always \
|  -p 3000:3000 \
|  --name vocechat-server \
|  privoce/vocechat-server:latest
|Unable to find image 'privoce/vocechat-server:latest' locally
|latest: Pulling from privoce/vocechat-server
|a46fbb00284b: Pull complete
|45ae272c1067: Pull complete
|5075c565ebfe: Pull complete
|56b713e9ea9e: Pull complete
|a4d69c489404: Pull complete
|ca3dc7211469: Pull complete
|1ea77b418ed7: Pull complete
|4f4fb700ef54: Pull complete
|Digest: sha256:b97b87746680fb382251f327181405fb5e3f73eeb122ad31ca334db5fa58f48d
|Status: Downloaded newer image for privoce/vocechat-server:latest
|06cd6b8c4a4c83deaae617ae20bbe248906b373c3ae872ce6e11075276235eb4
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Okay, now we can go to 127.0.0.1:3000 and start configuring there.
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

Now let's set a name for the server. In this case, I chose "liberté."
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

Now let's create our user with an email/password (it doesn't need to be a valid email).
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

Now let's set whether the chat will be invite-only or open for everyone to join.
In this case, I chose invite-only.
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

They will create an invite for you to send to others, but it won't work yet because
it's on 127.0.0.1, so we'll fix that soon.
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

And voilà! Let's configure it to work on Tor!
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

Here in the overview, we can change it to our Tor domain.
If you don't know how to host any service on Tor, check out the previous tutorial!
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

We can update it and verify if the domain is working!
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

But first, let's create an invite to send to others.
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

And we can see that we're connected to the chat using the Tor link we hosted :)
┌──────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────┘

And there it is, a 100% private, secure chat hosted by you!
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘


┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|Well, that's it! We've finished another tutorial on how to host a 100% private and secure chat using just a few commands, and it's easy to manage.
|If you have any questions, there's complete documentation for voce.chat on their website: doc.voce.chat. That's it for now, see you next time!
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[Home]