There are different ways to create AppImages. The following section gives you an overview of which ways are available, their advantages and disadvantages, and where to find more information.
The recommended approach is to package software from source. Ideally, upstream application authors take over maintenance of AppImages, and provide them on their release pages.
To learn more about how packaging from source works, please refer to :ref:`ref-packaging-from-source`.
The process of packaging from source can and should be automated. CI systems like Travis CI can help with that.
This option might be the easiest if you already have continuous builds on Travis CI in place. In this case, you can write a small scriptfile and in many cases are done with the AppImage generation.
More information on using Travis CI for making AppImages can be found in :ref:`ref-travis-ci`.
.. seealso:: There are a lot of examples on GitHub that can be found using the `GitHub search <https://github.com/search?utf8=%E2%9C%93&q=%22Package+the+binaries+built+on+Travis-CI+as+an+AppImage%22&type=Code&ref=searchresults>`_.
With electron-builder, making AppImages is as simple as defining
AppImage as a target for Linux (default in the latest version of electron-builder). This should yield usable results for most applications.
.. seealso:: More information can be found in the `documentation on AppImage <https://www.electron.build/configuration/appimage.html>`_ and `the documentation on distributable formats <https://www.electron.build/index.html#pack-only-in-a-distributable-format>`_ in the `electron-builder manual <https://www.electron.build>`_. There are a lot of examples on GitHub that can be found using the `GitHub search <https://github.com/search?utf8=%E2%9C%93&q=electron-builder+linux+target+appimage&type=Code&ref=searchresults>`_.
This option might be the easiest if you already have up-to-date packages in place, ideally a PPA for trusty or earlier or a debian repository for oldstable. In this case, you can write a small
.yml recipe and in many cases are done with the package to AppImage conversion. See :ref:`convert-existing-binary-packages` for more information.
This option is recommended for open source projects because it allows you to leverage the existing Open Build Service infrastructure, security and license compliance processes.
More information on using OBS for making AppImages can be found in :ref:`ref-obs`.
Create an AppDir manually, then turn it into an AppImage. Please note that this method should only be your last resort, as the other methods are much more convenient in most cases. Manually creating an AppDir is explained mainly to illustrate how things work under the hood.
See :ref:`ref-manual` for more information.