Skip to content

Add a Linux AppImage to the release builds#707

Draft
Irozuku wants to merge 6 commits into
feat/gpu-installfrom
feat/linux-appimage
Draft

Add a Linux AppImage to the release builds#707
Irozuku wants to merge 6 commits into
feat/gpu-installfrom
feat/linux-appimage

Conversation

@Irozuku

@Irozuku Irozuku commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a Linux AppImage build to the release workflow so every release ships a self contained, CPU only Linux executable alongside the existing Windows/macOS installers. The AppImage is built with python-appimage (embeds a manylinux CPython + the app and its deps), so end users need no Python installed. Includes small launcher fixes required to make the app run correctly inside an AppImage.


Type of Change

Check all that apply like this [x]:

  • Backend change
  • Frontend change
  • CI / Workflow change
  • Build / Packaging change
  • Bug fix
  • Documentation

Changes (by file)

  • .github/workflows/publish.yml: new build-linux-appimage job (runs on ubuntu-22.04 for glibc 2.35). Builds the wheel (frontend bundled), generates the icon, builds the AppImage via python-appimage, and uploads it. The github-release job now depends on it and publishes dashAI-<version>-x64-linux.AppImage. CPU torch/llama-cpp wheels are selected via PIP_INDEX_URL/PIP_EXTRA_INDEX_URL.
  • appimage/requirements.txt: recipe deps (bare names only — torch, torchvision, llama-cpp-python); the locally built wheel path is appended at build time.
  • appimage/entrypoint.sh: runs the dashai console script via the embedded Python; relaunches inside a terminal emulator when double-clicked (headless fallback if none).
  • appimage/dashai.desktop, appimage/dashai.appdata.xml: desktop + AppStream metadata required by the recipe.
  • appimage/.gitattributes: forces LF endings on the shell/desktop files.
  • DashAI/__main__.py: run the Huey consumer in a thread when running inside an AppImage (detected via APPDIR/APPIMAGE), matching the existing PyInstaller sys.frozen path.

Testing (optional)

  • Built and ran the AppImage on a Debian VM with no system Python: server starts, Huey queue processes jobs, browser opens at localhost:8000, and CPU llama-cpp LLM inference works.

Notes (optional)

  • AppImage is CPU only, consistent with the Windows/macOS installers. GPU stays on the CUDA Docker image.
  • Host requirements: glibc >= 2.35 and FUSE2 (or run with --appimage-extract-and-run). No Python needed.
  • The double click terminal popup needs a terminal emulator installed; otherwise it runs headless and still opens the browser.

@Irozuku Irozuku added enhancement New feature or request help wanted Extra attention is needed back Backend work labels Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

back Backend work enhancement New feature or request help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant