Setup Guide for Signal
On this repository, you will find guides about Signal Setup that might help people who want to run their own signal server.
Requirements
- SSL Certificate of your server's domain (For secure communication, can be bypassed but it will be less secure)
- Google Recaptcha (For anti-spam in authentication)
- Firebase (For push notification, if not used, the notification will not work correctly)
- Twilio (For SMS OTP, can be by passsed by priting the OTP to another means to user)
- Amazon Web Service (For Profile Picture / Avatar, Attachments, and CDS Queue. Can be subtituted with MinIO & LocalStack)
Content
What's proven works
- Signal Server
- Signal Android
- Signal Desktop
- Signal Dependency on Docker (PostgreSQL & Redis)
- Turn Server (CoTurn)
- Nginx Server (Port Forwarding HTTPS to Signal Server Port)
What's not proven work
- Contact Discovery Service (CDS), you still can use your signal server without CDS.
- Signal IOS, at the moment, I don't have Apple Developer license, so I won't be able to help anything regarding Signal iOS.
FAQ
Q: Will I be able to do ... with Signal?
A: My suggestion is first you need to setup normal signal server and check if it will fulfill your need.
Q: My chat only goes one way or can't send chat even when the server already set properly.
A: Probably caused by keystore haven't contain your SSL certificate / certificate did not match the url / you have not setup the Unidentified Delivery properly in the client. Will be explained in each guide of the server & clients.
Q: How to setup Turn Server? I can't do voice/video call.
A: Probably related to your port, either it is not allowed by the firewall or it is not properly set. See my example config on Coturn Server
Q: Can I subtitute AWS to MinIO?
A: I tried it here signal-minio using modification created by kondal789rao . Someone also did a pull request here: Use MinIO instead of the AWS. Also you can try to look into Localstack for local development.
Q: Can I disable / change Twilio? (by getting the generated OTP on the server)
A: Yes, it is possible, you need to change TwilioSmsSender Class, see example on Signal Server Without Twilio.
Q: Can I use Signal in localhost / internal IP / self-signed certificate (by trusting all certificate)
A: Yes, it is possible but it is not secure, see example on Signal Server Self Signed Certificate.
ToDos
- CDS Server: Find server with Intel SGX to try to setup custom CDS Server.
- Signal iOS: Still can't afford Apple Dev License, find someone with license.
- Load Test: I want to see the performance of the custom server under stress, will update later.
Cotributing
You are welcome to contribute on this guide. If you have any questions please write an issues and I will try to help. If you have any suggestion you can reach me via email.
Donating
You can donate to me if you think this guide has helped you, your donation will greatly appreciated.
Bitcoin (BTC): 1CVAHssP53T6Uqd5Raca1GZLynnaGPP4cE