Overview

Haveno is a decentralized exchange (DEX) for Monero. This guide will walk you through installing Haveno on Tails OS using Flatpak. Since Tails is an amnesic OS, we will also cover how to install Flatpak and Haveno with persistence enabled, so the installation remains after reboots.

Prerequisites

  1. Tails OS Installed with Persistence Enabled: You must have Tails OS with persistent storage enabled. If you're unsure how to do this, you can follow the instructions our instruction How to install Tails on your USB drive or follow the official guide on Tails storage persistance.
  2. Internet Connection: Tails OS routes all internet traffic through Tor by default, ensuring privacy, but this conflicts with how Haveno works and creates a Tor-over-Tor problem, which we aim to resolve in this tutorial.

Step-by-Step Installation Guide

Step 1: Enable Persistent Storage on Tails

  1. Boot into Tails.

  2. Enable persistent storage, if you haven'nt already, this is crutial.

  3. Ensure that persistence is unlocked when you start Tails.

    • Open the Tails Persistent Storage application.
    • Check "APT Packages" to allow installing software persistently.
  4. After setting up persistence, restart Tails and make sure it loads with persistence enabled.

Step 2: Set Up Flatpak on Tails

Flatpak is not installed by default on Tails, so you’ll need to install it. Since Tails resets most changes after reboot, make sure to follow the persistence steps carefully.

  1. Open a terminal in Tails.
  2. Install Flatpak by running the following commands:
sudo apt update
sudo apt install flatpak
  1. Once Flatpak is installed, add the Flathub repository to persist it across reboots:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Step 3: Install Haveno with Flatpak

Now that Flatpak is installed and Flathub is added, you can install Haveno.

  1. Run the following command to install Haveno:
flatpak install flathub com.haveno.Haveno
  1. After installation, Haveno will be available in your applications menu. To ensure Haveno persists across reboots, you must install it while persistence is enabled (confirm this in your persistent storage settings).

Step 4: Running Haveno

  1. Launch Haveno by either clicking it from your application launcher or running the following command in the terminal:
flatpak run com.haveno.Haveno
  1. Haveno will automatically route traffic through Tor, as Tails routes all network activity through Tor by default.

Step 5: Running Haveno on a Server environment (Optional)

  1. In this case, if you're running in a server environment, you can run this command in headless mode
flatpak run --command=haveno-daemon com.haveno.Haveno

This will run a tiny client in order to configure the dameon and then the deamon will start itself in headless mode, be careful and understand the risk of hosting your Haveno daemon on a remote server. You can also use the haveno daemon docker container as a substitute for this if you prefer, this may reduce the risk of some security issues due to the reasonably strong isolation of Linux Containers.


Step 5: Configure Monero Node (Optional)

Haveno requires access to the Monero network to function. You can either run a local Monero node or connect to a remote one.

Option 1: Running a Local Monero Node

If you want to run your own Monero node, you'll need to install the Monero daemon on Tails:

  1. Download the Monero binaries from getmonero.org.
    2. Depending on your OS if debian you can also try
    apt-get install monero
    
  2. Unpack and set up the Monero daemon in a persistent directory.
  3. Configure Haveno to connect to your local Monero node.

Option 2: Connecting to a Remote Monero Node

  1. Open Haveno.
  2. Navigate to Settings > Monero Node and input the IP address and port of a trusted remote Monero node.

Troubleshooting

Problem: Haveno doesn't persist after reboot

Make sure you've enabled persistence for "APT Packages" and installed Flatpak with persistence enabled. To confirm, check the persistent storage settings in Tails.

Problem: Haveno doesn't launch

If Haveno fails to launch, try running it from the terminal:

flatpak run com.haveno.Haveno

Problem: Flatpak installation issues

If Flatpak fails to install, ensure you have persistence enabled and have allowed "APT Packages" in the persistent storage settings. Also, verify your network connection.


Additional Resources