Skip to content

Releases: kjanat/udm-iptv

udm-iptv v4.3.2

Choose a tag to compare

@github-actions github-actions released this 20 Sep 17:58
v4.3.2
f17845b

Fixed: working v5 upgrades reported as failures

udm-iptv 4.3.2 fixes the installer's final health check when upgrading from the v4 shell implementation to the v5 Go prerelease.

In v4, the service's main process is the IGMP proxy. In v5, it is a supervisor that manages the proxy. The old check only recognised the proxy process, so a successful v5 installation could time out and report “the service is not healthy” even though the service was running.

The installer now recognises the v5 supervisor when the Go package's marker is present. Checks for v4 installations still require a real proxy process. This fixes the reported health-verification failure (#40).

Updating

Update your existing v4 installation to this stable release first:

udm-iptv upgrade --version 4.3.2

Want the v5 preview? Upgrade to v4 first (above), then run:

udm-iptv upgrade --latest --prerelease

Broader firmware and upgrade testing

This release expands automated lifecycle coverage to 22 firmware pairs: 17 release pairs and 5 Early Access pairs, including UniFi OS 6.0.7. Tests cover package installation and upgrades, offline restoration after a firmware-root swap, reboot persistence, package-manager contention, removal, and purge.

The v4-to-v5 regression test installs a downloaded prerelease package and checks that the upgrade reports success. Release lookup is authenticated to avoid anonymous GitHub API rate limits. DHCP and lock fixtures now run under systemd, and failures retain installer output and fixture logs.

These tests run in containers built from extracted ARM64 firmware. They provide lifecycle regression coverage, not a claim of validation on every physical router or ISP network.

Package: udm-iptv_4.3.2_all.deb

Fix and lifecycle CI changes (#41).

Full Changelog: v4.3.1...v4.3.2

udm-iptv v5.0.0-preview.5

Pre-release

Choose a tag to compare

@kjanat kjanat released this 19 Sep 10:08
v5.0.0-preview.5
d3a6852

Caution

Not for your router yet. This is a test build for the maintainer's own UDM Pro, cut so that one router can exercise the new installer, upgrader and diagnostics before v5.0.0. The installer, the package scripts and the upgrade path have only been tested in CI and on that router.

udm-iptv upgrade on v4 does not offer this version. It is a prerelease; only udm-iptv upgrade --prerelease picks it. Wait for v5.0.0.

Like every v5 build, this one reports to the maintainer's Sentry project, with reporting on by default. docs/telemetry.md describes what is reported and how to change it with udm-iptv telemetry or in the wizard.

Changed since preview.4

  • The wizard opened a blank screen in preview.4. configure and preview draw again.
  • The multicast proxy gets a terminal for its output. improxy writes its log lines with printf, and on a pipe the C library held them until 4 KiB accumulated or the process exited, so an improxy message could reach the journal hours late or only at shutdown. Its lines now arrive as they are written.

Upgrading from preview.4

udm-iptv upgrade --prerelease resolves this version and installs it through apt-get.

Changed since preview.3

See the preview.4 notes.

Full Changelog: v5.0.0-preview.4...v5.0.0-preview.5

udm-iptv v5.0.0-preview.4

Pre-release

Choose a tag to compare

@kjanat kjanat released this 19 Sep 03:58
v5.0.0-preview.4
39904dd

Caution

Not for your router yet. This is a test build for the maintainer's own UDM Pro, cut so that one router can exercise the new installer, upgrader and diagnostics before v5.0.0. The installer, the package scripts and the upgrade path have only been tested in CI and on that router.

udm-iptv upgrade on v4 does not offer this version. It is a prerelease; only udm-iptv upgrade --prerelease picks it. Wait for v5.0.0.

Like every v5 build, this one reports to the maintainer's Sentry project, with reporting on by default. docs/telemetry.md describes what is reported and how to change it with udm-iptv telemetry or in the wizard.

Changed since preview.3

  • The service waits for the DHCP hook to confirm it applied the lease, and fails to start when the hook reports a failure. Before, it watched for an address on the interface and could report a lease that never took.
  • configure puts the previous configuration back when the service will not start with the new one. The rejected file is kept as config.json.rejected next to it.
  • The VLAN interface the service creates carries the alias udm-iptv, and the service deletes it when it stops. A VLAN interface created by something else is left alone. Earlier builds meant to set the alias and did not; the kernel drops it from the request that creates the link.
  • Provider profiles no longer carry a WAN port or a LAN list. Switching profile, in the wizard or with configure set --profile, keeps the ports the console has. A fresh install still detects them.
  • A v4 configuration file that names no WAN port or LAN list imports with the ports the console detects.
  • Help, status and diagnose output are coloured on a terminal. Piped output stays plain.
  • The telemetry command is listed in --help and in tab completion.

Upgrading from preview.3

udm-iptv upgrade --prerelease resolves this version and installs it through apt-get.

Changed since preview.2

See the preview.3 notes.

Full Changelog: v5.0.0-preview.3...v5.0.0-preview.4

udm-iptv v5.0.0-preview.3

Pre-release

Choose a tag to compare

@kjanat kjanat released this 19 Sep 02:28
v5.0.0-preview.3
9e9e326

Caution

Not for your router yet. This is a test build for the maintainer's own UDM Pro, cut so that one router can exercise the new installer, upgrader and diagnostics before v5.0.0. The installer, the package scripts and the upgrade path have only been tested in CI and on that router.

udm-iptv upgrade on v4 does not offer this version. It is a prerelease; only udm-iptv upgrade --prerelease picks it. Wait for v5.0.0.

Like every v5 build, this one reports to the maintainer's Sentry project, with reporting on by default. docs/telemetry.md describes what is reported and how to change it with udm-iptv telemetry or in the wizard.

Changed since preview.2

  • An upgrade run by preview.1 swapped the executable in place and left dpkg recording 5.0.0~preview.1 while preview.2 ran. upgrade now compares the candidate with dpkg's record as well as the running executable, and reinstalls the package through apt-get whenever the two disagree, without --force.
  • status starts with an Installation line: standalone, package <version>, or the package version dpkg holds when it differs from the running executable.
  • The debconf template used the po-debconf _Description field, so every package install printed debconf: Unknown template field '_description'. Fixed.

Upgrading from preview.2

udm-iptv upgrade --prerelease resolves this version and installs it through apt-get.

Upgrading from preview.1

udm-iptv upgrade --version 5.0.0-preview.3 replaces the executable in place; the next udm-iptv upgrade after that reinstalls the package so dpkg's record catches up.

Changed since preview.1

See the preview.2 notes.

Full Changelog: v5.0.0-preview.2...v5.0.0-preview.3

udm-iptv v5.0.0-preview.2

Pre-release

Choose a tag to compare

@kjanat kjanat released this 19 Sep 01:32
v5.0.0-preview.2
f189e2b

Caution

Not for your router yet. This is a test build for the maintainer's own UDM Pro, cut so that one router can exercise the new installer, upgrader and diagnostics before v5.0.0. It has been installed on exactly one console. The installer, the package scripts and the upgrade path changed a lot since preview.1 and have only been tested in CI and on that router.

udm-iptv upgrade on v4 does not offer this version. It is a prerelease; only udm-iptv upgrade --prerelease picks it. Wait for v5.0.0, which will come with proper release notes and a tested upgrade from v4.

Like every v5 build, this one reports to the maintainer's Sentry project, with reporting on by default. docs/telemetry.md describes what is reported and how to change it with udm-iptv telemetry or in the wizard.

For installations running preview.1

  • Upgrade with udm-iptv upgrade --version 5.0.0-preview.2. preview.1 has no --prerelease flag and replaces the executable in place, so dpkg keeps listing preview.1 until the next package upgrade. From this version on, a package installation upgrades through apt-get with the attested .deb, and upgrade --prerelease resolves the newest prerelease.
  • Run udm-iptv status afterwards. The NAT rules the shell version left behind are removed on the first restart, and the new NAT evidence per destination section shows which configured destinations actually have a route through the IPTV interface.
  • udm-iptv diagnose writes the local capture file without redaction, so addresses, prefixes and groups read as they are.

What changed since preview.1

Installation and packaging

  • A lock in /data/udm-iptv serialises install, upgrade, configure and removal.
  • Removing a package installation goes through apt-get; a partly installed package is left to dpkg.
  • configure set and configure get change and read settings without the wizard. configure get exits with status 3 when nothing is configured, which the package scripts use to decide whether to bootstrap a profile or import a v4 configuration.
  • The package bootstrap finds a v4 udm-iptv.conf backup under /data/udm-iptv.
  • Selecting Custom leaves IPTV unconfigured instead of applying KPN's settings.
  • A fresh installation seeds one downstream interface, br0 where it exists.
  • Tab completion works on UniFi OS.

Networking

  • A DHCP route policy replaces the old default-route toggle: advertised routes only, advertised routes including a default route, or no routes from the lease.
  • VLAN interfaces created by udm-iptv carry an alias. A VLAN interface with the configured name that udm-iptv did not create is replaced only when it already is the configured VLAN on the configured port; anything else is refused with an error.
  • On an interface udm-iptv did not create, only the address the previous lease assigned is retired. Addresses the firmware put there stay.
  • NAT rules are reconciled: every MASQUERADE rule on the IPTV interface that udm-iptv did not write, or that is not a configured destination, is removed. The counters of removed rules are written to the log first.
  • A 0.0.0.0/0 NAT destination survives a restart with its counters.
  • Multicast groups are rejected as proxy source ranges. improxy ignores the source ranges altogether; only igmpproxy applies them.

Diagnostics

  • status and diagnose list every MASQUERADE rule on the IPTV interface with its packet counters, and say per configured destination whether a route on the interface can carry traffic to it.
  • The multicast forwarding table is shown per route with interface names, packets and bytes; unresolved entries are counted apart.
  • The DHCP hook records the lease with every option the server sent, and the snapshot shows it.
  • diagnose --follow shows a timeline of changes: routes appearing and disappearing, packet rates per route, memberships, service state, link state and leases, with a manual marker key.
  • Journal entries keep their own timestamps and source, and lines from ubios-udapi-server about udm-iptv are collected too.
  • Unreadable counters render as unavailable instead of 0.
  • The capture launcher waits for the worker's first record instead of a fixed second.

Telemetry

  • The hourly observation carries the diagnostics snapshot, so a problem report can be read next to the state the router was in.
  • The reporting question is asked before any provider lookup runs.
  • Release downloads are verified against the workflow that built them at the tag being installed.

Full Changelog: v5.0.0-preview.1...v5.0.0-preview.2

udm-iptv v5.0.0-preview.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:43
v5.0.0-preview.1
bd50f13

v5.0.0-preview.1

Important

STILL VERY EXPERIMENTAL!!!

I mean... technically it's more sound than it was before, but the installer has not been tested fully. And UX right now is somewhat... Yeah. you'll see... inconsistent.

ANY ISSUES/COMMENTS WHATEVER, PUT IN #38.
Don't be alarmed at any cursing of mine at AI, I won't curse at you 😄

I recommend waiting a few days, as I expect a more polished non-preview release sometime later next week.

If you want to install it, first update to the latest v4 stable release before installing v5.
I am running it on my router and during install I caught a few bugs (not ones that prevented the actual install), but IPTV still works.

@woutje76 Apologies for not updating release notes sooner!

This is the first preview of udm-iptv v5 and a major rewrite of the project.

The shell-based runtime has been replaced by a single ARM64 Go application. Configuration, installation, service supervision, IPTV networking, upgrades, diagnostics and the terminal UI are now owned by the new application rather than spread across the old shell scripts and package machinery.

Runtime and CLI

  • New Go runtime and CLI. configure, install, restart, status, diagnose, upgrade, uninstall and telemetry management now live in one application.
  • New terminal UI. configure, preview and a fresh interactive install use the new TUI. The other commands are still conventional text output in this preview; diagnose only opens the terminal viewer with --follow.
  • New interactive setup. The wizard can detect local interfaces, browse providers by country, suggest a provider from bounded public-IP/PTR discovery, validate settings and show a final review before anything is saved.

Configuration and provider setup

  • Structured configuration and v4 migration. Configuration now lives at /data/udm-iptv/config.json. Existing /etc/udm-iptv.conf installations are imported automatically, including compatibility handling for legacy DHCP, proxy, IGMP and quickleave behavior.
  • Provider profiles are now structured data. The old profile files have been replaced by a catalog used by both the CLI and wizard, including country/provider selection and editable defaults.
  • Hardware-aware defaults. Fresh configuration can use discovered interfaces instead of blindly relying on the old hard-coded assumptions.

Networking and service supervision

  • Rewritten networking. VLAN setup, IPTV DHCP leases, RFC3442 routes, static addressing, NAT and route reconciliation are managed directly by the Go service.
  • DHCP lease updates are reconciled instead of blindly torn down. Unchanged IPTV routes can survive renewals, and invalid lease updates are rejected before replacing the working state.
  • Stronger service supervision. Installation and restart only report success after both the systemd service and multicast proxy have become ready and remained stable.
  • More runtime visibility. Status and diagnostics expose proxy, IGMP version, quickleave, debug state and downstream bridge/snooping information where it can actually be observed.

Firmware survival and upgrades

  • Firmware-resilient proxy runtime. The selected multicast proxy, ELF loader and required shared libraries are preserved under /data/udm-iptv, allowing recovery after firmware updates without downloading replacement binaries.
  • Verified, rollback-safe upgrades. Release upgrades verify checksums and GitHub artifact attestations, activate the new executable, perform a health check and automatically restore the previous version if activation fails.
  • Persistent installation has been reworked. The executable, configuration, service files, runtime bundle and recovery state now have explicit ownership and lifecycle handling under /data/udm-iptv.

Diagnostics

The v4 diagnostic functionality has been ported to Go and expanded with bounded captures, structured failure reporting, downstream bridge state, journal collection, redaction, text/JSON rendering and an interactive capture viewer.

The diagnostics implementation was also hardened further before this preview:

  • The entire capture, including external collectors and rendering, is constrained by one monotonic deadline. (#36)
  • Completed short/text-only captures are preserved even when launcher startup acknowledgement is delayed. (#37)

Telemetry

Reliability reporting can send errors, lifecycle events, metrics, traces, configuration/preset history and, when enabled, network identity to the maintainer's Sentry project. Reporting preferences can be changed through udm-iptv configure or the telemetry commands.

Note

ONLY USED INTERNALLY TO HELP INFORM FUTURE CHANGES IN NETWORKING PROFILES AND TROUBLESHOOT BUGS IN THE CLI/SERVICE. IT IS NOT SHARED WITH ISPS, UBIQUITI, ADVERTISERS, OR ANYONE ELSE FOR THEIR OWN USE. The data does pass through Sentry because, well, that's where the telemetry goes.

Reporting is enabled by default in v5. But I get it if you want to have absolutely nothing to do with it... turn it off.

Packaging and release engineering

  • Releases now contain a standalone ARM64 binary and an nFPM-built Debian package produced through GoReleaser.
  • CI and release validation have been expanded with race-tested Go tests, linting, vulnerability scanning, package validation, attestations and firmware lifecycle test infrastructure.
  • The old shell/debhelper build and release machinery has largely been replaced by the Go build, GoReleaser and the new firmware-test tooling.

Known rough edges in this preview

This is the part where "VERY EXPERIMENTAL" earns the capital letters.

  • Bash tab completion is currently broken on the tested UDM Pro. The generated Cobra completion expects Bash-completion helpers such as _get_comp_words_by_ref that are not available there.
  • The TUI is not everywhere yet. configure, preview and fresh interactive install use it; restart, uninstall, upgrade, status and normal diagnose output are still plain CLI text.
  • The Internet/WAN port picker still needs work. Selection and ordering do not yet prioritize public IPv4 addresses and connection state the way they should, interfaces without a useful address remain visible, there is no quick filter for non-public interfaces, and empty interface metadata is noisier than it has any right to be.
  • eth8 can still survive as a fallback or existing selection. Fresh discovery is smarter than that, but the preview does not yet consistently choose the known WAN IPv4/netmask first.
  • First-run provider suggestion can happen before telemetry consent is shown. With the default network-identity setting, that can contact ipify and perform reverse-DNS lookup before you have answered the telemetry question.
  • Legacy provider-profile inference has a known bug. An imported v4 configuration may fail to be recognized as its matching provider profile even though the configuration itself is imported.

Feedback

The complete v5 rewrite, current rough edges and preview feedback are being tracked in PR #38.


Full Changelog: v4.3.0...v5.0.0-preview.1

udm-iptv v4.3.1

Choose a tag to compare

@github-actions github-actions released this 17 Sep 18:49
v4.3.1
c83f976
  • Resolve GitHub .deb assets by filter instead of a hardcoded filename
  • Accept --prerelease when resolving the latest GitHub release
  • Strip a leading v from --version so tags are not doubled

Full Changelog: v4.3.0...v4.3.1

udm-iptv v4.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 12:56
v4.3.0
32c1a03
  • Add privacy-safe diagnostics in plain text and structured JSON Lines
  • Add bounded background captures with configurable detail and duration
  • Record service, routing, NAT, multicast and bounded journal state over time
  • Redact device identifiers while retaining provider routing evidence
  • Exercise one-time and captured diagnostics across the UniFi OS test matrix

Full Changelog: v4.2.0...v4.3.0

udm-iptv v4.2.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 23:21
v4.2.0
4f59644
  • Add context-aware Bash completion for commands, options and local paths
  • Load completions automatically in new UniFi OS SSH sessions
  • Exercise both source and installed-package completion behavior in CI

Full Changelog: v4.1.2...v4.2.0

udm-iptv v4.1.2

Choose a tag to compare

@github-actions github-actions released this 31 Aug 19:52
v4.1.2
260e7a1
  • Expand diagnostics with package, firmware, kernel and systemd lifecycle
    state, pending jobs, restart counters and current-boot service logs
  • Print the same diagnostic report automatically when installation leaves
    the IPTV service unhealthy

Full Changelog: v4.1.1...v4.1.2