github doctor-io/homeio v1.9.5
Homeio v1.9.5

3 hours ago

What this PR does

Each Homeio server now reports itself to homeio.app/api/stats a minute after startup and every 12 hours, so homeio.app/stats can show how many servers are running and on which versions.

A ping carries four fields and nothing else: a random instance ID, the Homeio version, the CPU architecture and the OS. It only runs in production, never in demo mode, and it can be turned off in Settings → Advanced → Usage Stats. Setting HOMEIO_TELEMETRY=false turns it off and locks the switch in the UI. HOMEIO_TELEMETRY_URL points it elsewhere for testing.

The README and .env.example still described the PostHog ping removed in 1.5.10; they now describe this one.

Migration 0012_telemetry adds telemetry_enabled (default true) and telemetry_instance_id to settings.

Type of change

  • Bug fix
  • New feature
  • Refactor
  • Docs / chore

Checklist

  • npm run test passes (844 tests)
  • npm run lint passes
  • If UI change — screenshot or description of how to verify included below

How it was verified

  • Script install (my server, 192.168.1.43): update.sh on this branch applied the migration, the first ping landed and homeio.app/stats counts it. /api/health and the auth redirect answer private, no-store with cf-cache-status: BYPASS through homeio.ahmedtabib.com.
  • Docker, upgrading from the published ghcr.io/doctor-io/homeio:latest with an existing user: drizzle-kit push added both columns and kept the user. The first ping went out from the container with the stored instance ID. Turning the switch off in Settings → Advanced stopped pings across a restart. With HOMEIO_TELEMETRY=false, the API reports disabledByEnv, ignores a PUT turning it back on, and the switch shows as locked with an explanation.

Don't miss a new homeio release

NewReleases is sending notifications on new releases.