App Submission

Juraj Fiala edited this page Dec 17, 2018 · 10 revisions

This guide is for anyone who wants to publish a desktop app on Flathub. It is primarily intended for app authors.

What Flathub offers

Flathub is a centralized repository of Flatpak apps. It provides a single point of entry for distributing apps on the most popular Linux distributions. It has a growing number of users, with some Linux distributions enabling it by default, and simple setup steps for those that don’t.

Once an app is included in Flathub, it can be easily installed by users, either using a graphical software center or the flatpak command line. It is also possible to provide a link that will open the app in a software center.

Flathub also provides a means for app updates to be distributed to users—once an app is included, its developers can make new releases which will be automatically distributed to users.

Finally, Flathub can help with exposure for applications, through software centers where available apps are advertised, and through our own websites and social media channels.

Who can use Flathub

Flathub is primarily intended for use by developers who want to distribute desktop apps on Linux. Apps must either be redistributable or be available as a third party download.

If you are responsible for a proprietary app that you would like to distribute through Flathub, we’d love to speak to you, and would encourage you to contact the Flathub admins.

How to submit an app

App submissions are extremely welcome and the process is straightforward. Before submitting an app for inclusion on Flathub, please follow the app requirements to ensure that it is technically and legally compatible with the Flathub service. Once this has been done, you can submit the app for inclusion.

Flathub is managed through a GitHub project, and app submissions take place as pull requests. To submit an app:

  1. Fork the Flathub repository on GitHub
  2. Clone the fork: git clone --branch=new-pr git@github.com:your_github_username/flathub.git
  3. Create a new branch with your app’s name: git checkout -b your_app_name
  4. Add your app’s manifest to the branch, commit it and push the commit
  5. Open a pull request against the new-pr branch on Github
  6. Your pull request will then be reviewed by the Flathub admins

Once your pull request has been approved, a new repository will be created for your application, containing your app’s Flatpak manifest. You will have write access for the repository. The Flathub service then uses the manifest from your repository to continuously build and distribute your application on every commit.

Someone else has put my app on Flathub—what do I do?

Flathub is primarily intended as a service that is used by app developers to distribute their apps. Our goal is to give developers control of their apps and to allow them a closer relationship with their users without middlemen getting in the way. However, as part of setting up Flathub, some applications are being distributed on Flathub without the involvement of their developers. We would prefer that these applications are controlled by their authors.

If an application that belongs to you is being distributed without your involvement, please get in touch with the Flathub admins, so that we can discuss transfering ownership.

There’s an app that I’d like to see on Flathub, but I’m not the developer

If there’s an app that you'd like to be distributed on Flathub, the best first course of action is to approach the app’s developers and ask them to submit it. If this doesn’t work, feel free to get in touch with the Flatpak community to discuss options.

Getting help

If you are unsure about the process of submitting an app to Flathub, or are experiencing issues fulfilling all the requirements, you can contact the Flatpak community for help. General queries can be made on community channels, such as the IRC channel (ircs://chat.freenode.net/flatpak) and mailing list. For more sensitive issues, please use the private Flathub admins mailing list.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.