Procedure for installing and running the Signal desktop application on a FreeBSD by using FreeBSD’s built-in Linux Binary Compatibility. This procedure has been tested with Signal 5.26 through 5.50 (2022) on FreeBSD 13.0.

Signal Desktop is now available as a package for FreeBSD.

The cross-platform centralized encrypted messaging service Signal Desktop is now available as a package and a port in FreeBSD. It is no longer necessary to run Signal in FreeBSD’s Linux Binary Compatibility.

In the example, shown below, Signal Desktop installed on a FreeBSD desktop computer with GNOME. When installed, Signal Desktop can be launched from the GNOME menu system.

# pkg search signal-desktop
signal-desktop-6.42.0_1        Cross-platform centralized encrypted messaging service
# pkg install signal-desktop
Screenshot of Signal Desktop, that has been installed and is running on FreeBSD with GNOME.
Screenshot of the Signal desktop application, that is running on FreeBSD 13.0 with GNOME.

Enable FreeBSD’s built-in Linux Binary Compatibility.

Signal, which is also known as Signal Private Messenger in Play Store on Android, is an instant messaging application, that has focus on privacy, but still has the features, you would expect from other instant messaging applications. The Signal desktop application is not available for FreeBSD, but is available for Debian-based Linux systems, such as Ubuntu. However, by using FreeBSD’s built-in Linux Binary Compatibility, the Signal desktop application can run directly on FreeBSD.

If you have not already done so, then enable FreeBSD’s built-in Linux Binary Compatibility and install Ubuntu base system. This makes it possible for you to run Ubuntu and Debian based applications and binaries directly on FreeBSD. You can follow my guide in Install Ubuntu base system into FreeBSD’s Linux Binary Compatibility.

Confirm, that hostname and DNS is configured.

During installation of Signal and installation of the public keys, the hostname and DNS server must be configured and working. The hostname should automatically match the hostname of the host machine. Test this by using the built-in hostname and the host utilities.

# hostname
biiigdesktop.mynetwork
# host signal.org
signal.org has address 13.33.141.5
signal.org has IPv6 address 2600:9000:2021:c400:13:5d53:5740:93a1

Install the Signal desktop application.

If not already started, then start the Ubuntu base system with its command script.

# service ubuntu start

Enter the Ubuntu base system chroot jail. This will restrict the following processes to the Ubuntu base filesystem.

# chroot /compat/ubuntu /bin/bash

Install applications, that is required for installing Signal.

/# apt update
/# apt install -y apt-transport-https curl fonts-symbola gnupg pulseaudio wget

Install Signal’s public signing keys.

/# wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
/# cat signal-desktop-keyring.gpg | tee -a /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null

Add Signal’s repositories.

/# echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | tee -a /etc/apt/sources.list.d/signal-xenial.list

Install the Signal desktop application with Ubuntu’s package manager.

/# apt update
Get:1 https://updates.signal.org/desktop/apt xenial InRelease [2316 B]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease   
Get:3 https://updates.signal.org/desktop/apt xenial/main amd64 Packages [13.0 kB]
/# apt install signal-desktop
Need to get 303 MB of archives.
After this operation, 1408 MB of additional disk space will be used.

If you see an error message about libfprint and libpam-fprintd, then remove those packages and install Signal again.

Errors were encountered while processing:
 libfprint-2-2:amd64
 fprintd
 libpam-fprintd:amd64
/# apt remove libpam-fprintd:amd64 libfprint-2-2:amd64
/# apt autoremove
/# apt install signal-desktop

The package, version and maintainer of Signal can be confirmed by using the apt utility.

/# apt show signal-desktop
Package: signal-desktop
Version: 5.48.0
Maintainer: Signal Messenger, LLC <>

Exit the chroot jail.

/# exit

Run Signal in FreeBSD.

You can now open Terminal and start the Signal desktop application with the following command. When you have linked this device to Signal on your smartphone, than your messages will be synchronized from the time of linking.

$ /compat/ubuntu/opt/Signal/signal-desktop --no-sandbox
Screenshot of Signal Desktop, that has been installed and is running on FreeBSD with GNOME.
Screenshot of the Signal desktop application, that is running on FreeBSD 13.0 with GNOME desktop environment.

You might want to create a launcher icon for launching Signal. You can see how in Create launcher icon in GNOME on FreeBSD.

Update Signal desktop application in FreeBSD.

If the Signal desktop application becomes too old, you will get a notification within Signal. Enter the Ubuntu base system chroot jail. This will restrict the following processes to the Ubuntu base filesystem.

# chroot /compat/ubuntu /bin/bash

Update list of packages for the package manager.

/# apt update
Get:1 https://updates.signal.org/desktop/apt xenial InRelease [2315 B]
Get:2 https://updates.signal.org/desktop/apt xenial/main amd64 Packages [9792 B]
1 package can be upgraded. Run 'apt list --upgradable' to see it.

Confirm, that there is an update for Signal.

/# apt list --upgradable
signal-desktop/xenial 5.38.0 amd64 [upgradable from: 5.26.1]

Update the Signal desktop application with Ubuntu’s package management tool apt.

/# apt upgrade
The following packages will be upgraded:
  signal-desktop
Do you want to continue? [Y/n] y
Get:1 https://updates.signal.org/desktop/apt xenial/main amd64 signal-desktop amd64 5.38.0 [115 MB]
Preparing to unpack .../signal-desktop_5.38.0_amd64.deb ...
Unpacking signal-desktop (5.38.0) over (5.26.1) ...
Setting up signal-desktop (5.38.0) ...

Exit the chroot jail.

/# exit

You have now updated Signal.

More about installing the Signal desktop application in FreeBSD.

Install Ubuntu base system into FreeBSD’s Linux Binary Compatibility by me. Signal for Desktop by Signal. FreeBSD Desktop – Part 27 – Configuration – Netflix Signal Telegram by vermaden. How to upgrade to new minor and major releases of FreeBSD by me.

Would you like to treat me a cup of coffee?

If you would like to treat me a cup of coffee, then please consider making a small donation to My Bitcoin (BTC) Address. It would be greatly appreciated.