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
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
@@ -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