Axolotl

Axolotl is a complete Signal client, it allows you to create a Signal account and have discussions with your contacts. Unlike the desktop Signal client, Axolotl is completely autonomous and doesn't require you to have created an account with the official Signal application.

Axolotl has not received the same level of security audit and review as the official Signal clients. Users should be aware that the standard security assurances of official Signal clients may not apply.

What works:

  • Phone registration
  • Contact discovery
  • Direct messages
  • Group messages mostly
  • Photo, video, audio and contact attachments in both direct and group mode
  • Preview for photo and audio attachments
  • Storing conversations
  • Encrypted message store
  • Desktop client provisioning/syncing partially
  • Push notifications (limited)
  • Basic Signal v2group support

What is missing:

  • Most settings that are available in the Android app
  • Encrypted phone calls
  • Sticker
  • Full Signal v2group suppport (basic functions are working since v1.0.0)

There are still bugs and UI/UX quirks.

Scale to fit:

is not necessary

App ID:

org.nanuc.Axolotl

automatic-app-scaling

Phone Compatibility:

5 of 5 Points, developed for Pinephone / Librem5

How to install:

Apt:

There is an experimental Debian package for this application.

https://github.com/nuehm-arno/axolotl-mobian-package

Flatpak:

Flathub: https://flathub.org/apps/details/org.nanuc.Axolotl

The flatpak appears to be web only for now; the QT version can be installed as per below. IMPORTANT: The Qt version of Axolotl will be deprecated soon.

For now, the flatpakref can be installed one the following methods:

qt / qml interface IMPORTANT: The Qt version of Axolotl will be deprecated soon.

sudo apt install flatpak flatpak-builder

flatpak install org.kde.Platform//5.15
flatpak install org.kde.Sdk//5.15
flatpak install org.freedesktop.Sdk.Extension.golang//20.08
flatpak install org.freedesktop.Sdk.Extension.node12//20.08
flatpak install io.qt.qtwebengine.BaseApp//5.15

wget https://raw.githubusercontent.com/nanu-c/axolotl/main/flatpak/qt/org.nanuc.Axolotl.yml
sudo flatpak-builder --install build org.nanuc.Axolotl.yml

web interface currently breaks after build

sudo apt install flatpak flatpak-builder

flatpak install org.freedesktop.Platform//20.08
flatpak install org.freedesktop.Sdk//20.08
flatpak install org.freedesktop.Sdk.Extension.golang//20.08
flatpak install org.freedesktop.Sdk.Extension.node12//20.08

wget https://raw.githubusercontent.com/nanu-c/axolotl/main/flatpak/web/org.nanuc.Axolotl.yml
sudo flatpak-builder --install build org.nanuc.Axolotl.yml

Command:

# You will need to trust and add flathub to flatpak
flatpak install flathub org.nanuc.Axolotl

Snap:

There is a Snap for Axolotl in the Snap Store, but starting Axolotl currently fails in this setup.

https://snapcraft.io/install/axolotl/debian#install

Install Snap beforehand with this (if not done already).

sudo apt update && sudo apt install snapd && sudo snap install core

Install the edge-release of Axolotl with

sudo snap install --channel=edge axolotl

Repo:

Daemonized Server Setup:

You can start Axolotl as a background process and be able to open the UI in a web page, using cog or Firefox, for example. For this, you need two more desktop files and the browser.

Install cog via

sudo apt install cog

You can find desktop files and further instructions here https://github.com/nuehm-arno/axolotl-mobian-package

If you want Axolotl as daemon started automatically at login, copy the desktop file into the Gnome autostart folder with

cd axolotl-mobian-package && sudo cp axolotl-server.desktop /etc/xdg/autostart

Manual installation:

The manual building and installation can be done by using a Makefile found here https://github.com/nuehm-arno/axolotl-debian-packaging

Or you can follow these steps

sudo apt-get update && sudo apt-get install golang nodejs npm python
go get -d -u github.com/nanu-c/axolotl/ #if you get errors with this line, remove the folder github.com and try again (rm -rf github.com)
cd $(go env GOPATH)/src/github.com/nanu-c/axolotl && go mod download
cd axolotl-web && npm install
npm run build
cd .. && mkdir -p build/linux-arm64/axolotl-web
env GOOS=linux GOARCH=arm64 go build -o build/linux-arm64/axolotl .
cp -r axolotl-web/dist build/linux-arm64/axolotl-web && cp -r guis build/linux-arm64

then create axolotl.desktop

sudo nano /usr/share/applications/axolotl.desktop

with this content and check for missing line breaks after copy/paste:

[Desktop Entry]
Type=Application
Name=Axolotl 
GenericName=Signal Chat Client
Path=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/
Exec=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl
#Exec=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl -e qt
Icon=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/axolotl.png
Terminal=false
Categories=Network;Chat;InstantMessaging;Qt;
StartupWMClass=axolotl

You should now have an Axolotl icon in Phosh.

For testing the Qt version of Axolotl you have to install these dependencies. IMPORTANT: The Qt version of Axolotl will be deprecated soon.

sudo apt install qmlscene qml-module-qtwebsockets qml-module-qtmultimedia qml-module-qtwebengine
#the following qml modules have to be installed separately (regex issue)
sudo apt-get install qml-module-qtquick.controls
sudo apt-get install qml-module-qtquick.dialogs

Backup:

If you want to backup configuration and history, copy the following folders to a backup location of your choice and restore them when needed.

~/.config/textsecure.nanuc
~/.local/share/textsecure.nanuc