Commit Graph
691 Commits
Author SHA1 Message Date
ProxMenuxBot ed5f0e8393 Update app tracking hints 2026-09-12 09:40:05 +00:00
ProxMenuxBot a4537be773 Update helpers_cache.json 2026-09-12 02:26:12 +00:00
ProxMenuxBot 8f62859971 Update app tracking hints 2026-09-12 01:43:51 +00:00
MacRimi 0b64549230 Focus the Audit & Report tab, scope API tokens 2026-09-12 00:22:14 +02:00
ProxMenuxBot fb1517807c Update helpers_cache.json 2026-09-11 10:20:22 +00:00
ProxMenuxBot 685b37bc43 Update app tracking hints 2026-09-11 10:04:12 +00:00
ProxMenuxBot dd2a9f611d Update helpers_cache.json 2026-09-10 15:35:46 +00:00
ProxMenuxBot 30e6e64d4f Update app tracking hints 2026-09-10 15:17:31 +00:00
ProxMenuxBot f9373f8777 Update helpers_cache.json 2026-09-10 10:19:59 +00:00
ProxMenuxBot 5b4366fa82 Update helpers_cache.json 2026-09-09 15:40:19 +00:00
ProxMenuxBot 1df63be887 Update app tracking hints 2026-09-09 15:23:31 +00:00
ProxMenuxBot 1919e62646 Update helpers_cache.json 2026-09-08 15:45:06 +00:00
ProxMenuxBot 38d445a379 Update helpers_cache.json 2026-09-08 10:21:41 +00:00
ProxMenuxBot 150494bce1 Update app tracking hints 2026-09-08 10:09:14 +00:00
ProxMenuxBot e9c5a12702 Update helpers_cache.json 2026-09-07 20:57:05 +00:00
ProxMenuxBot 3dcf6cd661 Update helpers_cache.json 2026-09-07 16:57:37 +00:00
ProxMenuxBot d91599d354 Update app tracking hints 2026-09-07 16:42:34 +00:00
ProxMenuxBot 97bf9e24e5 Update helpers_cache.json 2026-09-07 11:11:20 +00:00
ProxMenuxBot cc66939095 Update app tracking hints 2026-09-04 15:13:17 +00:00
byGarcia de72e18a77 feat(docker): name containerised applications and the versions they run
An LXC running its workload in Docker could not answer two questions it
already had the data for: which application is in there, and whether a
newer version exists.

**Which version is available.** The Updates tab resolved that number only
for docker.io, and only when a version tag happened to share the digest of
the tag in use. On ghcr.io, lscr.io or quay.io the row said "New image
available" with no number at all. The image a pull would install carries
its own version label, so it is now read from the registry by digest —
over the same protocol and Bearer challenge the digest comparison already
uses, and through the same label lookup the installed version uses, now
shared as _docker_version_from_labels.

The question this answers is the one the tab asks: what do I get if I
re-pull this tag. Not "what is the newest upstream release", which is a
different number whenever a tag is pinned or the publisher tags releases
differently from images.

Docker Hub keeps priority on docker.io: its tag API is not a pull and does
not spend the anonymous pull-rate budget, and official images carry no
labels for the registry path to read. The digest still decides whether an
update exists; this only names it, and declines to name it when the answer
would be a guess — no build for this platform, no labels, an unreadable
manifest, a moving tag, a rebuild of the same version, or two sides whose
versions came from different label keys. Each refusal is recorded in
available_version_source.

Attestation manifests are skipped explicitly: they advertise
unknown/unknown and their config blob is a provenance document, not an
image. Every document is fetched by digest and verified against it, the
config read is bounded, and it is cached per digest, which never changes
content. The CDN redirect is followed by hand, dropping Authorization:
urllib re-sends it to the redirect target and signed-URL storage rejects a
second auth mechanism.

**Which application it is.** The probe already read "1.37.2" out of a
Vaultwarden container and get_suggestions discarded it, so the panel
answered "No new applications were detected" about an application whose
version it had just measured. Containerised applications are now offered
for registration like any other, with their name, logo, published ports
and installed version.

What they do not get is an update path of their own, because they do not
have one: updating Vaultwarden means pulling and recreating its image. A
new update_via=docker marker records that delegation, so one release stays
one badge, one notification and one button. The marker is validated rather
than inferred from installed_via, since docker_exec with an upstream is a
legitimate registration someone may already rely on; combining it with an
upstream is rejected instead of silently stripped, because registering an
app that checks GitHub behind a delegation promising it will not is worse
than an error message.

Three failure modes the delegation had to be defended against: detector
auto-healing would have migrated the app onto a leftover /root/.<app>
marker and quietly un-delegated it; saving replaces the whole record, so
the editor carries the marker explicitly rather than dropping it on the
first port edit; and the release-age hold gates on a publish date a
delegated app never has, which deferred the whole schedule forever.

Their version is resolved server-side through the container the detector
declares — not through the app's name or image, since Immich's compose
service and image are both immich-server while the application is immich.
The annotation happens on the way out of both endpoints rather than into
their caches: the App tab's cache is invalidated by events, not by time,
and the Docker inventory it reads is built asynchronously, so annotating
before storing froze a response taken before the first scan.

The rows carry that name too. display_name was already computed and
already used by the bulk-update section; the image row, the update
notification and the CT badge now use it as well. A delegated app's
pending update counts in the badge only while its image is not already
being counted, so registering just the application does not leave the
container looking up to date, and registering both does not count twice.

Catalog: four detectors verified on real containers, following the rules
in the file. vaultwarden and immich gain docker fallbacks for installs
where the native marker does not exist. netalertx is new — note its
repository is netalertx/NetAlertX; the Docker Hub namespace 404s.
technitiumdns is new and uses Technitium's own update endpoint rather than
GitHub releases: its marker reads 15.4 while the release tag is v15.4.0,
and _version_tuple compares (15,4,0) > (15,4) as an update that would
never clear.

Verified live against ghcr.io (Immich 3.1.0), docker.io (Vaultwarden
1.37.2) and lscr.io (Radarr 6.3.0.10514-ls314), plus postgres:16, which
correctly reports no version because official images carry no labels.
Exercised end to end on Proxmox VE 9.2.4 with NetAlertX reporting
26.6.3 -> 26.9.0. 31 new unit tests cover the resolution rules, every
refusal, the delegation contract and the container-to-image pairing.
2026-09-04 13:16:28 +02:00
ProxMenuxBot 56da2ac880 Update helpers_cache.json 2026-09-04 10:15:52 +00:00
ProxMenuxBot 966e9799f2 Update helpers_cache.json 2026-09-03 15:33:25 +00:00
VAIO73 cecffbc89f fix: prefer runtime-verified app detectors 2026-09-03 13:10:43 +02:00
ProxMenuxBot ae3b93a3c1 Update helpers_cache.json 2026-09-03 10:28:05 +00:00
ProxMenuxBot 5b41cbfbe8 Update helpers_cache.json 2026-09-02 15:43:22 +00:00
ProxMenuxBot 17a72753bb Update app tracking hints 2026-09-02 15:25:16 +00:00
ProxMenuxBot 3c39f84290 Update helpers_cache.json 2026-09-02 02:13:31 +00:00
ProxMenuxBot bdab88c2e8 Update app tracking hints 2026-09-02 01:34:51 +00:00
ProxMenuxBot 7cdf562efb Update helpers_cache.json 2026-09-01 20:21:04 +00:00
ProxMenuxBot 4763897272 Update app tracking hints 2026-09-01 17:26:55 +00:00
MacRimiandGitHub 9946dcfd08 Merge pull request #318 from MacRimi/develop
New version 1.2.5
2026-09-01 19:26:35 +02:00
ProxMenuxBot bc8a95263a Update helpers_cache.json 2026-09-01 15:50:15 +00:00
ProxMenuxBot 7380956975 Update helpers_cache.json 2026-08-31 12:18:12 +00:00
ProxMenuxBot 59080873cc Update helpers_cache.json 2026-08-30 20:20:23 +00:00
ProxMenuxBot a3c07c1d23 Update helpers_cache.json 2026-08-28 21:36:54 +00:00
ProxMenuxBot 2fbbca0944 Update helpers_cache.json 2026-08-27 21:30:56 +00:00
ProxMenuxBot f08ec94521 Update helpers_cache.json 2026-08-27 06:25:33 +00:00
ProxMenuxBot 81b163ae4d Update helpers_cache.json 2026-08-26 12:34:58 +00:00
ProxMenuxBot 82e8cd220c Update helpers_cache.json 2026-08-25 18:27:41 +00:00
ProxMenuxBot 942384f0dd Update helpers_cache.json 2026-08-25 00:48:37 +00:00
ProxMenuxBot 0207cdf4af Update helpers_cache.json 2026-08-24 18:27:55 +00:00
ProxMenuxBot 0473430f7a Update helpers_cache.json 2026-08-24 12:31:42 +00:00
MacRimi 0251f77331 overhaul app tracking and update orchestration
- Generate and ship a verified 389-app tracking catalog with 23 runtime overrides, fallback detectors, ports, logos, and Docker Hub tag previews.
- Support modern Proxmox VE Helper-Scripts markers, historical installations, and official or manual app deployments.
- Rework the LXC App and Updates tabs with cached suggestions, explicit discovery, version tracking, web links, custom updaters, and complete i18n.
- Add independent OS, app, Docker Engine, Docker image, bulk, and scheduled update targets.
- Add digest-based Docker inventory, Compose dependency grouping, safe standalone-container recreation with rollback, and package-scoped Docker Engine updates.
- Refresh per-LXC caches after lifecycle and update tasks, then emit idempotent notifications based on the verified final state.
- Harden Coral USB recovery by removing orphaned gasket DKMS registrations and validating that dpkg is healthy before reporting success.
2026-08-23 12:43:03 +02:00
ProxMenuxBot f90f72dcac Update helpers_cache.json 2026-08-22 18:17:19 +00:00
ProxMenuxBot e22699602c Update helpers_cache.json 2026-08-22 06:25:15 +00:00
ProxMenuxBot 15db6c282b Update helpers_cache.json 2026-08-21 18:24:46 +00:00
ProxMenuxBot 69a7b07a8d Update helpers_cache.json 2026-08-21 00:51:22 +00:00
ProxMenuxBot f7b29a9bbf Update helpers_cache.json 2026-08-20 12:31:01 +00:00
ProxMenuxBot 8604e66d60 Update helpers_cache.json 2026-08-20 00:46:14 +00:00
ProxMenuxBot 78c0508b5a Update helpers_cache.json 2026-08-19 18:21:35 +00:00