Hello! We are running our annual fundraising. Please consider making a donation if you value this freely available service or want to support people around the world working towards liberatory social change - https://riseup.net/donate
_This guide has been tested with Tails OS versions **6.0**_
## Persistent Storage
If you want to keep Signal Desktop persistent, we need to set up the Persisent storage accordingly: (if you want to use Signal Desktop only once and lose everything after shutdown/reboot skip to section [Install](#Install))
0. Make sure you are using an up to date Tails OS, check out https://tails.boum.org/doc/upgrade/.
1. Create persistent storage, follow the steps on https://tails.boum.org/doc/persistent_storage/create/, skip to step 2 if you already have a persistent storage
2. Configure persistent storage with _[Additonal software](https://tails.boum.org/doc/persistent_storage/configure/#index12h2)_ enabled and features according to your other needs (mail, pgp, additional software) follow the steps on https://tails.boum.org/doc/persistent_storage/configure/, skip to step 3 if you already have configured your persistent storage with _additional software_ enabled.
3. (Re)start your Tails and setup an administration password, follow section _Set up an administration password_ at https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/.
4. Choose _Applications ▸ System Tools ▸ Root Terminal _ and use the password set in step 3.
5. In order to create persistent storage for [Flatpak](https://flatpak.org), a package manager we're going to use for installing Signal Desktop and keeping the software, settings, keys, messages etc. persistent, execute
~~~
sed -i '$ a /home/amnesia/.local/share/flatpak source=flatpak\n/home/amnesia/.var/app source=var_app\n/home/amnesia/.local/share/applications source=applications' /live/persistence/TailsData_unlocked/persistence.conf
~~~
6. Shutdown Tails.
## Install
### Flatpak
0. If you already have Flatpak installed with Flathub repo configured, skip to [Signal Desktop](#signal-desktop)
1. Start your Tails with persistent storage unlocked and setup an administration password, follow section _Set up an administration password_ at https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/.
2. Choose Applications ▸ System Tools ▸ Terminal
3. Install the package manager Flatpak with executing
4. Make the installation persistent (_Install every time_) following step 3. at https://tails.boum.org/doc/persistent_storage/additional_software/#index4h2
5. No we add the Flathub repository to Flatpak, executing
Ignore _WARNING torsocks[33952]: [syscall] Unsupported syscall number 315._
### Signal-Desktop
0. Choose Applications ▸ System Tools ▸ Terminal
1. Using the Terminal install signal-desktop, executing
~~~
torify flatpak install flathub org.signal.Signal
~~~
and confirm with
~~~
Y
~~~
2. For running signal-desktop on Tails via Tor and access to audio devices, we need to export values each time before running signal-desktop. <details><summary>Further details</summary> Outside the unsafe browser, Tails is configured to limit network use to the Tor network only. Therefore we need to tell signal-desktop using Tor's SOCKS proxy by exporting `export HTTP_PROXY=socks://127.0.0.1:9050` and `export HTTPS_PROXY=socks://127.0.0.1:9050`. For enabling access to the audio device of the machine running Tails, we need to fix some dbus errors, blocking access to alsa by exporting `export $(dbus-launch)` and `export XDG_RUNTIME_DIR=/run/user/$(id -u)`.</details> This can be achieved using an executable shell script + creating a desktop file for a more convenient launch of Signal Desktop, execute:
~~~
echo -e '#!/bin/sh\nexport $(dbus-launch)\nexport XDG_RUNTIME_DIR=/run/user/$(id -u)\nexport HTTP_PROXY=socks://127.0.0.1:9050\nexport HTTPS_PROXY=socks://127.0.0.1:9050\n/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=signal-desktop --file-forwarding org.signal.Signal @@u %U @@' | tee -a /home/amnesia/Persistent/signal-desktop.sh && chmod a+x /home/amnesia/Persistent/signal-desktop.sh && echo -e '[Desktop Entry]\nType=Application\nName=Signal Desktop\nIcon=/home/amnesia/.local/share/flatpak/app/org.signal.Signal/current/active/files/share/icons/hicolor/128x128/apps/org.signal.Signal.png\nExec=bash -c '\''/home/amnesia/Persistent/signal-desktop.sh'\''\nTerminal=true\nCategories=Network\nMimeType=x-scheme-handler/signal;\nStartupWMClass=signal\nKeywords=Signal;' | tee -a ~/.local/share/applications/Signal.desktop
~~~
3. If you haven't done it already while installing another Flatpak from this HowTo, create an update script and Desktop shortcut for conveniently updating Flatpak managed applications, executing:
~~~
echo -e '#!/bin/sh\n torify flatpak update' | tee -a /home/amnesia/Persistent/flatpak-update.sh && chmod a+x /home/amnesia/Persistent/flatpak-update.sh && echo -e '[Desktop Entry]\nType=Application\nName=Flatpak-Update\nExec=bash -c '\''/home/amnesia/Persistent/flatpak-update.sh'\''\nTerminal=true\nCategories=Network\nMimeType=x-scheme-handler/element;\nStartupWMClass=flatpak\nKeywords=flatpak;update;' | tee -a ~/.local/share/applications/Flatpak-Update.desktop
~~~
### Start
1. Start Tails with persistent storage unlocked.
2. Wait until additional software is installed successfully.
3. Go to [Activities Overview](https://tails.boum.org/doc/first_steps/desktop/index.en.html#activities), type `Signal` and click the icon to start.
<details><summary>Alternatively via commandline:</summary>
1. Start Tails with persistent storage unlocked.
2. Wait until additional software is installed successfully.
3. Choose Applications ▸ System Tools ▸ Terminal
4. Execute:
~~~
Persistent/signal-desktop.sh
~~~
</details>
_This guide has been tested with Tails OS versions **6.0** and will not work on Tails 5.xx, so please make sure you are using an [**up to date Tails** OS](https://tails.net/doc/upgrade/)_.
*This howto uses [Flatpak](https://flatpak.org) to install Signal and keep it confined.*
**Notes**:
* Many steps happen in the _Terminal_. To paste content in the terminal, either right-click in the terminal and choose Paste, or use CTRL-SHIFT-V (not CTRL-V).
***Do NOT use the _Root Terminal_** or instructions won't work!
* A working **internet connection is required** at every step of the howto.
## Configure Persistent Storage
_If you want to use Signal Desktop only once and lose everything after shutdown/reboot skip to section [Install](#install-flatpak)._
If you want to keep Signal Desktop persistent, we need to set up the persistent storage accordingly:
1.**Create**[**Persistent Storage**](https://tails.net/doc/persistent_storage/create/) and keep the default features enabled. You may enable other options for your other needs
2.**Start Tails** with an [administration password](https://tails.net/doc/first_steps/welcome_screen/administration_password/)
5. Enter this line in the terminal and press Enter to **setup persistent storage for Flatpak**:
~~~
sudo sed -i '$ a /home/amnesia/.local/share/flatpak source=flatpak\n/home/amnesia/.var/app source=var_app\n/home/amnesia/.local/share/applications source=applications' /live/persistence/TailsData_unlocked/persistence.conf
~~~
When asked, enter the Administration password set before.
6.**Restart** Tails with an [administration password set](https://tails.net/doc/first_steps/welcome_screen/administration_password/)
## Install Flatpak
1. Start your Tails with persistent storage unlocked and an [administration password set](https://tails.net/doc/first_steps/welcome_screen/administration_password/)
3. Enter this line in the terminal and press Enter to **install Flatpak**:
~~~
sudo apt update && sudo apt install -y flatpak
~~~
When asked, enter the administration password set before (it will be asked twice).
4. When asked whether to add the packages to the persistent storage, choose **Install every time**[as explained here](https://tails.net/doc/persistent_storage/additional_software/#index3h2)
5. Enter this line in the terminal and press Enter to **add the Flathub repository to Flatpak**:
3. Enter this line in the terminal and press Enter to **make the Desktop launcher available** (it will not use the _Signal Desktop_ icon but a generic one):
4. If you haven't done it already while installing another Flatpak from this HowTo, create a Desktop shortcut for conveniently updating Flatpak managed applications, executing the following in the terminal:
A new application called **"Flatpak-Update"** is now visible in the [Activities Overview](https://tails.net/doc/first_steps/desktop/index.en.html#activities). You should run it regarly to update your Flatpak applications.
5. Close the terminal
## Start Signal Desktop
1. Start Tails with persistent storage unlocked
2.**Wait until additional software is installed** successfully
3. Go to [Activities Overview](https://tails.net/doc/first_steps/desktop/index.en.html#activities), type `Signal` and press Enter to start Signal Desktop. The icon is a generic one, not Signal official icon.
4. Link to a device or with [signal-cli](../messengers-on-tails-os/-/wikis/Signal/Registration-and-Provisioning-via-signal-cli)(terminal) and enjoy :)
### Enable Microphone and Camera
1. Open menu _Files ▸ Preferences_
2. Check _Allow access to the microphone_
3. Check _Allow access to the camera_
4. Close Signal Desktop Preferences window
### Provisioning
1. Starting signal-desktop for the first time or after it had been unlinked by master or after 1 month of inactivity, you need to link your Signal with the master device.
1. Starting signal-desktop for the first time or after it has been unlinked by master or after 1 month of inactivity, you need to link your Signal with the master device.
2. If your master Signal device is running Android or iOS, follow the official guide: https://support.signal.org/hc/en-us/articles/360007320551-Linked-Devices if the master is signal-cli, follow [the guide on linking signal-cli with signal-desktop on Tails](../Signal/Registration-and-Provisioning-via-signal-cli)
### Captcha Verification when rate limited
Using Signal Desktop via tor increases the chance of getting rate limited when sending messages to new contacts.
1. If you get asked for **Verify to continue messaging **, click on `Continue` and after a while Tor Browser comes up with a Captcha to solve.
2. Solve the captcha. A link `Open Signal` appears. Leave the tab open.
5. Copy the following command into clipboard and Right-click and copy link to clipboard from the website in step 2 and put it replacing $LINK, then execute:
6. Signal Desktop should start and after starting up, `Verification complete` should appear in the bottom left corner of the window. Pending messages should be send now. If not, write them again.
### Update applications installed via Flatpak
Regularly you should update your applications installed via Flatpak
1. Start Tails with persistent storage unlocked.
2. Wait until additional software is installed successfully.
3. Go to [Activities Overview](https://tails.boum.org/doc/first_steps/desktop/index.en.html#activities), type `Flatpak` and click on `Flatpak-Update` to start.
4. When queried for in the terminal, confirm updates with
~~~
Y
~~~
<details><summary>Alternatively via commandline:</summary>
1. Start Tails with persistent storage unlocked.
2. Wait until additional software is installed successfully.
3. Choose Applications ▸ System Tools ▸ Terminal
4. Execute:
~~~
Persistent/flatpak-update.sh
~~~
5. When queried for in the terminal, confirm updates with
~~~
Y
~~~
</details>
1. If you get asked for **Verify to continue messaging**, click on `Continue` and after a while Tor Browser comes up with a Captcha to solve
2. Solve the captcha. A link `Open Signal` appears. Right-click the link and choose "Copy Link"
3. Open a Terminal, paste the following, and **don't press enter** (note the trailing single-quote):
~~~
flatpak run org.signal.Signal '
~~~
Paste the previously copied link, and add a single-quote `'`, then press Enter.
4. The Signal Desktop window should show up and a message confirming the captcha should appear
5. Pending messages should end up being sent. You may be asked to solve a Captcha again… Sometimes restarting Signal Desktop helps as well.