Private
Public Access
CI / rust (push) Successful in 3m6s
CI / go (push) Successful in 33s
CI / js (push) Successful in 34s
Standalone clients that resolve a machine unique ID (OS machine ID first, falling back to a generated UUID persisted to disk), detect hostname/IP/ container/orchestrator, and register+re-ping origin.warky.dev's public service-checkin endpoint on a daily interval. Ported from icy2's internal origincheckin package but extended to the full check-in contract and made dependency-light for external reuse. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
25 lines
580 B
Go
25 lines
580 B
Go
//go:build linux
|
|
|
|
package originclient
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// machineID reads the systemd/dbus machine ID, which is stable across
|
|
// reboots and unique per Linux install (but not per container, since it is
|
|
// typically inherited from the image unless explicitly reset).
|
|
func machineID() (string, error) {
|
|
for _, path := range []string{"/etc/machine-id", "/var/lib/dbus/machine-id"} {
|
|
data, err := os.ReadFile(path)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
if id := strings.TrimSpace(string(data)); id != "" {
|
|
return id, nil
|
|
}
|
|
}
|
|
return "", errMachineIDUnavailable
|
|
}
|