Skip to content

adding appimage guide #80

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions source/desktop/creating-app-image.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Manual AppImage Build for Cryptomator
======================================

Prerequisites
-------------

Install the following packages before following the guide if you don't have them already. You will also need JDK 23 (Bellsoft JDK works fairly well) as well as per the Github docs:

.. code-block:: bash

sudo apt install maven squashfs-tools unzip curl

Download the AppImage tool:

.. code-block:: bash

curl -LO https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage

Clone and Build the Project
---------------------------

.. code-block:: bash

git clone https://github.com/cryptomator/cryptomator.git
cd cryptomator
mvn clean install -Plinux

Optionally test the JAR file
----------------------------

.. code-block:: bash

java -Dcryptomator.ipcSocketPath=/tmp/cryptomator.sock \
-Dcryptomator.mountPointsDir=/tmp/cryptomounts \
-cp "/your/path/to/cryptomator/target/mods/*:/your/path/to/cryptomator/target/cryptomator-1.16.0-SNAPSHOT.jar"\
org.cryptomator.launcher.Cryptomator

.. note::
This is required because there's no main manifest defined. The mount point and IPC socket are also mandatory for unlocking vaults.

Build the AppImage folder
-------------------------

1. Create a folder named ``Cryptomator.AppDir``.
2. Inside it, place:

- ``AppRun`` (see below)
- A ``.desktop`` file
- App icon (``.png``)
- A ``usr/`` folder

Inside ``usr/`` create:

::

usr/
├── bin/ → place your JAR and ``mods/`` folder here
└── share/
├── icons/
├── applications/
├── mime/packages/
└── metainfo/

.. tip::
You can get all the required files from the cloned repository, except the AppRun file and the jar binary, which must be manually made, by running maven.

Build the AppRun Script
-----------------------

.. code-block:: bash

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
java -Dcryptomator.ipcSocketPath=/tmp/cryptomator.sock \
-Dcryptomator.mountPointsDir=/tmp/cryptomounts \
-cp "$HERE/usr/bin/mods/*:$HERE/usr/bin/cryptomator-1.16.0-SNAPSHOT.jar" \
org.cryptomator.launcher.Cryptomator

Make it executable:

.. code-block:: bash

chmod +x AppRun

Change the .desktop file to execute from the AppRun file, before running appimage tool.


Build the AppImage
------------------

.. code-block:: bash

ARCH=x86_64 ./appimagetool-x86_64.AppImage Cryptomator.AppDir

Replace the folder name if needed. Then just make the `.AppImage` executable and run it.

Done!
1 change: 1 addition & 0 deletions source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ If you are interested in the security of Cryptomator, have a look at our :ref:`s
:caption: Desktop

desktop/setup.rst
desktop/creating-app-image.rst
desktop/getting-started.rst
desktop/adding-vaults.rst
desktop/accessing-vaults.rst
Expand Down