Skip to content
pkg2appimage tool and some example recipes to build AppImages using AppImageKit and Travis CI
Shell Roff Dockerfile JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
client Update getapp May 15, 2016
legacy AppImages are now at Nov 25, 2017
recipes Update Spotify.yml Sep 21, 2019
.gitignore Add out directory to .gitignore Oct 3, 2018
.travis.yml Only build once Dec 23, 2018 Create Sep 6, 2017
Dockerfile Create user to satisfy Git Feb 14, 2018 Update Sep 6, 2017
LICENSE Simple spell fixes and add missing shebang Feb 27, 2016 Remove reorganization notice Jun 20, 2019 Update Feb 3, 2018 Fix the blacklisted files retrieval Sep 6, 2019 Remove progress stats from curl output Feb 28, 2018 Update URL to this repository to the AppImage project Nov 25, 2017 Update Dec 23, 2018
excludedeblist Update URL to this repository to the AppImage project Nov 25, 2017
excludelist Update excludelist Sep 15, 2019
excludesuselist Update URL to this repository to the AppImage project Nov 25, 2017 Detect if we are running inside Docker Apr 9, 2019
pkg2appimage if [ ! -z "${_post_script[0]}" ] Jan 12, 2019
pkg2appimage-with-docker Revert "Forward ENABLE_DI environment variable to Docker container" Feb 14, 2018 Remove the gnutls-patched parts, that PPA is completely gone Oct 2, 2018 Simple spell fixes and add missing shebang Feb 27, 2016 Long overdue reorganization, sorry for breakage of existing links Nov 25, 2017 pkg2appimage Dec 22, 2018

pkg2appimage discourse Build Status Codacy Badge Donate

This repository contains the pkg2appimage tool and some recipes to generate AppImages (portable Linux apps) using AppImageKit. See the Bintray page tab for downloads of the generated AppImages.

Recipes are the .yml files used to create the AppImages, and Dockerfiles are used to build Docker images on Docker Hub (think of them as glorified chroot environments) in which the recipes can run. Finally, everything is tied together using travis-ci which uses Docker containers created by the Dockerfiles from this repository to generate AppImages using the recipes from this repository. The result are AppImages are uploaded to a Bintray repository and can run on most modern desktop Linux distributions.

This repository is intended to showcase the AppImage format and AppImageKit software used to create AppImages. Upstream projects are encouraged to use this showcase to produce their own upstream packaging AppImages, as some projects (like Subsurface already do).


There are multiple ways to generate AppImages. If you already have existing binaries (either in archive or .deb format or a ppa) then the recommended way to convert these to an AppImage is to write a .yml description file and run it with pkg2appimage:

To build an AppImage from a .yml description file:

bash -ex ./pkg2appimage recipes/XXX.yml

.yml description files tell pkg2appimage where to get the ingredients from, and how to convert them to an AppImage (besides the general steps already included in pkg2appimage). Study some examples to see how it works.


Uploading AppImages to Bintray

The script can be used by anyone to upload AppImages to Bintray.

The script will:

  1. Extract metadata from the AppImage
  2. Make the AppImage updatable with zsync
  3. Upload the AppImage to Bintray

In order to use you must first define your Bintray credentials in the environment. In order to get your Bintray API Key, you need to enter the "API Key" section in


export BINTRAY_USER=<Your Bintray username>
export BINTRAY_REPO=<Your Bintray repository>
export BINTRAY_REPO_OWNER=<Your bintray Organization (optional)>
export BINTRAY_API_KEY=<Your Bintray API Key>
./ "Subsurface-"

If you use Travis for CI, you can define these variables in the Travis control panel, specially the BINTRAY_API_KEY, in order to keep it secure.


You are invited to contribute to the AppImage format, the AppImageKit tools, and the example AppImages provided by us).

The preferred channel of communication for general questions and remarks is our forum and mailing list at

For technical contibutions, - please file Issues (also for wishlist items or discussion topics) or submit Pull requests.

There is also the #AppImage IRC channel on and we use Gitter which has the advantage that one does not have to be online all the time and one can communicate despite not being in the same timezone.




This project would not have been possible without the contributors to AppImageKit and without the services which generously support Open Source projects:

  • JFrog for providing Bintray, the distribution platform used to distribute AppImages built by the recipes in this project to users. Bintray has been truly invaluable for this project since it not only provides us with free hosting and traffic for our AppImages, but also makes it really easy to set up a repository for custom binary formats such as AppImage, and to maintain the metadata associated with the downloads. Thanks to the easy-to use REST API, we were able to set up an automated workflow involving GitHub and Travis CI to build, upload and catalog AppImages in no time. Also, JFrog Bintray relieved us from the burden to create a web UI for the repository by providing a generic one out-of-the-box.
  • Travis CI for providing cloud-based test and build services that are easy to integrate with GitHub.
  • GitHub for making it possible to work on Code in the Cloud, and for making it super easy to contribute to Open Source projects.
You can’t perform that action at this time.