Flatpak support for Nodetool on Linux, providing sandboxed, distribution-independent packaging.
-
electron/resources/ai.nodetool.NodeTool.desktop
- Desktop entry file for Linux integration
- Provides menu entry, icon, and application metadata
-
electron/resources/ai.nodetool.NodeTool.metainfo.xml
- AppStream metadata file
- Required for app stores and software centers
- Contains application description, screenshots, and release information
-
electron/ai.nodetool.NodeTool.yml
- Flatpak manifest file
- Alternative build method using flatpak-builder
- Defines runtime, SDK, and permissions
-
electron/FLATPAK.md
- Documentation for Flatpak support
- Build instructions, installation guide, troubleshooting
-
electron/validate-flatpak.sh
- Validation script to check Flatpak configuration
- Verifies all required files exist
- Validates file formats (JSON, YAML, XML)
-
electron/electron-builder.json
- Added
"flatpak"to Linux targets - Added
flatpakconfiguration section with runtime, SDK, and permissions - Enhanced desktop entry configuration
- Added
-
README.md
- Added Flatpak link in the Download table for Linux
-
electron/README.md
- Added "Building for Distribution" section
- Documented Flatpak packaging support
-
.github/workflows/release.yaml
- Updated to include
*.flatpakfiles in Linux release assets
- Updated to include
When running npm run build in the electron directory, electron-builder will now:
- Build the standard AppImage (as before)
- Build a Flatpak package using the configuration in
electron-builder.json - Output both packages to the
electron/dist/directory
The Flatpak package includes:
Runtime & SDK:
- org.freedesktop.Platform 24.08
- org.freedesktop.Sdk 24.08
- org.electronjs.Electron2.BaseApp 24.08
Permissions:
- Network access (for API calls and model downloads)
- Filesystem access (home directory)
- GPU acceleration (DRI device)
- Audio/Video (PulseAudio, camera, microphone)
- Display (X11 and Wayland)
- System integration (notifications, tray)
Users can install the Flatpak in several ways:
-
From local file:
flatpak install --user Nodetool-*.flatpak flatpak run ai.nodetool.NodeTool -
From GitHub releases:
- Download the .flatpak file from releases
- Double-click to install (if xdg-desktop-portal is configured)
- Or use the command line method above
-
Future: From Flathub (when submitted)
flatpak install flathub ai.nodetool.NodeTool
- Distribution-independent: Works on any Linux distribution with Flatpak
- Sandboxed: Enhanced security through containerization
- Automatic dependencies: Runtime and dependencies managed automatically
- Easy updates: Flatpak manages updates
- Consistent experience: Same runtime across all distributions
- Single package: One package works on all Linux distributions
- Reduced support burden: Fewer distribution-specific issues
- Easy testing: Test on any Linux distribution
- App store ready: Can be submitted to Flathub
To test the Flatpak build locally:
cd electron
npm install
npm run build
# Validate configuration
./validate-flatpak.sh
# Test installation
flatpak install --user dist/ai.nodetool.NodeTool-*.flatpak
flatpak run ai.nodetool.NodeToolThe GitHub Actions release workflow now automatically:
- Builds Flatpak packages for Linux releases
- Uploads them to GitHub releases alongside AppImage
- Makes them available for download on the releases page
- Submit to Flathub: Follow Flathub submission guidelines
- Add Flatpak badge: Add Flathub badge to README after submission
- User feedback: Gather feedback from Linux users on Flatpak experience