This guid is written by using Signal Desktop on branch Master version 1.30.0-beta.4
- NVM 12.4.0
- 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
- Clone the project source code:
git clone https://github.com/signalapp/Signal-Desktop.git && cd Signal-Desktop
- Install yarn
sudo npm install -g yarn
- Install & build with yarn
yarn add —frozen-lockfile
- Generate final JS & CSS
yarn grunt
- Generate full-set icon
yarn icon-gen
- Build with webpack
yarn build:webpack
- You can test with
yarn test
- Start the app
yarn start
- To connect to own production server,
create local-development.json
, the value is the same asproduction.json
but withoutupdateEnabled
.
{
"serverUrl": "https://domain.com",
"cdnUrl": "https://cdn-domain.com",
"serverTrustRoot": "public-key-generated-in-signal-server-step-4",
"updatesEnabled": true
}
-
Update
config/default.json
, set serverUrl & cdnUrl by using your Server URL & your CDN url, don’t include trailing slash on serverUrl and cdnUrl. -
Update
config/default.json
, set certificateAuthority using CA’s SSL Certificate. -
Update
config/default.json
, set serverTrustRoot using your CAPublicKey (Also used in android as UNIDENTIFIED SENDER TRUST ROOT). -
Update
js/modules/web_api.js
, find functions calledgetAttachment
andputAttachment
, then replace${cdnUrl}/attachments/${id}
with${cdnUrl}/
(Do this if you do the same in android client). -
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",
...
-
yarn generate
-
yarn build
-
yarn start