meta data for this page
Table of Contents
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:
Phone Compatibility:
5 of 5 Points, developed for Pinephone / Librem5
How to install:
Apt:
There is an experimental Debian package for this application.
Flatpak:
Flathub: https://flathub.org/apps/details/org.nanuc.Axolotl (No Flatpak at the moment, awaiting publishing)
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 Firefox ESR. Every other browser should do the work, but Firefox seems to be the most suitable/stable at the moment (Midori is a resource friendly but laggy option).
This command creates the 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
echo -e "[Desktop Entry]\nType=Application\nName=Axolotl-Browser\nGenericName=Signal Chat Client (Browser)\nExec=firefox-esr -private-window 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=firefox-esr -private-window 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;
For Midori as UI, change the Exec line into this
Exec=midori -e Fullscreen -a http://127.0.0.1:9080 -p
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