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.