Skip to content

Instantly share code, notes, and snippets.

@DoNotSpamPls
Last active July 8, 2023 18:27
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DoNotSpamPls/6a94317cdb4265906dfc9243cc847678 to your computer and use it in GitHub Desktop.
Save DoNotSpamPls/6a94317cdb4265906dfc9243cc847678 to your computer and use it in GitHub Desktop.
Why Discord will (probably) never get a self-hosted server option.
  1. It's not a lot of times when Discord has a major outage. Most of the months have 100% uptime, and most of the outages are minor, and don't affect a lot of users. With self-hosted servers, it's unlikely you'll ever reach that high uptimes. Also, the Discord team can't guarantee the stability of the whole service if there are lurking self-hosted servers.
  2. You will lose a lot of the versatility of having a cloud-hosted server. You won't be able to change the region in less than a second if something goes wrong, you'll have to fix it yourself.
  3. Discord works on the rolling release model, which means they push a lot of code daily to make the service better. This means that, if you had a self-hosted servers, you'd have to upgrade the server pretty much daily, which will get annoying really quickly, and a lot of fragmentation between server versions will occur.
  4. By self-hosting servers, there is the possibility of a security breach. Some unscrupulous server owners could get their users' IPs and sell them, DDoS the users or worse. That would make bad reputation for the owner, the Discord team and everyone inbetween
  5. Even if you could possibly self-host your own server, what would be the point. Most of the times, it's the gateway/API that go down. And when that is down, well, your self-hosted server won't do much, since you are required to go through the gateway to authenticate and use the program. The only reason I could think of for having a self-hosted server would be for LAN parties and other things like that, and even then, it would only be useful for voice, not text.

-- Revision 2 --

  1. Discord (probably) has a very large and complex infrastructure that is not easy to maintain. It probably wouldn't be easy to make a binary that would be easy enough for normal users to run on their computers and be compatible with the existing infrastructure. Even if it was possible, it would cost an enormous amount of time and money which could be spent on expanding the platform and fixing bugs for everyone instead.

This is my opinion on why Discord will probably never get a self-hosted server binary. Feel free to contact me over on Discord (DoNotSpamPls#8787) if you think I can improve this, if I was wrong somewhere, or you just want to rant. idc

@jackmawer
Copy link

These points are interesting, but I don't think it really gets at the true reasons that Discord is proprietary and closed-source. Monetization and fragmentation are both things to consider, as well as the supposed complexity of Discord's infrastructure. As much as I'd love a self-hosted package, it's not something I'd expect the Discord team to work on, over implementing new features and stabilizing their current platform.

@itslukej
Copy link

I think discord may add an option to self-host voice servers, for LAN parties, or if you want to chat to your IRL friends. Since it will then expose the IP address of the users to the host, they may display a prompt saying something like "This voice channel is using a self-hosted voice region, if you join, your ip....."

@nooitaf
Copy link

nooitaf commented Apr 9, 2018

The discord "we <3 opensource" page is a trap and let's you think it's open source, but it just isn't.
Good marketing. Microsoft, Skype and Facebook love open source too. You are the product and, as in the case of facebook, we see what happens in the end.

I suggest matrix.org which is really free and open source which makes it clear to everyone that it's not build to sell your data or force you into paying later on. It also gives you full control and lets everyone verify the code is doing what it should. Also devs can go in and improve the codebase or even fork it, which is impossible if it's proprietary. But i guess gamers like to cry about companies not fixing bugs or improving things because their hands are tied from the get go.

Discord is just Slack with a "free" option.

@ahmadalli
Copy link

thanks for your note. I suggest you to change your file extension to .md to make it easier to read

@VivianRiver
Copy link

As you may know, some organizations are using Discord for work, rather than play. The fact that such organizations cannot self-host to ensure the privacy of their communications makes it impossible to use Discord for anything that has to do with legally sensitive information. The same goes for Slack.

@DoNotSpamPls
Copy link
Author

@nooitaf blah blah blah FOSS is the future, yeah no. Matrix is not quite there yet. It's not as user friendly yet, and it may never be.
@ahmadalli done
@daniellangdon well, there are always options (teamspeak). While I'm not defending Discord here, I'm 99% certain they won't ever implement such feature.

@RNCTX
Copy link

RNCTX commented Sep 8, 2018

If all of those commercial products lacked FOSS projects to take code from, none of them would exist.

@ifohancroft
Copy link

Here is one reason for a self-hosted server: Enterprise. In other words, Discord can be used as a work chat by a company, however, the inability to self-host it, stops some companies from choosing Discord over other solutions.

@ham1255
Copy link

ham1255 commented Jul 14, 2019

i just want the self hosting becuase i want to bypass the ips's ban

Author Edit: lmao

@alectrocute
Copy link

alectrocute commented Aug 9, 2019

I disagree with this. I love that you posted it and that you're opening the dialogue. But hear me out.

  1. User security and IP's, analytics, telemetry, spy concerns. This applies to every webserver, self-hosted game server, etc. on the internet today. We're doing alright with that system. It would be the user's responsibility to connect their LAN to trustworthy sources. Nobody forces you to join a server.

  2. Flexibility: yes, having a switchable CDN node is nice for location switching. However, one could argue that Discord could turn their model into a server provider where they continue offering the same service as part of a paid package.

  3. TOS. They can keep the client's source closed and block access. I'd be okay with that.

  4. Self-hosted server executable leaking private code. Server executable can be compiled. Sure, somebody could reverse engineer it with a top-secret NSA tool (wait, GHIDRA is public now?) but the same could be said for any enterprise software that runs on a sysadmin's network rather than a cloud SaaS.

  5. Their licenses: https://discordapp.com/licenses (hypocritical)

I have a few more points but I'm going to add you on Discord and see if you're open to a useless but interesting debate on the matter.

@databoose
Copy link

databoose commented Apr 15, 2020

This is pretty old but it still shows up in google index and i found myself disagreeing with a lot of these points. And i don't respect how you replied to nooitaf who brought up a pretty good point.

  1. It's not a lot of times when Discord has a major outage. Most of the months have 100% uptime, and most of the outages are minor, and don't affect a lot of users. With self-hosted servers, it's unlikely you'll ever reach that high uptimes.

Okay? And? They will still most likely be online when discord is offline, it would be essentially a decentralized platform that doesn't have one service that can fail at any time.

Also, the Discord team can't guarantee the stability of the whole service if there are lurking self-hosted servers.

Why does that matter? Those would be external servers completely separate from official discord servers, they don't need to care about other external servers.

  1. You will lose a lot of the versatility of having a cloud-hosted server. You won't be able to change the region in less than a second if something goes wrong, you'll have to fix it yourself.

This feature is only exclusive to voice calls and even in the instances of me disconnecting from a voice call ive never had an instance where swapping the servers helped.

  1. Discord works on the rolling release model, which means they push a lot of code daily to make the service better. This means that, if you had a self-hosted servers, you'd have to upgrade the server pretty much daily, which will get annoying really quickly, and a lot of fragmentation between server versions will occur.

This is the year 2020, servers can update on a daily (although discord does not update daily) basis, that's not an issue for the grand majority of potential external servers.

  1. By self-hosting servers, there is the possibility of a security breach. Some unscrupulous server owners could get their users' IPs and sell them, DDoS the users or worse. That would make bad reputation for the owner, the Discord team and everyone inbetween

Absolutely not, this can all be resolved simply by warning and notifying the user that their IP can be viewed by the host of the custom server anytime a user wants to join one, that would have nothing to do with discords reputation as anything done with access to that IP address would be done by the owner of that external server which has nothing to do with discord.

  1. Even if you could possibly self-host your own server, what would be the point. Most of the times, it's the gateway/API that go down. And when that is down, well, your self-hosted server won't do much, since you are required to go through the gateway to authenticate and use the program. The only reason I could think of for having a self-hosted server would be for LAN parties and other things like that, and even then, it would only be useful for voice, not text.

Mainly stability and privacy, the auth servers have nothing to do with the main servers which are separate, so if the main servers are down but auth servers still are up then external servers and (possible) consensual P2P DM communication could still happen.

Discord has been pretty shifty about how they handle data and to be quite honest with you i think it speaks volumes how quiet they like to be about it, it's a good service dont get me wrong but i'd like external servers for private communication.

Another unintentional benefit would be a pretty drastic weight off of discords shoulder in terms of traffic and computational stress, the very grand majority of users would use official servers sure, but external services would be handling traffic that official servers wouldn't have to deal with if it weren't for external servers.

  1. Discord (probably) has a very large and complex infrastructure that is not easy to maintain. It probably wouldn't be easy to make a binary that would be easy enough for normal users to run on their computers and be compatible with the existing infrastructure. Even if it was possible, it would cost an enormous amount of time and money which could be spent on expanding the platform and fixing bugs for everyone instead.

You sound like you have very little experience when it comes to the field of programming or are just being intentionally disingenuous here, no, adding external server support would not require "an enormous amount of time and money which could be spent on expanding the platform and fixing bugs for everyone instead.", you're making it sound like it is some massive investment, it is not, it would be a major new feature, but nothing on the scale you try to make it out to be.

@yawnston
Copy link

yawnston commented Jun 21, 2020

Mostly agree with @databoose, chances are that the only reason why self-hosted isn't a thing in Discord is that there is just not a market for it and they would probably not make any profit from it. It would require some development time to set up, write documentation, create server binary releases and so on. And in return - even if they monetize it somehow, I think people who would self-host Discord servers would be the extreme minority. Discord isn't Slack and there isn't some grand requirement for data location - it's mostly for gamers, and as long as it does its job, nobody gives a shit about the servers. They are better off spending development time on something else.

The more interesting question is why doesn't Slack or MS Teams have self-hosted servers, and I think the answer to that is that it would just be too unprofitable to decouple their infrastructure from the servers themselves in a way that lets you be in control of all your data as a server owner. There are already other self-hosted alternatives like Rocket.Chat anyway, so I'm not sure that this would be some profitable unexplored share of the market. Products like Jira and the rest of the Atlassian package offer self-hosting, because they have a lot of specialized functionality that is valuable even when you have to host it yourself. Chat applications like Discord or Slack don't really have that many interesting features aside from the fact that you don't have to host anything, so you're better off just using an existing open-source solution which allows self-hosting if you need it for any reason.

@Sam1370
Copy link

Sam1370 commented Sep 23, 2020

Minecraft servers work with self-hosting, why shouldn't Discord? I agree with @databoose and @yawnston.

@dgoiko
Copy link

dgoiko commented Jan 4, 2021

I disagree. Among those the only really valid reasons I see are the version-related and the one about the reputation of discord itself in case of bad behaviour of server owners, or the security through obscuracy tipical argument (although I totally disagree with it, but thts not the point of this post).

I think the primary reason in their minds is monetization. They make money from discord nitro and server boosts, and hey, it is their bussiness, it is totaly fine. People should respect their decision.

I'm totally sure I've installed far more complex environments that the one that a discord server would need, and I'm nothing near a sysadmin pro, so that would not be a problem, and if discord really wanted that, with frequent package releases the update of the server-ends would be straight-forward for minor daily updates like those you mention. The key here is that this require an aditional development and documentaton effort that discord owners don't consider profitable enough (eiter in money, features or reputation of the service overall).

There's no need to excuse theirselves by saying that the average gamer will not be able to set up a discord server in his Windows machine: I don't think that people demanding self-hosted servers are that specific user segment. There's still people reluctant to relay on cloud for everything (some have good reasons, other don't, let's not get into that), and those people are usually capable enough of setting their own complex on premise server environments.

TL;DR:
I think your angle is wrong. You're giving some valid core reason, but you focus on the problem it would be for the user, when the real problem here is the money that discord would have to invest to get this done properly and the money they would stop earning from some server boosts that would set their private servers and get the features for free. The only point I fully agree with you is that the bad behaviour of private server owners COULD affect discord reputation. But adding an "this is a private UNSECURE self-hosted server (...) are you sure?" warning would do the trick in that case.

@d-513
Copy link

d-513 commented Jan 26, 2021

while I would love to see a self hosted discord alternative, they are a closed source proprietary software company and it wouldn't benefit them to develop a selfhosted server and they wouldn't be able to harvest as much data as they are when they are hosting it themselves

@fd1f
Copy link

fd1f commented Feb 10, 2021

As you may know, some organizations are using Discord for work, rather than play. The fact that such organizations cannot self-host to ensure the privacy of their communications makes it impossible to use Discord for anything that has to do with legally sensitive information. The same goes for Slack.

we have mattermost, rocket.chat, maybe even matrix. there's probably more software people can host themselves that i haven't mentioned.

@xaddison
Copy link

I am becoming more and more interested in internet chat freedom and the arguments motivating free speech (even if I do not want to leverage some of the things that appear as a result) I think we are in a time when we need to be investing in technologies and platforms that are 1) not open to being manipulated by money / advertising 2) do not count on a government or situation to tell them what to do, they are self-healing thru innovation and their users wanting to help 3) doesn't choose a side on religion, porn, sex workers, smut or other various election issues :p and finally.... doesn't selectively enforce a ToS, doesn't hijack your account when they decide to delete you. I had many followers on T and basically my account was closed because I wrongly used the same SMS number to verify myself on 2 accounts. They refused to discuss and people wondered where I went. I lost out on some revenue even as a result but they don't care... they don't have to.

So.... what I can't get over is simply something I can't get over. The transparency that comes with Open Source. I have watched too many go down the tube because they are bought out.

First they came for Tumblr and they were too big to listen,
then they came for Yahoo Messenger they were too big to listen,
then they came for Google Groups, then Yahoo Groups, then Facebook blocking logins that were not Facebook for existing Oculus users, then Telegram NSFW content being censored for iOS users.

I am ready to start an onion server now because I think we are at a point where if we do not do something we will find ourselves blocked and without solutions. Also DNS via HTTPS sounds like a good thing now too for privacy. Lately the trolling has increased significantly. It makes me wonder; if we could ensure the age of users how much of these problems would simply not be an issue. I met some of my best friends online when I was under age. Was it appropriate all the time? No. But it wasn't worth everyone having to click "Ï accept cookies"on every site, every day forever until the end of the world... which... is long overdue and I'll end on that note.

@SamuelScheit
Copy link

SamuelScheit commented Aug 28, 2021

We are in fact working on an free open source self-hostable discord clone https://fosscord.com/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment