Help expand the LXC app catalog — share your working detectors #306
Replies: 7 comments 11 replies
|
FYI, community-scripts if they are able to will write a flat file at /root/ with . which will have the version. Just a simple file + regex pointed to it with regex (\d+.\d+.\d+) should work. There are cases where the . will be a directory used by the app so it may have a slightly different filename. |
|
Is there support when using |
|
I took out what I thought wasn't needed from the original files. All of these were installed via community-scripts so most point to the version file it creates and then the github repo for the app. I know some of these were already in there, sorry about the duplication, I couldn't remember which was which. SearXNG is the only one I had to do manual on, I just couldn't figure out how to detect current version. The docker one has portainer with lts version check. I only modify the Plex url for plexpass based on what I found in PlexUpdate which I've been using for a while now to automatically update Plex. tunarr.json |
|
Working on the SearXNG local version and I can't seem to get the installed version check to work. I'm trying to use python distribution method. Tag regex is |
|
Hi @MacRimi I have been working on a personal script for managing my LXCs. You can find it at lxc-upgrade.sh you may find ideas (or have suggestions for me : ) ), currently I run this and it keeps my LXCs up to date. I have not got as far as running the update command if it exists as I am still investigating how I want to approach it. (I placed this comment in our last interaction but I'm not sure if you saw it.) PS On a docker host you may want to test for a WatchTower container, this tool automatically updates containers, if it is present you only need to worry about the standard OS stuff. |
|
Hi @SystemIdleProcess, @TCBWZA and @Vaso73, I've spent these past days thinking about how to improve this side of things. The first beta was an initial approach, and your comments and observations — especially @SystemIdleProcess's thorough analysis — helped me rethink both the App and Updates tabs. The app catalog now includes more than 300 apps from the Proxmox PVE Helper-Scripts collection, while the option to register manual or custom apps is still there. The Updates tab also gained a lot: even when an update method is detected automatically, you can modify it and adapt it to your setup. For LXCs with Docker Engine installed, the flow doesn't only track Docker's own version — it also inventories the images running inside and their versions, so you'll receive notifications when a new image release is available and you'll be able to update Docker images either manually or on a schedule, per image if you prefer. I'm hoping to release beta 2 in a few days for you to try it out.
|
|
I was wondering if it would be possible to have the ability to toggle the verbose output when executing the community-scripts update. Related to the update I noticed on most of the python apps that I get a lot of output like this:
|







Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi everyone 👋
The LXC Updates tab can update the OS and the apps in a container in one guided pass. For each tracked app, ProxMenux needs to know how to read the installed version from inside the CT and where to check the latest upstream release — that config lives in the App tab → Track Upstream Version section when you register the app.
There are two catalog files in the repo that feed this feature:
json/app_tracking_hints.json— the curated seed catalog I maintain (~50 apps, with logos, websites, default ports). Used by the UI to pre-fill the form when you register a known app.json/runtime_verified_overrides.json— runtime-verified detectors. Each entry is a detector that's been proven to work on a real container. This is the one designed for community contributions.If you've registered an app in your ProxMenux and gotten the version detection + upstream check working, that detector belongs in the overrides catalog. If you'd like to share it, it'll be added to the verified apps catalog and made available to all users.
Doesn't matter how the app was installed — community-scripts helper, official upstream script, manual build, anything. The catalog cares about the detector, not the installer.
One app per reply, please. Makes it easy to follow up on each.
Template — copy this into your reply and fill in what applies
Click the copy button on the block below, paste it into your reply, and fill in the values you set on the App tab for your app. Delete the lines that don't apply to your method — for example, if you use
dpkg, keep onlyPackage identifier; the rest of the method-specific block goes away.Wrap paths and regex values in backticks so special characters render correctly. Example:
`/opt/appname/version.txt`and`v?(\d+\.\d+\.\d+)`.Examples — how filled contributions look
Three real examples covering the most common cases. Match your app to the closest one:
Example 1 — dpkg method (app installed via an apt package)
cockpitcockpit-project/cockpit(?i)(?:v|release[-_/]?)?(\d+(?:\.\d+){1,3}(?:[-+._][0-9A-Za-z.-]+)?)Example 2 — Binary method (app installed via an upstream script that drops a binary into /opt)
/opt/AdGuardHome/AdGuardHomeAdguardTeam/AdGuardHomev?(\d+\.\d+\.\d+)Example 3 — file method (installed version read from a file inside the container)
/opt/tandoor/cookbook/version_info.pyTANDOOR_VERSION\s*=\s*["']v?(\d+\.\d+\.\d+)TandoorRecipes/recipesv?(\d+\.\d+\.\d+)Notice how each example only keeps the method-specific line that applies:
dpkgshows onlyPackage identifier,Binaryshows onlyBinary path,fileshowsFile path+Regex. All the other lines from the template are deleted in each case.Fast path — if you're comfortable with JSON
If you'd rather just paste your app's config file directly, this works too:
I'll extract the detector-shaped subset for the catalog myself.
Important — keep it generic
Please make sure the paths you share don't contain personal info: no IP addresses, no VMIDs, no hostnames, no personal directories like
/home/yourname/…. Use the canonical location the upstream installer places things at (/opt/appname/,/etc/appname/, etc.). If reproduction context helps me understand what you tested — kernel version, distro, unusual setup — put it in the reply prose, not in the technical fields.What happens next
Your contribution ships with the next beta and becomes the default for anyone with the same app.
Contributors get credited in the release notes.
Thanks.
All reactions