Final acceptance (local Flatpak E2E)
Done bar for the packaging work here. Store listing can come after.
Context
We already ship Docker, Helm, npx, Homebrew, .deb/.rpm and Snap (server daemon). Flathub is still missing. Snap-style headless wont fly there. Flathub wants sandboxed graphical desktop apps; console software is rejected.
Related: epic #108, desktop spike #115, recommendation in docs/DESKTOP_WRAPPER_SPIKE.md. Flathub is listed there as follow-up after a Tauri GUI + AppImage.
Blocked by: desktop wrapper PoC + AppImage on GitHub Releases. If that follow-up issue isnt open yet, open/link it first. This issue does not implement the wrapper itself.
Approach
Ship a real desktop shell (Tauri v2 sidecar per the spike; Electron only if WebKitGTK/Monaco fails on Linux). Publish AppImage from release CI. Flatpak manifest pulls that AppImage like Beekeeper does (type: file, unpack, install desktop/metainfo/icons), with x-checker-data pointed at GitHub Releases.
Proposed app id: org.libredb.Studio (verify via libredb.org). Fallback only if needed: io.github.libredb.libredb-studio.
Reference packaging: https://github.com/flathub/io.beekeeperstudio.Studio/blob/master/io.beekeeperstudio.Studio.yml
Trying to rebuild the whole Next.js app offline on Flathub is a bad fit. Reusing the release AppImage matches what similar SQL IDEs already do.
Rough finish-args: network, wayland + fallback-x11, dri, ipc. Prefer portals for files; document any host overrides (local sqlite is a known Flatpak pain, same as Beekeeper).
First login on Flatpak uses the desktop wrapper auth handoff (no password-from-logs UX). Bootstrap file/log remains fallback only.
Decided: Flatpak/desktop path uses STORAGE_PROVIDER=sqlite (same idea as the snap), with STORAGE_SQLITE_PATH under the Flatpak data dir so connections survive restarts. Wrapper should set that on sidecar launch. Tabs still live in the webview localStorage profile.
CI / automation (two places)
Upstream (libredb/libredb-studio):
- smoke-build the manifest with
flatpak/flatpak-github-actions/flatpak-builder@v6 in a privileged ghcr.io/flathub-infra/flatpak-github-actions container
- native matrix: ubuntu-24.04 (x86_64) + ubuntu-24.04-arm (aarch64)
- uploads a .flatpak artifact for sanity checks
- does not publish to Flathub; do not wire
flat-manager at Flathub
Flathub app repo (flathub/org.libredb.Studio after merge):
Docs for the actions themselves: https://github.com/flatpak/flatpak-github-actions
Work bits
Out of scope
- packaging the Snap daemon as a Flatpak
- console-application metainfo
- deploying to Flathub via
flat-manager from this repo
Refs
Final acceptance (local Flatpak E2E)
Done bar for the packaging work here. Store listing can come after.
flathub-build --installor equivalent)flatpak run org.libredb.Studiostarts the GUISELECT 1) and see rows in the results gridContext
We already ship Docker, Helm, npx, Homebrew, .deb/.rpm and Snap (server daemon). Flathub is still missing. Snap-style headless wont fly there. Flathub wants sandboxed graphical desktop apps; console software is rejected.
Related: epic #108, desktop spike #115, recommendation in
docs/DESKTOP_WRAPPER_SPIKE.md. Flathub is listed there as follow-up after a Tauri GUI + AppImage.Blocked by: desktop wrapper PoC + AppImage on GitHub Releases. If that follow-up issue isnt open yet, open/link it first. This issue does not implement the wrapper itself.
Approach
Ship a real desktop shell (Tauri v2 sidecar per the spike; Electron only if WebKitGTK/Monaco fails on Linux). Publish AppImage from release CI. Flatpak manifest pulls that AppImage like Beekeeper does (
type: file, unpack, install desktop/metainfo/icons), withx-checker-datapointed at GitHub Releases.Proposed app id:
org.libredb.Studio(verify via libredb.org). Fallback only if needed:io.github.libredb.libredb-studio.Reference packaging: https://github.com/flathub/io.beekeeperstudio.Studio/blob/master/io.beekeeperstudio.Studio.yml
Trying to rebuild the whole Next.js app offline on Flathub is a bad fit. Reusing the release AppImage matches what similar SQL IDEs already do.
Rough finish-args: network, wayland + fallback-x11, dri, ipc. Prefer portals for files; document any host overrides (local sqlite is a known Flatpak pain, same as Beekeeper).
First login on Flatpak uses the desktop wrapper auth handoff (no password-from-logs UX). Bootstrap file/log remains fallback only.
Decided: Flatpak/desktop path uses STORAGE_PROVIDER=sqlite (same idea as the snap), with STORAGE_SQLITE_PATH under the Flatpak data dir so connections survive restarts. Wrapper should set that on sidecar launch. Tabs still live in the webview localStorage profile.
CI / automation (two places)
Upstream (
libredb/libredb-studio):flatpak/flatpak-github-actions/flatpak-builder@v6in a privilegedghcr.io/flathub-infra/flatpak-github-actionscontainerflat-managerat FlathubFlathub app repo (
flathub/org.libredb.Studioafter merge):peter-evans/create-pull-requestare allowed there (https://docs.flathub.org/docs/for-app-authors/github-actions)x-checker-data(merge manually after a quick test)flathub/flathubbase branchnew-pr, title likeAdd org.libredb.Studio(https://docs.flathub.org/docs/for-app-authors/submission)Docs for the actions themselves: https://github.com/flatpak/flatpak-github-actions
Work bits
flatpak-builder-linton manifest/repohttps://libredb.org/.well-known/org.flathub.VerifiedApps.txtdocs/DISTRIBUTION.mdFlathub section +distribution/channels.yamlentryOut of scope
flat-managerfrom this repoRefs
docs/DESKTOP_WRAPPER_SPIKE.md