saucompeng / signal-setup-guide

Setup guide for Signal (OpenWhisper) server & client. Please refer to the discussion section for questions & difficulties.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

What's not proven work

Updating

If you have do some modification to your code and want to get update from the official git repo, you can follow UPDATING

For the new guide please see Signal v3.21 Guide.

There is a new way to implement MinIO in v3.21 using a cleaner way than older version, please see the guide

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.

Q: Can I remove Google Mobile Service (GMS) from Signal?

A: Yes! A Signal user named "tx-hw" did it on their Github Fork of Signal-Android. You can read more about it on their Signal Community Post

To-Dos

  • CDS Server: Find server with Intel SGX to try to setup custom CDS Server.
  • Load Test: I want to see the performance of the custom server under stress, will update later.

Contributor

This guide has been written by the help of the developers from community.

  • konglomerat-id wrote the configuration and steps to setup signal server 2.55
  • LiteSpeedDev wrote nginx configuration and turn/stun server
  • kondal789rao modified AWS to MinIO.
  • madeindra compiled the guide, improve the steps, and wrote more guide on uncovered topics
  • buddhikajay wrote turn server configuration example
  • sinholic wrote iOS guide
  • amargarido helped to improve the readme

You are welcome to contribute on this guide, please fork the repository and create a Pull Request.

Issue

If you have any questions please create a discussion instead of issue.

You are recommended to open a discussion thread here if you face a difficulties to let the communities help you too and contributing to the communities in the process.

Donating

You can donate to me if you think this guide has helped you, your donation will greatly appreciated.

Bitcoin (BTC):

16xY3wXVNmRqBzbyQpE3VpYawbjuXkyDe2

16xY3wXVNmRqBzbyQpE3VpYawbjuXkyDe2

About

Setup guide for Signal (OpenWhisper) server & client. Please refer to the discussion section for questions & difficulties.

License:MIT License


Languages

Language:Java 94.6%Language:Shell 5.4%