Why convert FLATPAK to FLATPAKREPO?
Bundles are handy for sending one app as a single file, but they cannot deliver updates; a repository can. Publishing a .flatpakrepo lets users run flatpak remote-add --from yourrepo.flatpakrepo and then install and update your app normally. The .flatpakrepo itself does not contain the app - it just references the repository you built from the bundle.
How to convert FLATPAK to FLATPAKREPO
flatpak build-import-bundle + build-update-repo
Run flatpak build-import-bundle ~/myrepo app.flatpak to add the app to a local OSTree repo, then flatpak build-update-repo ~/myrepo to generate the summary. Add --gpg-sign=KEYID to both to sign it.
Host the repo and hand-write the .flatpakrepo
Serve ~/myrepo over HTTP(S), then create a file with a [Flatpak Repo] section containing Url=, Title=, and a base64 GPGKey= (from gpg --export KEYID | base64 -w0). Save it as myrepo.flatpakrepo.
flatpak remote-add --from (verify it)
Test the result with flatpak remote-add --from myrepo.flatpakrepo, which reads the URL and key from the file and registers the remote.
About these formats
A .flatpak file is a Flatpak single-file bundle: one Linux application or runtime packaged into a standalone file for direct download, sharing on removable media, or sending by email. Open…
Open .FLATPAK details →A .FLATPAKREPO file is a data file used by specific software.
Open .FLATPAKREPO details →Quality & what to watch
- A
.flatpakrepocontains no application data - if the hosted repo goes offline, the file is useless. - Skipping
build-update-repoleaves the summary stale, so clients cannot install from the repo over HTTP. - The
GPGKeyline must be the base64-encoded public key on a single line, or verification will fail.
Frequently asked questions
Does a .flatpakrepo file hold the app itself?
Do I need a GPG key?
--gpg-sign, then embed the base64 key in the .flatpakrepo.Why convert a bundle to a repo at all?
.flatpakrepo lets users receive future versions with flatpak update.Where can I place a .flatpakrepo to preconfigure a remote?
/etc/flatpak/remotes.d/ or /usr/share/flatpak/remotes.d/ with the .flatpakrepo extension.