diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml
index 027685c9..ca1b3f4e 100644
--- a/.github/workflows/electron.yml
+++ b/.github/workflows/electron.yml
@@ -267,6 +267,81 @@ jobs:
path: release/termix_linux_armv7l_portable.tar.gz
retention-days: 30
+ - name: Install Flatpak builder
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y flatpak flatpak-builder
+
+ - name: Add Flathub repository
+ run: |
+ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+
+ - name: Install Flatpak runtime and SDK
+ run: |
+ sudo flatpak install -y flathub org.freedesktop.Platform//23.08
+ sudo flatpak install -y flathub org.freedesktop.Sdk//23.08
+ sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp//23.08
+
+ - name: Get version for Flatpak
+ id: flatpak-version
+ run: |
+ VERSION=$(node -p "require('./package.json').version")
+ RELEASE_DATE=$(date +%Y-%m-%d)
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
+ echo "release_date=$RELEASE_DATE" >> $GITHUB_OUTPUT
+
+ - name: Prepare Flatpak files
+ run: |
+ VERSION="${{ steps.flatpak-version.outputs.version }}"
+ RELEASE_DATE="${{ steps.flatpak-version.outputs.release_date }}"
+
+ CHECKSUM_X64=$(sha256sum "release/termix_linux_x64_appimage.AppImage" | awk '{print $1}')
+ CHECKSUM_ARM64=$(sha256sum "release/termix_linux_arm64_appimage.AppImage" | awk '{print $1}')
+
+ mkdir -p flatpak-build
+ cp flatpak/com.karmaa.termix.yml flatpak-build/
+ cp flatpak/com.karmaa.termix.desktop flatpak-build/
+ cp flatpak/com.karmaa.termix.metainfo.xml flatpak-build/
+ cp public/icon.svg flatpak-build/com.karmaa.termix.svg
+ convert public/icon.png -resize 256x256 flatpak-build/icon-256.png
+ convert public/icon.png -resize 128x128 flatpak-build/icon-128.png
+
+ cd flatpak-build
+ sed -i "s|https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_x64_appimage.AppImage|file://$(realpath ../release/termix_linux_x64_appimage.AppImage)|g" com.karmaa.termix.yml
+ sed -i "s|https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_arm64_appimage.AppImage|file://$(realpath ../release/termix_linux_arm64_appimage.AppImage)|g" com.karmaa.termix.yml
+ sed -i "s/CHECKSUM_X64_PLACEHOLDER/$CHECKSUM_X64/g" com.karmaa.termix.yml
+ sed -i "s/CHECKSUM_ARM64_PLACEHOLDER/$CHECKSUM_ARM64/g" com.karmaa.termix.yml
+ sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" com.karmaa.termix.metainfo.xml
+ sed -i "s/DATE_PLACEHOLDER/$RELEASE_DATE/g" com.karmaa.termix.metainfo.xml
+
+ - name: Build Flatpak bundle
+ run: |
+ cd flatpak-build
+ flatpak-builder --repo=repo --force-clean --disable-rofiles-fuse build-dir com.karmaa.termix.yml
+ flatpak build-bundle repo ../release/termix_linux_flatpak.flatpak com.karmaa.termix stable
+
+ - name: Create flatpakref file
+ run: |
+ VERSION="${{ steps.flatpak-version.outputs.version }}"
+ cp flatpak/com.karmaa.termix.flatpakref release/
+ sed -i "s|VERSION_PLACEHOLDER|release-${VERSION}-tag|g" release/com.karmaa.termix.flatpakref
+
+ - name: Upload Flatpak bundle
+ uses: actions/upload-artifact@v4
+ if: hashFiles('release/termix_linux_flatpak.flatpak') != '' && github.event.inputs.artifact_destination != 'none'
+ with:
+ name: termix_linux_flatpak
+ path: release/termix_linux_flatpak.flatpak
+ retention-days: 30
+
+ - name: Upload Flatpakref
+ uses: actions/upload-artifact@v4
+ if: hashFiles('release/com.karmaa.termix.flatpakref') != '' && github.event.inputs.artifact_destination != 'none'
+ with:
+ name: termix_linux_flatpakref
+ path: release/com.karmaa.termix.flatpakref
+ retention-days: 30
+
build-macos:
runs-on: macos-latest
if: github.event.inputs.build_type == 'macos' || github.event.inputs.build_type == 'all'
diff --git a/flatpak/com.karmaa.termix.flatpakref b/flatpak/com.karmaa.termix.flatpakref
new file mode 100644
index 00000000..7d2e9892
--- /dev/null
+++ b/flatpak/com.karmaa.termix.flatpakref
@@ -0,0 +1,12 @@
+[Flatpak Ref]
+Name=Termix
+Branch=stable
+Title=Termix - SSH Server Management Platform
+IsRuntime=false
+Url=https://github.com/Termix-SSH/Termix/releases/download/VERSION_PLACEHOLDER/termix_linux_flatpak.flatpak
+GPGKey=
+RuntimeRepo=https://flathub.org/repo/flathub.flatpakrepo
+Comment=Web-based server management platform with SSH terminal, tunneling, and file editing
+Description=Termix is an open-source, forever-free, self-hosted all-in-one server management platform. It provides SSH terminal access, tunneling capabilities, and remote file management.
+Icon=https://raw.githubusercontent.com/Termix-SSH/Termix/main/public/icon.png
+Homepage=https://github.com/Termix-SSH/Termix
diff --git a/flatpak/com.karmaa.termix.metainfo.xml b/flatpak/com.karmaa.termix.metainfo.xml
index 0c3c6895..335d902c 100644
--- a/flatpak/com.karmaa.termix.metainfo.xml
+++ b/flatpak/com.karmaa.termix.metainfo.xml
@@ -5,7 +5,7 @@
Web-based server management platform with SSH terminal, tunneling, and file editing
CC0-1.0
- GPL-3.0-or-later
+ Apache-2.0
bugattiguy527
diff --git a/flatpak/com.karmaa.termix.yml b/flatpak/com.karmaa.termix.yml
index 4405a10f..b8a8f0d9 100644
--- a/flatpak/com.karmaa.termix.yml
+++ b/flatpak/com.karmaa.termix.yml
@@ -40,14 +40,14 @@ modules:
sources:
- type: file
- url: https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_x64_VERSION_PLACEHOLDER_appimage.AppImage
+ url: https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_x64_appimage.AppImage
sha256: CHECKSUM_X64_PLACEHOLDER
dest-filename: termix.AppImage
only-arches:
- x86_64
- type: file
- url: https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_arm64_VERSION_PLACEHOLDER_appimage.AppImage
+ url: https://github.com/Termix-SSH/Termix/releases/download/release-VERSION_PLACEHOLDER-tag/termix_linux_arm64_appimage.AppImage
sha256: CHECKSUM_ARM64_PLACEHOLDER
dest-filename: termix.AppImage
only-arches:
diff --git a/flatpak/prepare-flatpak.sh b/flatpak/prepare-flatpak.sh
deleted file mode 100644
index 05162b64..00000000
--- a/flatpak/prepare-flatpak.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-set -e
-
-VERSION="$1"
-CHECKSUM="$2"
-RELEASE_DATE="$3"
-
-if [ -z "$VERSION" ] || [ -z "$CHECKSUM" ] || [ -z "$RELEASE_DATE" ]; then
- echo "Usage: $0 "
- echo "Example: $0 1.8.0 abc123... 2025-10-26"
- exit 1
-fi
-
-echo "Preparing Flatpak submission for version $VERSION"
-
-cp public/icon.svg flatpak/com.karmaa.termix.svg
-echo "✓ Copied SVG icon"
-
-if command -v convert &> /dev/null; then
- convert public/icon.png -resize 256x256 flatpak/icon-256.png
- convert public/icon.png -resize 128x128 flatpak/icon-128.png
- echo "✓ Generated PNG icons"
-else
- cp public/icon.png flatpak/icon-256.png
- cp public/icon.png flatpak/icon-128.png
- echo "⚠ ImageMagick not found, using original icon"
-fi
-
-sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" flatpak/com.karmaa.termix.yml
-sed -i "s/CHECKSUM_PLACEHOLDER/$CHECKSUM/g" flatpak/com.karmaa.termix.yml
-echo "✓ Updated manifest with version $VERSION"
-
-sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" flatpak/com.karmaa.termix.metainfo.xml
-sed -i "s/DATE_PLACEHOLDER/$RELEASE_DATE/g" flatpak/com.karmaa.termix.metainfo.xml