Skip to content

Installer: Bundle Lemonade Server into GAIA installer #774

@kovtcharov-amd

Description

@kovtcharov-amd

Summary

Currently, Lemonade Server is downloaded at runtime during gaia init (via LemonadeInstaller in src/gaia/installer/lemonade_installer.py). The NSIS installer only packages the Electron app. Users must wait for Lemonade to download on first launch, which adds friction to the onboarding experience.

This issue adds an option to install Lemonade Server as part of the GAIA NSIS installer, so users get a working setup out of the box.

Scope (v0.17.3 — Easy Path)

Goal: Include Lemonade Server MSI in the GAIA installer so it installs alongside the Electron app.

What needs to happen

  1. Download Lemonade MSI at build time — CI fetches the pinned Lemonade MSI (lemonade.msi or lemonade-server-minimal.msi) from https://github.com/lemonade-sdk/lemonade/releases/download/v{version}/ during NSIS build
  2. Embed MSI in NSIS installer — Bundle the downloaded MSI as an installer resource
  3. Add NSIS install step — In installer/nsis/installer.nsh customInstall, invoke msiexec /i "$INSTDIR\lemonade.msi" /qn /norestart to silently install Lemonade
  4. Skip Lemonade download in gaia init — If Lemonade is already installed (correct version), LemonadeInstaller should detect it and skip the download step
  5. Version alignment — Use LEMONADE_VERSION from src/gaia/version.py (currently 10.0.0) to pin which MSI gets bundled

Key files

  • installer/nsis/installer.nsh — Add Lemonade MSI invocation in customInstall
  • src/gaia/installer/lemonade_installer.py — Already has version check logic; ensure it skips when Lemonade is present
  • src/gaia/version.py — Version pin source of truth
  • CI/CD workflow for NSIS build — Fetch Lemonade MSI artifact

Considerations

  • Installer size will increase (~100-300MB depending on MSI variant)
  • Lemonade MSI install is fast (~10s, silent mode)
  • If Lemonade MSI install fails, GAIA app should still install — fallback to runtime download via gaia init
  • Uninstall: gaia uninstall --purge-lemonade already handles Lemonade removal via msiexec /x

Future: Deep Integration with lemond (separate issue)

Lemonade recently shipped lemond, a standalone binary designed for bundling. A more integrated approach would:

  • Use lemond instead of the full Lemonade MSI
  • Build a model management dashboard in Agent UI (download, delete, switch models)
  • Tighter lifecycle management (start/stop lemond from GAIA)

This deeper integration should be tracked in a future milestone, not v0.17.3.

Related issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestinstallerInstaller changesp1medium priority

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions