No results for ""
Telemetry
Overview
Demyx can send a daily active-install ping from the host stack. Telemetry is controlled by the host DEMYX_TELEMETRY variable and runs during the daily cron when enabled.
demyx host editDEMYX_TELEMETRY=trueSet it to false to disable daily telemetry:
DEMYX_TELEMETRY=falseThen restart the host stack:
demyx host restartInstall Opt-Out
The installer sends a one-time active install ping by default. To install without that ping and start with telemetry disabled:
wget https://demyx.sh/install
bash install --no-pingSigned Identity
Demyx 1.11.0 uses a trust-on-first-use identity for telemetry. During daily cron, Demyx creates /demyx/.telemetry when missing and stores:
| File | Purpose |
|---|---|
/demyx/.telemetry/private_key.pem | Local Ed25519 private key |
/demyx/.telemetry/public_key.pem | Public key registered with demyx.sh |
/demyx/.telemetry/identity.json | Registered install_id, key_id, and timestamp |
When an identity is not registered yet, Demyx registers the public key with:
POST /wp-json/demyx/v1/telemetry/registerAfter registration, daily telemetry is sent as a signed REST request to:
POST /wp-json/demyx/v1/telemetrySigned requests include install identity headers such as X-Demyx-Install-Id, X-Demyx-Key-Id, X-Demyx-Request-Id, and X-Demyx-Signature-Alg. The REST endpoint verifies the Ed25519 signature before storing telemetry. The signed body also includes the public key so demyx.sh can recreate a missing identity row only after the signature verifies against that key.
Fallback Behavior
If signed telemetry cannot run, Demyx falls back to the legacy active endpoint when compatibility fallback is enabled. Public pages and the host stack should not fail because telemetry is unavailable.
The compatibility endpoint is:
GET /?action=active&version=<version>&token=<legacy-token>Legacy pings are stored as telemetry events with ingest_path set to legacy. They do not create registered server identities because they do not submit a public key.
Servers
The Servers admin page primarily shows identities created through /wp-json/demyx/v1/telemetry/register. REST telemetry events that include an install_id but do not have a matching registered identity are shown as REST so active installs are visible while remaining distinct from fully registered identities.
Related
demyx cron— daily cron runs telemetry when enableddemyx host edit— editDEMYX_TELEMETRY- Environment Variables — host variable reference