A guide to help someone who cares about privacy use Discord without really using Discord.
If you have gamer friends and you want to make the switch to a better platform it's likely all your attempts usually result in either an argument or just never work. I find that I'm usually able to get them to agree that a world where companies weren't evil would be a better place but usually it just ends with either: It's just a better service and it's worth the privacy loss or everyone else uses it...
With the common problem recognized we can move on to what you need:
Now onto the actual guide. This guide will be split into three parts: Text, Voice, Stream. This guide will cover self-hostable/FOSS services for these categories as well as bridging those services to Discord.
I will mainly cover what I personally use to do this on my own server...
Personally on my server I use
Matrix is pretty easy to set up and you just have to set it up normally. Try to take care about setting it up properly/securely and do as many performance tweaks as you feel comfortable implementing.
That being said Matrix is kinda bloated and takes up a
For bridging to Discord you will need a
For bridging Matrix to Discord I use
I use Half-Shot's because for privacy reasons I want to limit the amount of relation from Discord to the bridge. This bridge just keeps it all through a single Discord bot.
Before installing the bridge I set up a user for it. Something like:
sudo useradd -m matrixdb
I then cloned the repository to the home directory of the new user and followed the README on the github page.
The README also goes through how to make a discord bot.
discord-registration.yaml
that causes the program to fail. So just check that over that when testing an npm start
.
Once you add a _matrix
webhook to a room it can be found in matrix with a string in the form #_discord_guildid_channelid:matrix.example.xyz
with guildid and channelid replaced by that found in Discord. A quick way can be achieved once you've already bridged one channel to the matrix by having someone #channel_name the other channels you want to add on Discord and then clicking on the bridged link in Matrix (you still need the webhook).
After finding the room I highly suggest you do this:
Admin yourself on every room by running: npm run adminme -- -m '!AbcdefghijklmnopqR:example.com' -u '@Alice:example.com' -p '100'
. The '!' string is the internal ID found in the advanced settings of the room on Matrix.
Then set the room to invite only and make sure it's taken off the public directory and is unsearchable. That way I can keep the Matrix server open to randos but still keep the Discord private if I wanted to.
I also suggest setting it up as a service:
[Service]
WorkingDirectory=/home/matrixdb/matrix-appservice-discord
ExecStart=/usr/local/bin/npm start
Restart=always
StandardOutput=syslog
StandardError=syslog
User=matrixdb
Group=matrixdb
[Install]
WantedBy=multi-user.target
Then just enable and start the service.
With that hopefully everything worked and you can now talk to your friends without using Discord!
For my server I use
Setting up the service is pretty straight forward. You make a SuperUser password on install and then you allow the default port through your firewall.
There is some config that has to be done in the /etc/mumble-server.ini
:
allowping=True
opusthreshold=0
I also did obfuscate=True
, logdays=-1
and set a password.
Adding ssl cert and key is also suggested what I did for that was make a sub-domain mumble.example.xyz then generated a key using certbot --nginx and then copied the symbolic links in /etc/letsencrypt/live/mumble.example.xyz/ to another folder and allowed permissions to mumble-server. Then added the paths to the .ini file.
To bridge voice I used
It starts out the exact same as the matrix bridge make a discord bot, make a new user, clone the repo.
Then follow the README on the github page and generate a command specific to your server.
I also made a service for this:
[Service]
WorkingDirectory=/home/mumbledb/mumble-discord-bridge
ExecStart=/home/mumbledb/mumble-discord-bridge/mumble-discord-bridge -discord-cid "CID" -discord-gid "GID" -discord-token "BOTTOKEN" -mumble-address "mumble.example.xyz" -discord-disable-text -mumble-channel "MUMBLECHANNEL" -mumble-certificate cert.pem -nice -mumble-password PASSWORD -mode auto
Restart=always
StandardOutput=syslog
StandardError=syslog
User=mumbledb
Group=mumbledb
[Install]
WantedBy=multi-user.target
You should now be able to join a voice channel without using discord!
As a
If you want someone to move you to another voice channel just have them run !mumble-discord auto
then !mumble-discord link
when they are in the voice channel they want you to join in.
Streaming can't be bridged but you can always use other services. I personally use
As for streaming games and other content all you got is
Of course this stuff is not as good as Discord streaming (streaming tends to be quite behind on most other services) but it doesn't work on Linux anyway. You also can't watch your friends if they are streaming but to me that's not much of a loss. Although I can see why it could be a deal breaker (though trying to convince them to use other means is worth a shot).
There's no way yet as far as I know to bridge video but to me that's quite minor, and I'm sure if your nerdy enough to set all this up yourself you don't really care for it either.
Hopefully now you can use Discord much less if at all. I've been running this set up for a while now and I barley ever use Discord now. It's been worth it for me so I hope it is for you! Now you can be more private while slowly moving your friends over and hey, if they are too stubborn no problem.