Environment Setup
For Windows, Windows 11 is recommended—Windows 10 may encounter component installation issues. Install Visual Studio 2022 with the "Desktop development with C++" workload enabled. Also install Python 3 and Git, ensuring that python (not just python3) is accessible from the Run dialog (Win+R).
On macOS or Linux, dependency are generally easier to satisfy.
Source Compilation
Clone the repository and check out the specific version:
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
git checkout -b v7.50.0 tags/v7.50.0
Check the required Node.js version:
cat .nvmrc # e.g., 22.14.0
If your local Node version doesn’t match (e.g., you have v20.18.0), download the correct binary—for example, Node v22.14.0 for Windows—extract it, add it to your PATH, and restart your terminal.
Then install dependencies:
node --version
npm install -g pnpm
pnpm install
To speed up downloads, configure a mirror:
npm config set registry https://registry.npmmirror.com
Build and launch:
pnpm run generate
pnpm start
This starts the debug version. Close the DevTools panel to see the main interface.
Note: By default, the app connects to Signal’s staging environment. Scanning the QR code with the official mobile app will fail unless you reconfigure it to use your own server.
Connecting to a Private Server
Edit config/default.json in your editor (e.g., VS Code) to point to your self-hosted Signal backend. Basic messaging should work immediately, though message history synchronization may require additional setup.
Ubuntu Build Instructions
Install system dependenceis:
sudo apt install -y gcc g++ make autoconf cmake vim git
Set up Node.js v22.14.0:
cd /opt
mkdir node && cd node
wget -c https://registry.npmmirror.com/-/binary/node/v22.14.0/node-v22.14.0-linux-x64.tar.xz
tar xf node-v22.14.0-linux-x64.tar.xz
cat >> $HOME/.bash_profile <<EOF
export PATH=/opt/node/node-v22.14.0-linux-x64/bin:$PATH
EOF
source ~/.bash_profile
node --version
Install pnpm globally and clone the repo:
/opt/node/node-v22.14.0-linux-x64/bin/npm install -g pnpm
cd ~/
mkdir workspace && cd workspace
git clone https://github.com/signalapp/Signal-Desktop.git
Use mirrors during install:
npm config set registry https://registry.npmmirror.com
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install
Generate assets and start:
pnpm run generate
pnpm start
You may encounter a sandbox error on first launch:
FATAL:setuid_sandbox_host.cc(163)] The SUID sandbox helper binary was found, but is not configured correctly...
Fix it by adjusting permissions:
pushd ~/workspace/Signal-Desktop/node_modules/.pnpm/electron@35.1.4/node_modules/electron/dist/
sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox
popd
Then relaunch:
pnpm start
To build a .deb package:
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm run build
The resulting package appears in the release/ directory.