techcheck-client

module
v0.1.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2026 License: MIT

README

Sunrise Tech Check

A cross-platform desktop tool that checks whether your machine and network are ready for remote work via Sunrise. Run before a session to surface latency, throughput, jitter, MTU, DNS, and clock-skew problems before they bite live.

What it does

  1. Asks for your name and email on a short consent screen (pre-filled from the last run on this machine).
  2. Collects machine information (OS, CPU, RAM, GPU, displays, USB count, network adapters with Wi-Fi detection, VPN/AV/firewall state, a stable machine ID).
  3. Fetches a city-level client location via ipinfo.io.
  4. Runs network measurements against every Sunrise region sequentially: latency, down/up throughput, jitter under load, MTU, clock skew, UDP 4172 reachability, and DNS timing.
  5. Uploads the structured report to Sunrise's ingest service. A copy saves to your Desktop either way.

Takes about three minutes. You can cancel at any time.

What it does NOT do

  • No reading of personal files, documents, or browsing history.
  • No screen recording or screen-content access.
  • No keystroke logging.
  • No microphone or camera access.
  • No credential access (passwords, tokens, keychains).
  • No always-on telemetry — the tool only uploads when you explicitly start a run and consent.

The uploaded report is the structured payload described above and nothing else. The source in this repository is the source that produces every signed binary distributed to the Sunrise team. You can rebuild and run from source to verify byte-for-byte.

Install

Production builds for the Sunrise team are distributed via an internal auto-updater. The signed binaries the team installs are built from this repository.

For verification or contributions, build from source. See below.

Build from source

Prerequisites: Go 1.22+, the Wails v2 CLI (go install github.com/wailsapp/wails/v2/cmd/wails@v2.12.0), and create-dmg (brew install create-dmg) for the macOS DMG package.

cd cmd/techcheck && wails dev     # live-reload dev window
make build-desktop                # macOS DMGs (arm64, x64) + Windows ZIP
go test ./...                     # all unit tests
go test ./cmd/techcheck/tests/e2e/... -v -timeout 120s    # end-to-end against local mocks

A source build with no private/secrets.env will compile and run, but uploads to the production Sunrise ingest fail without authentication. Point the tool at your own ingest via the sidecar config or provide your own private/secrets.env (see private/secrets.env.example).

macOS signing & notarisation

make build-desktop produces ad-hoc-signed .app bundles by default — usable on the build machine but rejected by Gatekeeper elsewhere. For a distributable build:

  1. Install a Developer ID Application certificate in your login keychain.
  2. Set APPLE_SIGN_IDENTITY, APPLE_ID, APPLE_TEAM_ID, and APPLE_APP_PASSWORD in private/secrets.env (see private/secrets.env.example).
  3. Run make release-desktop — builds, signs with hardened runtime + the network-client entitlement, submits each DMG to Apple's notary service, and staples the ticket. Takes ~10–30 minutes per DMG depending on Apple's queue.

Companion server

The regional probe servers the client tests against are in techcheck-beacons.

License

MIT. See LICENSE.

Directories

Path Synopsis
cmd
mockingest command
mockingest is a local stand-in for Preflight Ingest.
mockingest is a local stand-in for Preflight Ingest.
mockprobe command
mockprobe runs a local stand-in for a Sunrise nginx POP.
mockprobe runs a local stand-in for a Sunrise nginx POP.
techcheck command
techcheck/internal/config/defaults
Package defaults holds build-time-injected configuration values.
Package defaults holds build-time-injected configuration values.
techcheck/internal/config/identity
Package identity persists the user's name and email across runs so the identify screen can pre-fill the form.
Package identity persists the user's name and email across runs so the identify screen can pre-fill the form.
techcheck/internal/config/popsfetch
Package popsfetch retrieves the live POP list from the ingest service.
Package popsfetch retrieves the live POP list from the ingest service.
techcheck/internal/updater
Package updater queries the ingest server for the latest published version of a client app and reports whether an update is available or the running version has been deprecated.
Package updater queries the ingest server for the latest published version of a client app and reports whether an update is available or the running version has been deprecated.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL