mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-09-28 09:36:47 +00:00
New version 1.2.5
Stable release consolidating the v1.2.4 beta cycle (1.2.4.1-beta and 1.2.4.2-beta) into 1.2.5. Highlights: - Apps dashboard: single launcher for every LXC-registered app and user-defined Custom Web Link, with category badges, search, sort and one-click deep-links back to the guest modal. - LXC Apps & Updates end-to-end: App tab inside every guest modal, upstream version tracking, and Easy Updates that cover OS packages, registered apps, Docker Engine and per-image updates on the same 24-hour cycle. - Application detection catalog with 380+ tracked workloads generated live from community-scripts across seven detector methods. - Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Slovak and Swedish (i18n scaffolding by @vaso73). - NVIDIA multi-GPU passthrough by exact BDF so one card can be assigned to a VM while another stays operational on the host or LXC. - Navigation reorder, Memory & Swap real memory-pressure signal, native Pushover channel, Actions API, plus wide-reaching improvements across health, hardware, network, backup and post-install. Full release notes: see CHANGELOG.md and https://github.com/MacRimi/ProxMenux/releases
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Apps dashboard: one launcher for every Web Link | ProxMenux",
|
||||
"description": "Use the Apps dashboard to open registered LXC Web Links and custom links, organize them by category, and jump back to the guest that owns each service."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Apps tab",
|
||||
"description": "A single launcher for the web interfaces you use across the node, whether they come from a registered LXC application or a custom Web Link.",
|
||||
"section": "ProxMenux Monitor · Dashboard"
|
||||
},
|
||||
"intro": {
|
||||
"title": "A launcher, not an application installer",
|
||||
"body": "The <strong>Apps</strong> tab does not install software or discover services by itself. It turns saved Web Links into one searchable grid. LXC-owned links are configured in the guest's <appTabLink>App tab</appTabLink>; custom links let you include VM services, reverse proxies and external dashboards."
|
||||
},
|
||||
"sources": {
|
||||
"heading": "What appears in Apps",
|
||||
"intro": "Each launchable URL becomes its own card. The source determines where that card is edited, but not how it looks during normal use.",
|
||||
"colSource": "Source",
|
||||
"colAppears": "What appears",
|
||||
"colManagedFrom": "Where it is managed",
|
||||
"rows": [
|
||||
{
|
||||
"source": "Registered LXC application",
|
||||
"appears": "One card for every Web Link saved on the application record.",
|
||||
"managedFrom": "VMs & LXCs → LXC modal → App"
|
||||
},
|
||||
{
|
||||
"source": "Custom link bound to a guest",
|
||||
"appears": "A service URL associated with a specific VM or LXC.",
|
||||
"managedFrom": "Apps → Edit"
|
||||
},
|
||||
{
|
||||
"source": "Unbound custom link",
|
||||
"appears": "Any HTTP(S) destination, including an external or reverse-proxied service.",
|
||||
"managedFrom": "Apps → Edit"
|
||||
}
|
||||
],
|
||||
"relationshipTitle": "Apps and the LXC App tab have different jobs",
|
||||
"relationshipBody": "The LXC <appTabLink>App tab</appTabLink> owns application identity, Web Links and optional version tracking. The top-level <strong>Apps</strong> tab consumes those links and makes them easy to launch. Editing an LXC-owned card therefore takes you back to its guest record rather than creating a second copy of the configuration."
|
||||
},
|
||||
"cards": {
|
||||
"heading": "How to use a card",
|
||||
"intro": "The whole card is the launch target, while its smaller controls provide context without opening the service.",
|
||||
"items": [
|
||||
"Click the card to open its URL in a new browser tab.",
|
||||
"The logo uses the Web Link logo first and falls back to the application logo when appropriate.",
|
||||
"The category chip uses the same colour and label as the corresponding Web Link in the LXC App tab.",
|
||||
"A guest pill identifies the bound VM or LXC. Click it to open that guest's modal; LXC links land directly on <strong>App</strong>, while VM links open <strong>Status</strong>.",
|
||||
"A purple upward arrow means the specific application or Docker image has an available update. It is not a general update count for the whole guest."
|
||||
]
|
||||
},
|
||||
"toolbar": {
|
||||
"heading": "Search, filter and sort",
|
||||
"intro": "The toolbar narrows a large application collection without changing the saved records.",
|
||||
"items": [
|
||||
"Search matches the application name, guest name, VMID and category.",
|
||||
"The category filter shows one category at a time or all applications.",
|
||||
"Sort by <strong>Name</strong>, <strong>ID</strong> or <strong>Category</strong>. Category sorting inserts group headings between card groups.",
|
||||
"The selected sort order is remembered in this browser. Search text and category filtering reset when the page is revisited.",
|
||||
"The Apps tab remains available when the grid is empty, so the first custom link can be added without registering an LXC application first."
|
||||
]
|
||||
},
|
||||
"customLinks": {
|
||||
"heading": "Adding and editing custom Web Links",
|
||||
"intro": "Use a custom link when the service is not represented by a registered LXC application.",
|
||||
"steps": [
|
||||
"Press <strong>Add link</strong> from the toolbar or the empty state.",
|
||||
"Enter a name and a complete <code>http://</code> or <code>https://</code> URL.",
|
||||
"Optionally add a logo, choose or create a category, and bind the link to a VM or LXC.",
|
||||
"Save it. The new card is inserted into the grid immediately.",
|
||||
"To change or remove a custom link, press <strong>Edit</strong> and use the pencil on its card."
|
||||
],
|
||||
"colField": "Field",
|
||||
"colRequired": "Required",
|
||||
"colPurpose": "Purpose",
|
||||
"fields": [
|
||||
{ "field": "Name", "required": "Yes", "purpose": "The card title and search term." },
|
||||
{ "field": "URL", "required": "Yes", "purpose": "The complete HTTP(S) destination opened by the card." },
|
||||
{ "field": "Logo URL", "required": "No", "purpose": "A remote image shown on the card." },
|
||||
{ "field": "Category", "required": "No", "purpose": "Adds a shared badge and enables category filtering." },
|
||||
{ "field": "Guest binding", "required": "No", "purpose": "Associates the link with a VM or LXC and enables the guest shortcut." }
|
||||
],
|
||||
"editTitle": "Edit the source of truth",
|
||||
"editBody": "Edit mode only exposes pencils for custom links. To change a card generated from a registered LXC application, open that guest's <appTabLink>App tab</appTabLink> and edit the saved Web Link there."
|
||||
},
|
||||
"categories": {
|
||||
"heading": "Categories and update signals",
|
||||
"intro": "Categories organize links; update signals report software state. They are intentionally separate.",
|
||||
"items": [
|
||||
"Catalog-assisted LXC registration can prefill a category, but it remains editable.",
|
||||
"Custom category names can be created from the same selector and then reused by the filter.",
|
||||
"Category colours are deterministic and adapt to the light or dark theme. Purple and red ranges are reserved for update and danger states.",
|
||||
"For Docker Web Links, ProxMenux matches the card to its container or image and reports that image's update state. A Docker Engine update remains in the LXC <updatesLink>Updates tab</updatesLink>."
|
||||
]
|
||||
},
|
||||
"persistence": {
|
||||
"heading": "Persistence and cache behaviour",
|
||||
"intro": "The dashboard is designed to open from already available Monitor data rather than rescan every guest.",
|
||||
"items": [
|
||||
"Custom links are stored atomically in <code>/etc/proxmenux/custom_links.json</code> and warmed into memory when the Monitor starts.",
|
||||
"Registered LXC links remain part of their application's saved Monitor record; the Apps dashboard does not duplicate them into the custom-link file.",
|
||||
"Creating, editing or deleting a custom link refreshes the in-memory list immediately.",
|
||||
"The sort preference is browser-local. It is not synchronized between devices or users.",
|
||||
"The top-level position of Apps is controlled separately by <settingsLink>Settings → Navigation order</settingsLink>."
|
||||
]
|
||||
},
|
||||
"troubleshooting": {
|
||||
"heading": "Common situations",
|
||||
"colProblem": "Situation",
|
||||
"colResolution": "Resolution",
|
||||
"rows": [
|
||||
{ "problem": "An LXC application is registered but no card appears", "resolution": "Open its App tab and add at least one Web Link. Version tracking alone does not create a launcher card." },
|
||||
{ "problem": "The URL or logo is wrong", "resolution": "Edit the custom link in Apps, or edit the Web Link in the owning LXC App tab." },
|
||||
{ "problem": "A Docker service is missing", "resolution": "Edit the registered Docker application and save the service's published web port as a Web Link." },
|
||||
{ "problem": "The purple arrow refers to the wrong Docker update", "resolution": "Review the Web Link name and description so they can be matched to the intended container or image." },
|
||||
{ "problem": "Apps opens first instead of System Overview", "resolution": "The first saved item in Settings → Navigation order becomes the landing tab. Restore the default order or move Overview first." }
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Where to next",
|
||||
"items": [
|
||||
{ "label": "LXC App tab", "href": "/docs/monitor/dashboard/vms-lxcs/app", "tail": " — register applications, Web Links and optional version tracking." },
|
||||
{ "label": "LXC Updates tab", "href": "/docs/monitor/dashboard/vms-lxcs/updates", "tail": " — configure and run application, Docker Engine and image updates." },
|
||||
{ "label": "Settings tab", "href": "/docs/monitor/dashboard/settings#navigation-order", "tail": " — change the navigation order and landing tab." }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard | ProxMenux Documentation",
|
||||
"description": "The dashboard is the main UI of ProxMenux Monitor: nine tabs (System Overview, Storage, Network, VMs & LXCs, Hardware, System Logs, Terminal, Security, Settings) plus the global header with the Health Monitor status pill."
|
||||
"description": "The dashboard is the main UI of ProxMenux Monitor: ten content tabs including the Apps launcher, plus the global header and a configurable top-level navigation order."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard",
|
||||
"description": "The dashboard is the everyday view of ProxMenux Monitor — nine tabs each focused on one slice of the host plus a global header with the Health Monitor status pill, the node identity and the quick-refresh control.",
|
||||
"description": "The dashboard is the everyday view of ProxMenux Monitor — ten content tabs, including the Apps launcher, plus a global header and a configurable top-level navigation order.",
|
||||
"section": "ProxMenux Monitor"
|
||||
},
|
||||
"oneHeader": {
|
||||
"title": "One header, nine tabs",
|
||||
"title": "One header, ten tabs",
|
||||
"body": "The header (logo, node name, status pill, uptime, refresh, theme toggle) stays visible everywhere. The active tab below it changes the entire content area. The status pill colour mirrors the worst category of the <link>Health Monitor</link> — it's the same data point seen from the dashboard."
|
||||
},
|
||||
"tabs": {
|
||||
"heading": "The nine tabs",
|
||||
"heading": "The ten tabs",
|
||||
"intro": "Each tab has its own dedicated page. Pages are added incrementally as the documentation is filled in; below is the full list and what each one is responsible for.",
|
||||
"headerTab": "Tab",
|
||||
"headerOwns": "What it owns",
|
||||
@@ -21,7 +21,12 @@
|
||||
{
|
||||
"name": "System Overview",
|
||||
"linksTo": "/docs/monitor/dashboard/system-overview",
|
||||
"owns": "CPU / memory / temperature widgets, active VM & LXC count, historical metrics charts, storage and network summaries. Default landing tab."
|
||||
"owns": "CPU / memory / temperature widgets, active VM & LXC count, historical metrics charts, storage and network summaries. Default landing tab until Navigation order is customized."
|
||||
},
|
||||
{
|
||||
"name": "Apps",
|
||||
"linksTo": "/docs/monitor/dashboard/apps",
|
||||
"owns": "Unified launcher for registered LXC Web Links and custom links, with categories, search, guest shortcuts and per-application update signals."
|
||||
},
|
||||
{
|
||||
"name": "Storage",
|
||||
@@ -53,7 +58,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Settings",
|
||||
"owns": "Notification channels, AI provider, suppression durations, branding, advanced flags."
|
||||
"owns": "Monitor language, navigation order, notification channels, AI provider, health thresholds, exclusions and post-install optimization inventory."
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -71,6 +76,11 @@
|
||||
"whereNext": {
|
||||
"heading": "Where to next",
|
||||
"items": [
|
||||
{
|
||||
"label": "Apps tab",
|
||||
"href": "/docs/monitor/dashboard/apps",
|
||||
"tail": " — the unified Web Link launcher and its relationship with registered LXC applications."
|
||||
},
|
||||
{
|
||||
"label": "System Overview tab",
|
||||
"href": "/docs/monitor/dashboard/system-overview",
|
||||
|
||||
@@ -1,17 +1,42 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Dashboard: Settings tab | ProxMenux Documentation",
|
||||
"description": "The Settings tab groups dashboard preferences (network units, suppression durations, storage / interface exclusions), the embedded notification + AI panel, and a transparent inventory of every ProxMenux post-install optimization currently active on the host with click-through to its source code."
|
||||
"description": "The Settings tab controls the Monitor language, navigation order, dashboard preferences, health thresholds and exclusions, notifications, AI and the post-install optimization inventory."
|
||||
},
|
||||
"header": {
|
||||
"title": "Dashboard: Settings tab",
|
||||
"description": "Dashboard preferences, monitoring exclusions, the embedded notification + AI configuration panel, and a live inventory of the ProxMenux post-install optimizations currently active on the host.",
|
||||
"description": "Monitor language, navigation order, dashboard preferences, monitoring exclusions, notifications, AI configuration and the live ProxMenux optimization inventory.",
|
||||
"section": "ProxMenux Monitor · Dashboard"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Where each setting actually lives",
|
||||
"body": "The Settings tab is a single surface for several distinct concerns: how the dashboard renders, what gets watched by the Health Monitor, how alerts go out, and what ProxMenux has already changed on the host. Cards that have their own deep documentation page link out rather than duplicating content here — Settings is the entry point, not the manual."
|
||||
},
|
||||
"interfaceLanguage": {
|
||||
"heading": "Interface Language",
|
||||
"intro": "Choose the language used by the <strong>web Monitor</strong>. The change is applied immediately to the current interface; it does not restart the service and does not alter the language used by ProxMenux shell menus.",
|
||||
"items": [
|
||||
"ProxMenux Monitor currently offers English, German, Spanish, French, Italian, Portuguese, Slovak and Swedish.",
|
||||
"On the first visit, the Monitor uses the browser language when it is supported; otherwise it falls back to English.",
|
||||
"Changing the selection updates the page language and synchronizes other open tabs from the same browser profile.",
|
||||
"If a translated key is missing, only that text falls back to English instead of rendering a broken placeholder."
|
||||
],
|
||||
"scopeTitle": "Browser-local preference",
|
||||
"scopeBody": "The selection is stored in <code>localStorage</code> under <code>proxmenux-ui-language</code>. It is therefore specific to this browser profile and device, not a node-wide setting. Each operator can choose a different Monitor language."
|
||||
},
|
||||
"navigationOrder": {
|
||||
"heading": "Navigation order",
|
||||
"intro": "Use this card to arrange the seven top-level navigation slots: <strong>Overview, Apps, VMs & LXCs, Node, Backup, Terminal and Admin</strong>. Press <strong>Edit</strong>, drag the rows, then save the result.",
|
||||
"items": [
|
||||
"Mouse dragging starts on press. Touch uses a short 250 ms long-press so normal scrolling is not mistaken for a reorder.",
|
||||
"The grouped <strong>Node</strong> and <strong>Admin</strong> entries move as complete units; their internal pages keep their canonical order.",
|
||||
"The mobile menu follows the same saved order.",
|
||||
"<strong>Restore default</strong> resets the draft order. Save to make the reset permanent.",
|
||||
"A new top-level tab introduced by a future release is appended to an existing custom order rather than deleting the user's arrangement."
|
||||
],
|
||||
"landingTitle": "The first item becomes the landing tab",
|
||||
"landingBody": "The first saved slot is what the Monitor opens after loading. If <strong>Node</strong> is first, the landing page is Storage; if <strong>Admin</strong> is first, it is System Logs. The order is stored only in this browser under <code>proxmenux-nav-order</code>, so different devices can use different workflows."
|
||||
},
|
||||
"networkUnits": {
|
||||
"heading": "Network Units",
|
||||
"imageAlt": "Network Units card with Network Unit Display dropdown set to Bytes",
|
||||
@@ -257,6 +282,16 @@
|
||||
"headerEndpoint": "Endpoint",
|
||||
"headerSource": "Source",
|
||||
"rows": [
|
||||
{
|
||||
"card": "Interface Language",
|
||||
"endpoint": "localStorage",
|
||||
"source": "Browser preference <code>proxmenux-ui-language</code>, initially derived from the browser locale when no saved choice exists."
|
||||
},
|
||||
{
|
||||
"card": "Navigation order",
|
||||
"endpoint": "localStorage",
|
||||
"source": "Browser preference <code>proxmenux-nav-order</code>; it also determines the landing tab."
|
||||
},
|
||||
{
|
||||
"card": "Network Units",
|
||||
"endpoint": "/api/settings",
|
||||
@@ -292,6 +327,11 @@
|
||||
"whereNext": {
|
||||
"heading": "Where to next",
|
||||
"items": [
|
||||
{
|
||||
"label": "Apps tab",
|
||||
"href": "/docs/monitor/dashboard/apps",
|
||||
"tail": " — the launcher whose top-level position can be changed with Navigation order."
|
||||
},
|
||||
{
|
||||
"label": "Notifications",
|
||||
"href": "/docs/monitor/notifications",
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
"intro": {
|
||||
"p1": "The <strong>App</strong> tab records which applications belong to an LXC. A registration can contain only a name and web link, or also include an installed-version detector and an upstream source.",
|
||||
"p2": "The procedure that changes software is configured separately on the <link>Updates tab</link>. Saving an app never runs an installer or updater.",
|
||||
"callout": "Registration, version tracking and updating are three independent capabilities. Any one can be used without requiring the other two."
|
||||
"callout": "Registration, version tracking and updating are three independent capabilities. Any one can be used without requiring the other two.",
|
||||
"dashboardTitle": "From registration to the Apps launcher",
|
||||
"dashboard": "Every Web Link saved here is also presented as a card in the top-level <appsLink>Apps tab</appsLink>. This LXC page remains the source of truth for the application's name, logo, links and version tracking."
|
||||
},
|
||||
"overview": {
|
||||
"heading": "What an application record can provide",
|
||||
|
||||
Reference in New Issue
Block a user