From bf4009558decc77569f5ebc5cb5cbbb5a61ba60f Mon Sep 17 00:00:00 2001 From: Fredrik Johansson Date: Tue, 30 Jun 2026 11:36:34 +0200 Subject: [PATCH] fix: desktop app binary missing from CI release; add prebuilt binary docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit wails build -o with a relative path doesn't resolve against the shell's CWD — Wails joins it onto its own build/bin/ output dir, so the binary landed in cmd/app/dist/ instead of the top-level dist/ the release step globs. Build with the default name and cp it into dist/ explicitly. Also document how to download and run the prebuilt daemon/anchor release binaries on Linux, macOS, and Windows. Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/build.yml | 3 ++- README.md | 45 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index f70bb70..9219675 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -68,7 +68,8 @@ jobs: - name: Build desktop app run: | cd cmd/app - wails build -trimpath -ldflags="-s -w" -tags webkit2_41 -o ../../dist/waste-linux-amd64 + wails build -trimpath -ldflags="-s -w" -tags webkit2_41 + cp build/bin/waste ../../dist/waste-linux-amd64 # ── Publish release (tags only) ───────────────────────────────────────── diff --git a/README.md b/README.md index b00618a..83238b4 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,51 @@ waste-go/ --- +## Prebuilt binaries + +Every tagged release publishes cross-compiled binaries — no Go toolchain required. Grab them from the repo's **Releases** page: + +``` +https://repo.explewd.com/explewd/waste-go/releases +``` + +| File | What it is | Run it on | +|---|---|---| +| `waste-daemon--` | The peer process — your identity, mesh connections, file shares | Each friend's own machine | +| `waste-anchor--` | The signaling relay (no message content ever passes through it) | One server you control (VPS) | + +`` is `linux`, `darwin` (macOS), or `windows`; `` is `amd64` or `arm64` (Windows builds are amd64 only). Windows binaries have a `.exe` suffix. + +**Linux / macOS:** + +```bash +curl -LO https://repo.explewd.com/explewd/waste-go/releases/download//waste-daemon-linux-amd64 +chmod +x waste-daemon-linux-amd64 +./waste-daemon-linux-amd64 -alias yourname -data-dir ~/.waste --join 'waste:eyJ...' +``` + +> **macOS Gatekeeper:** unsigned binaries downloaded from a browser get a quarantine flag and macOS will refuse to run them ("cannot be opened because the developer cannot be verified"). Clear it once after downloading: `xattr -d com.apple.quarantine waste-daemon-darwin-arm64` (or right-click → Open the first time, which prompts for an override). + +**Windows:** download the `.exe`, then run it from PowerShell or `cmd.exe`: + +```powershell +.\waste-daemon-windows-amd64.exe -alias yourname -data-dir C:\waste --join "waste:eyJ..." +``` + +SmartScreen may warn about an unrecognized publisher on first run — these binaries aren't code-signed. Click "More info" → "Run anyway". + +Once the daemon is running, drive it with the [TUI](#terminal-ui) (`./cmd/tui` built locally, or the web UI in [daemon mode](#daemon-mode-for-users-running-the-daemon-locally)) — the daemon itself has no UI of its own, it just exposes the local IPC API on port 17337. + +The `waste-anchor` binary is for whoever is hosting a network — see [Hosting on a VPS](#hosting-on-a-vps) below for the full anchor + web UI setup. For a quick local anchor (e.g. testing on a LAN), just run: + +```bash +./waste-anchor-linux-amd64 -bind 0.0.0.0:8080 +``` + +> **No desktop app build in the current release.** A native Wails desktop app (`cmd/app/`) exists in the source tree, but the CI step that packages it for releases was broken (wrong output path) until this fix — earlier tagged releases only have daemon/anchor binaries. The next tag will include `waste-linux-amd64`. Until then, build it yourself with `./build-app.sh` (see [Desktop app (Wails)](#desktop-app-wails) below). + +--- + ## Hosting on a VPS You need two things on the server: the **anchor** (signaling process) and the **web UI** (static files). Both are served through the same domain via Nginx Proxy Manager.