meta data for this page
  •  

This is an old revision of the document!


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)

What is missing:

  • Most settings that are available in the Android app
  • Encrypted phone calls
  • Sticker
  • v2Groups

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.

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

qt / qml interface

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

For server/browser use, see “Daemonized Server Setup”

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:

If you want Axolotl as a background process and be able to open the UI in a web page if needed, create the two following .desktop files.

The first starts Axolotl as webserver. The second starts the Axolotl-UI using “cog” - a lightweight & fast browser.

This installs cog

sudo apt install cog

This command creates the server-desktop file

echo -e "[Desktop Entry]\nType=Application\nName=Axolotl-Server\nGenericName=Signal Chat Client (Server)\nPath=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/\nExec=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl -e server\nIcon=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/dist/axolotl.png\nTerminal=false\nCategories=Network;Chat;InstantMessaging;\nStartupWMClass=axolotl" | sudo tee -a /usr/share/applications/axolotl.desktop

or you can do it manually

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

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

[Desktop Entry]
Type=Application
Name=Axolotl-Server
GenericName=Signal Chat Client (Server)
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 -e server
Icon=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/dist/axolotl.png
Terminal=false
Categories=Network;Chat;InstantMessaging;
StartupWMClass=axolotl

and this creates the starter icon for the browser-desktop file

echo -e "[Desktop Entry]\nType=Application\nName=Axolotl-Browser\nGenericName=Signal Chat Client (Browser)\nExec=cog --doc-viewer http://127.0.0.1:9080\nIcon=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/dist/axolotl.png\nTerminal=false\nCategories=Network;Chat;InstantMessaging;" | sudo tee -a /usr/share/applications/axolotl.desktop

or manually

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

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

[Desktop Entry]
Type=Application
Name=Axolotl-Browser
GenericName=Signal Chat Client (Browser)
Exec=cog --doc-viewer http://127.0.0.1:9080
Icon=/home/mobian/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/dist/axolotl.png
Terminal=false
Categories=Network;Chat;InstantMessaging;

If you want Axolotl-Server to be started at login, copy the desktop file to the autostart folder

sudo cp /usr/share/applications/axolotl-server.desktop /etc/xdg/autostart

Manual installation:

The manual installation can be done by using the experimental installer or the following commands separately. Axolotl can be started via Phosh icon - it uses electron though.

(starting Axolotl with option -e qt results in a white screen and some qml errors)

Installer:

There is an experimental installer available, which uses the commands for manual installation and which can be used for updates, too.

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

Follow these steps for manual installation

sudo apt-get update && sudo apt-get install golang nodejs npm python 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
go get -d -u github.com/nanu-c/axolotl/
cd $(go env GOPATH)/src/github.com/nanu-c/axolotl && go mod download
cd axolotl-web && npm install
#node-sass does not support arm64 so we have to rebuild it
npm rebuild node-sass
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

echo -e "[Desktop Entry]\nType=Application\nName=Axolotl\nGenericName=Signal Chat Client\nPath=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/\nExec=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl\n#Exec=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl -e qt\nIcon=$HOME/go/src/github.com/nanu-c/axolotl/build/linux-arm64/axolotl-web/dist/axolotl.png\nTerminal=false\nCategories=Network;Chat;InstantMessaging;Qt;\nStartupWMClass=axolotl" | sudo tee -a /usr/share/applications/axolotl.desktop

or manually

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.

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