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.