Earlier quoted context omitted.
Signal is totally centralized. The server is (if I recall correctly) open source, but if you were to run your own server, all of your contacts would have to be using your server too in order to communicate with them. I assume that the hostname(s) of the central Signal servers are hardcoded in the app somewhere, since they're not meant to be replaced.
Server is open source but good luck setting it up. There is no documentation for it. Also, they have intentionally excluded the option for clients to connect to alternate servers. This stance really rubs me the wrong way. I love the Signal protocol, everything else is kinda meh.
Since Signal doesn't federate, if you switched your client to an alternate server you would be unable to communicate with the 99.9% of people out there using the official Signal server. Signal isn't going to give a UI option that is certain to cause frustration and bafflement for the vast majority of users. Those wanting to use an alternate server are probably a small nerd niche who already know how to fork the client.