Skip to content
probonopd edited this page Nov 3, 2016 · 34 revisions

Welcome to the AppImageKit wiki. Check the right-hand side "Pages" menu to see the wiki pages.

For users

What is an AppImage?

An AppImage is a downloadable file for Linux that contains an application and everything the application needs to run (e.g., libraries, icons, fonts, translations, etc.) that cannot be reasonably expected to be part of each target system.

How do I run an AppImage?

Make it executable and double-click it.

Where can I download AppImages?

See the "repository" of upstream-generated AppImages. If there is no AppImage of your favorite application available, please request it from the author(s) of the application e.g., as a feature request in the issue tracker of the application.

Where do I get support?

Please visit http://discourse.appimage.org/. You can log in using your existing Google or GitHub account, no sign-up needed.

For application developers

Why should I bundle my application as an AppImage?

By bundling your application as an AppImage, you can provide an official download for Linux like you would do for Windows and macOS where you as the application author can control the end-to-end user experience with no intermediaries between you as the author and your end user. With just one AppImage you can reach users of most Linux distributions. You can provide new download links as often as you like, e.g., for each continuous build.

Also, doing an AppImage has these advantages:

  • Just one format for all major distributions
  • Works out of the box, no installation of runtimes needed
  • No root needed
  • One app = one file = super simple for users
  • Optional(!) desktop integration with appimaged
  • Binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can GPG2-sign your AppImages (inside the file)

How do I bundle my application as an AppImage?

There are different ways to generate an AppImage of your application:

  1. Convert existing binary packages. 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 file and in many cases are done with the package to AppImage conversion. See examples OR
  2. Bundle your Travis CI builds as AppImages. 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. See examples OR
  3. Run linuxdeployqt on your Qt application. This option might be the easiest if you have a Qt-based application. In this case, you are probably already using windeployqt and macdeployqt and now can use linuxdeployqt in the same fashion with the -appimage argument and in many cases are done with the AppImage generation See example OR
  4. Use electron-builder. This option might be the easiest if you have an Electron-based application. In this case, you define AppImage as a target for Linux (default in the latest version of electron-builder) and in many cases are done with the AppImage generation. See examples OR
  5. Write your own. Start out with Creating AppImages, then check the examples on bundling certain applications or type of applications as AppImages from the right-hand side "Pages" menu.

How do I get support in bundling my app as an AppImage?

We try to help upstream application authors as good as we can, please open an issue in this project. If you are not an upstream application author, then please contact the upstream application author(s) first before you open an issue here.

For AppImage developers

How can I contribute?

Curious about AppImage development? Want to contribute? We welcome pull requests addressing any of the open issues and/or other bugfixes and/or feature additions. In the case of complex feature additions, it is best to contact us first, before you spend much time. See our list of issues and get in touch with us in #AppImage on irc.freenode.net.