Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Signal Desktop

This guid is written by using Signal Desktop on branch Master version 1.30.0-beta.4

Requirement

  • NVM 12.4.0

Installation Steps

  1. Install requirement

on MacOS, Install xcode

xcode-select --install # Install Command Line Tools if you haven't already.
sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools

On Windows: Install NPM Install .Net 4.5.1 & Windows SDK 8.1 & Windows Build Tools:

npm install --global --production --add-python-to-path windows-build-tools

On Linux, Install python, gcc, g++, make

sudo apt install python  gcc  g++  make
  1. Clone the project source code:
git clone https://github.com/signalapp/Signal-Desktop.git && cd Signal-Desktop
  1. Install yarn
sudo npm install -g yarn
  1. Install & build with yarn
yarn add —frozen-lockfile
  1. Generate final JS & CSS
yarn grunt
  1. Generate full-set icon
yarn icon-gen
  1. Build with webpack
yarn build:webpack
  1. You can test with
yarn test 
  1. Start the app
yarn start
  1. To connect to own production server, create local-development.json, the value is the same as production.json but without updateEnabled.
{
  "serverUrl": "https://domain.com",
  "cdnUrl": "https://cdn-domain.com",
  "serverTrustRoot": "public-key-generated-in-signal-server-step-4",
  "updatesEnabled": true
}

Using self hosted Server

  1. Update config/default.json, set serverUrl & cdnUrl by using your Server URL & your CDN url, don’t include trailing slash on serverUrl and cdnUrl.

  2. Update config/default.json, set certificateAuthority using CA’s SSL Certificate.

  3. Update config/default.json, set serverTrustRoot using your CAPublicKey (Also used in android as UNIDENTIFIED SENDER TRUST ROOT).

  4. Update js/modules/web_api.js, find functions called getAttachment and putAttachment, then replace ${cdnUrl}/attachments/${id} with ${cdnUrl}/ (Do this if you do the same in android client).

  5. Still on the same functions, set a default value for certificateAuthority variable (see below) new line in your certificateAuthority needs to be formatted to “\n”.

change this

...
certificateAuthority,
...

to this

...
certificateAuthority: "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----\n",
...
  1. yarn generate

  2. yarn build

  3. yarn start