feat: add Nix flake package, AppImage and .deb packaging

- flake: build teleportfling and teleportfling-gui as nixpkgs packages
  (buildGoModule) with a .desktop entry and icon for the GUI
- packaging/appimage.sh: bundle the GUI + runtime libs (recursive ldd)
  into a self-contained AppImage via appimagetool
- packaging/deb.sh: build a .deb for Debian/Ubuntu with both binaries,
  desktop entry, icon and declared runtime dependencies
- README: document all three packaging methods
- .gitignore: ignore dist/
This commit is contained in:
2026-09-19 10:31:35 +01:00
parent a8e2a860b4
commit 5f5a2d8650
7 changed files with 305 additions and 36 deletions
+41
View File
@@ -78,6 +78,47 @@ TeleportFling itself.
See `contrib/README.md``contrib/install-daemon.sh` installs a per-user
systemd unit that runs the headless CLI with its own config.
## Packaging
Three distribution formats are provided:
### Nix / NixOS
The flake builds both binaries as packages:
```sh
nix build .#teleportfling # headless CLI
nix build .#teleportfling-gui # desktop GUI + tray (default)
nix run .#teleportfling-gui
```
The GUI package also installs a `.desktop` entry and icon.
### AppImage
A self-contained AppImage of the GUI (bundles the runtime libraries):
```sh
./packaging/appimage.sh
# → dist/TeleportFling-0.1.0-x86_64.AppImage
```
Requires `appimagetool` in `dist/` (see the script header) and the flake dev
shell for building.
### Debian / Ubuntu
A `.deb` for Debian/Ubuntu (both binaries + desktop entry + icon):
```sh
./packaging/deb.sh
# → dist/teleportfling_0.1.0_amd64.deb
```
Install with `sudo dpkg -i dist/teleportfling_0.1.0_amd64.deb` (then
`sudo apt-get install -f` to pull dependencies if needed). The binaries
require glibc ≥ 2.34, so Ubuntu 22.04+ / Debian 12+ are supported.
## Development
- `go build ./...` — build