Desktop
Yardmaster runs as a local desktop application with one command. Because the whole product is a single binary with an embedded web UI, there is nothing to install alongside it: no database server, no container, no Kubernetes.
Download
Every release attaches ready-to-run downloads on the
releases page: a Yardmaster.dmg for macOS with
the app inside, a windows_amd64.zip holding yardmaster.exe, and tar.gz archives of the binary
for macOS and Linux. A SHA256SUMS file lists the checksum of each one.
The downloads are not yet signed with a developer certificate, so the operating system warns that the developer is unidentified on first launch. On macOS, right-click the app and choose Open, then Open again. On Windows, choose More info and then Run anyway. A signed release removes the warning and is planned.
Run it
From a download, open Yardmaster.app on macOS or run yardmaster.exe desktop on Windows. From a
binary or a source build, run:
yardmaster desktop
This serves on a private loopback port, keeps its database in a per-user data directory, and opens the web UI in your default browser. There are no flags to set. The data directory follows the platform convention:
| Platform | Data directory |
|---|---|
| macOS | ~/Library/Application Support/Yardmaster |
| Windows | %AppData%\Yardmaster |
| Linux | ~/.config/Yardmaster |
The chosen port persists in the data directory and is reused on the next launch, so your sign-in and tour state survive a restart. Launching a second copy while one is running opens the existing instance instead of starting another server.
Set YARDMASTER_DESKTOP_NO_BROWSER to any value to skip opening a browser, for a headless or
remote machine. The encryption pair still enables stored credentials the same way it does for
serve.
Access and tokens
A fresh desktop instance starts with no tokens, and until the first token exists the API answers without authentication. The server listens only on the loopback interface, so nothing off your machine can reach it, but on a shared computer any local account can. If other people use the machine, mint a token right away and sign in with it:
yardmaster token new --db "<data directory>/yardmaster.db" --name me
Once one token exists, every request must authenticate.
Stop it
The desktop app is the server. Closing the browser tab leaves it running so scheduled work
continues. To stop it, quit the terminal it runs in or end the yardmaster process. The packaged
macOS app below runs without a Dock icon, so stop it from Activity Monitor or with
pkill yardmaster.
Build the app yourself
The release workflow builds the macOS app and the dmg automatically, so most people use the
download. To build the bundle by hand, wrap the binary so it launches from the Dock or
Finder. The bundle's executable is a small launcher that runs yardmaster desktop. The launcher is
named launch, not Yardmaster, so it does not collide with the yardmaster binary on a
case-insensitive macOS filesystem:
APP=Yardmaster.app
mkdir -p "$APP/Contents/MacOS" "$APP/Contents/Resources"
cp yardmaster "$APP/Contents/MacOS/yardmaster"
cat > "$APP/Contents/MacOS/launch" <<'SH'
#!/bin/sh
exec "$(dirname "$0")/yardmaster" desktop
SH
chmod +x "$APP/Contents/MacOS/launch"
cat > "$APP/Contents/Info.plist" <<'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
<key>CFBundleName</key><string>Yardmaster</string>
<key>CFBundleIdentifier</key><string>dev.yardmaster.desktop</string>
<key>CFBundleExecutable</key><string>launch</string>
<key>CFBundlePackageType</key><string>APPL</string>
<key>LSUIElement</key><true/>
</dict></plist>
PLIST
Double-clicking Yardmaster.app now starts the server and opens the UI. To share it beyond your own
machine, sign it with an Apple Developer ID and notarize it, then wrap it in a .dmg. Without
signing, macOS shows an unidentified-developer warning on first launch.
Package a Windows app
On Windows the same binary runs with yardmaster.exe desktop. Build a signed .msi installer with
WiX that installs the binary and a Start-menu shortcut to yardmaster.exe desktop. Signing needs a
code-signing certificate.
Signing and notarization are the only steps that need credentials you provide. The desktop mode itself is built in and needs nothing.
