Installation
Requirements
- Debian 11+ or Ubuntu 20.04+
gitandcurl— installed automatically by the install script if missing
The GUI is a self-contained binary built with Go + Fyne. No additional GUI toolkit or system library is required.
One-line install (recommended)
This script:
- Checks your OS version (Debian 11+ or Ubuntu 20.04+ required)
- Installs
gitandcurlif they are missing - Clones ham-apps to
~/ham-apps - Downloads the latest pre-built GUI binary from GitHub Releases for your architecture (
amd64orarm64) - Adds ham-apps to your
PATHin~/.bashrc(and~/.zshrcif present)
Options
# Install to a custom directory
HAMAPPS_DIR=/opt/ham-apps curl -fsSL https://raw.githubusercontent.com/KW4JLB/ham-apps/main/install | bash
# Preview what will happen without making changes
bash install --dry-run
# Help
bash install --help
Manual install
Clone the repository and add it to your PATH:
git clone https://github.com/KW4JLB/ham-apps.git ~/ham-apps
echo 'export PATH="$HOME/ham-apps:$PATH"' >> ~/.bashrc
source ~/.bashrc
Then download the GUI binary for your architecture from the latest release and place it at ~/ham-apps/gui/ham-apps-gui:
# Example for amd64:
curl -fsSL -o ~/ham-apps/gui/ham-apps-gui \
https://github.com/KW4JLB/ham-apps/releases/latest/download/ham-apps-gui-linux-amd64
chmod 755 ~/ham-apps/gui/ham-apps-gui
Building from source
Requires Go 1.26+ and the Fyne build dependencies:
sudo apt-get install -y pkg-config libgl1-mesa-dev libx11-dev \
libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxxf86vm-dev
git clone https://github.com/KW4JLB/ham-apps.git ~/ham-apps
cd ~/ham-apps/gui
make build
The binary is written to ~/ham-apps/gui/ham-apps-gui.
Verify the install
Updating ham-apps
This runs a git pull in the installation directory. To update the GUI binary, re-run the install script or download a new binary from the releases page.
Uninstalling
Installed app state is tracked in ~/.local/share/ham-apps/installed/. Removing that directory clears the state but does not uninstall the apps themselves — run ham-apps uninstall <slug> for each app first.