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 Win7, 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-get install python, gcc, g++, make
-
Clone signal-desktop
-
Mount signal desktop directory
cd Signal-Desktop
- Install yarn
npm install —global yarn
- Install & build with yarn
yarn install —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/deafult.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
Q: How could I get certificate authority?
A: I called it the certificate of the certificate issuer. You can try browsing a https web using chrome, click on lock pad beside the URL address bar, then click on "Certificate (Valid)", you will see the top most & orange certificate, that is what you need, drag it to your desktop to save it.