Every install gets the same build, so updating always gets you the latest release regardless of license. A Pro or Lifetime license unlocks additional features rather than earlier access to builds; see Pro & Lifetime Features.
In-app updater (manual binary installs)
From Settings > Updates (admin only), Kernel can check for, download, and apply an update itself:- Check: queries
KERNEL_UPDATES_API(defaulthttps://api.kernelmedia.tv) for the latest version. - Download: fetches and checksum-verifies the new binary.
- Apply: renames the running binary to
.bak, swaps in the new one, and re-execs. If anything fails, it automatically rolls back to the.bakbinary. The bundled ffmpeg tree and transcoder binary are updated the same way.
Docker
Don’t use the in-app updater inside a container. The server has no way to detect it’s running in Docker, so an in-app update swaps the binary inside the container’s writable layer, and that change is lost the next time the container is recreated (which is exactly what an orchestrator ordocker compose up does). Instead, update the image itself:
/app/data and /app/log are mounted volumes, your database and settings carry over untouched.
Linux packages (deb/rpm)
Packaged installs setKERNEL_MANAGED, which disables the in-app updater. The package manager is authoritative instead:
/etc/kernelmediaserver/kernelmediaserver.env are marked as config files, so local edits survive the upgrade.
Homebrew (macOS)
Like the Linux packages, the Homebrew formulas setKERNEL_MANAGED, which disables the in-app updater automatically. brew is authoritative instead:
