mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-10-08 14:36:38 +00:00
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.
This commit is contained in:
@@ -1163,7 +1163,15 @@
|
||||
"targetBoth": "OS + applikation",
|
||||
"lastRun": "Senaste körningen: {date}",
|
||||
"runSuccess": "✓ framgång",
|
||||
"runPartial": "delvis slutförd",
|
||||
"runFailed": "✗ misslyckades",
|
||||
"runDeferred": "uppskjuten av säkerhetsskäl",
|
||||
"runSkipped": "inget väntar",
|
||||
"releaseDelaySummary": "{days} dagars väntetid",
|
||||
"releaseDelayLabel": "Vänta efter en ny appversion",
|
||||
"releaseDelayNone": "Ingen väntetid",
|
||||
"releaseDelayDays": "Vänta {days} dag(ar)",
|
||||
"releaseDelayHelp": "Gäller endast valda appar med versionsspårning. Deras väntande versioner måste vara så här gamla; appar utan versionsspårning kör sin uppdaterare vid varje schemalagt tillfälle.",
|
||||
"notScheduled": "Inte schemalagt",
|
||||
"frequency": "Frekvens",
|
||||
"cronExpression": "Cron uttryck",
|
||||
@@ -1172,6 +1180,11 @@
|
||||
"targetOptionOs": "Endast OS-paket",
|
||||
"targetOptionApp": "Endast ansökan",
|
||||
"targetOptionBoth": "OS + applikation",
|
||||
"dockerComposeTarget": "Docker Compose · {project}",
|
||||
"dockerContainerTarget": "Docker-container · {container}",
|
||||
"dockerEngineTarget": "Docker Engine",
|
||||
"noTargets": "Inga mål valda",
|
||||
"selectAtLeastOne": "Välj minst ett uppdateringsmål.",
|
||||
"deleteButton": "Ta bort schema",
|
||||
"deleteConfirm": "Vill du ta bort de schemalagda uppdateringarna för den här behållaren? Tillämpa standardvärden (säkerhetskopiering + omstart) behålls."
|
||||
},
|
||||
@@ -1217,7 +1230,7 @@
|
||||
"osPlusApp": "OS + {appName} uppdateringar",
|
||||
"osPlusApps": "OS + Apps-uppdateringar",
|
||||
"noUpdateMethodTitle": "Ingen uppdateringsmetod tillgänglig",
|
||||
"noUpdateMethodBody": "Ingen uppdateringsmetod tillgänglig. Uppdatera från själva appen eller ställ in ett anpassat kommando på fliken App.",
|
||||
"noUpdateMethodBody": "Ingen uppdateringsmetod har identifierats för den här appen. Lägg till ett anpassat uppdateringskommando.",
|
||||
"ociImmutableTitle": "OCI-bildbehållare",
|
||||
"ociImmutableBody": "OS-paket bakas in vid bildbyggetid och kan inte uppdateras på plats. Tillämpa uppdateringar manuellt eller installera om med en nyare bild.",
|
||||
"hideNoticeButton": "Dölj det här meddelandet för den här appen",
|
||||
@@ -1230,6 +1243,7 @@
|
||||
"applicationDefaultName": "Tillämpningen",
|
||||
"installedLabel": "installerat",
|
||||
"upToDateAtLabel": "Uppdaterad kl",
|
||||
"versionLabel": "version {version}",
|
||||
"versionTrackingPending": "Versionsspårning väntar – nästa schemalagda kontroll visar installerad och tillgänglig version.",
|
||||
"customCommandTitle": "Anpassat uppdateringskommando",
|
||||
"customCommandBody": "Kör ett användardefinierat skalkommando för att uppdatera den här appen inuti behållaren.",
|
||||
@@ -1238,6 +1252,7 @@
|
||||
"hideNoticeAction": "Dölj detta meddelande för {appName}",
|
||||
"detectedByPrefix": "Upptäckt av",
|
||||
"editApp": "Redigera",
|
||||
"configureUpdater": "Konfigurera",
|
||||
"alsoDetectedTitle": "Detekteras även i den här behållaren:",
|
||||
"detectedInline": "· upptäckt av {method}",
|
||||
"customCommandLabel": "Anpassat uppdateringskommando",
|
||||
@@ -1245,9 +1260,9 @@
|
||||
"removeButton": "Ta bort",
|
||||
"cancelButton": "Avbryt",
|
||||
"saveButton": "Spara",
|
||||
"editCommandButton": "Redigera kommando",
|
||||
"wireUpCommandButton": "Lägg till anpassat uppdateringskommando",
|
||||
"versionTrackingPendingShort": "Väntande versionsspårning.",
|
||||
"versionTrackingNotConfigured": "Versionsspårning är inte konfigurerad.",
|
||||
"managedByOsPackages": "Den här appen uppdateras via åtgärden för operativsystemspaket.",
|
||||
"noMethodBody": "Ingen uppdateringsmetod tillgänglig. Uppdatera från själva appen, eller koppla upp ett anpassat kommando som ProxMenux kommer att köra inuti behållaren.",
|
||||
"noMethodHideBody": "Denna app har ingen uppdateringsmetod registrerad. Ställ in en från fliken App eller avvisa det här meddelandet.",
|
||||
"hideForApp": "Dölj meddelande för {appName}",
|
||||
@@ -1266,15 +1281,59 @@
|
||||
"noManagedUpdateInfo": "Ingen uppdateringsinformation ännu — kolla från Säkerhet → Secure Gateway.",
|
||||
"ociTitle": "OCI-bildbehållare",
|
||||
"ociBody": "Den här behållaren skapades från en OCI-bild (Docker). Uppdateringshantering för OCI-behållare kommer med den kommande OCI-installationsfunktionen - uppdateringar kommer att bygga om behållaren från en nyare bildtagg snarare än att patcha paket inuti.",
|
||||
"helperNotUpdateable": "Community-scripts-registret markerar denna app som inte uppdateringsbar.",
|
||||
"helperDetectedTitle": "Upptäckte en hjälparskriptuppdatering",
|
||||
"helperDetectedBody": "Att applicera manuellt är säkrast.",
|
||||
"dockerImagesTitle": "Docker-avbilder",
|
||||
"dockerAppTitle": "Docker",
|
||||
"dockerImagesSubheading": "Avbilder",
|
||||
"dockerImagesReadOnly": "Taggar jämförs med registrets digest. Compose-tjänster kan hämta avbilden och återskapas från sitt deklarerade projekt.",
|
||||
"dockerEngineManagedByOs": "Docker Engine {version} hanteras som paket och uppdateras av OS-paketåtgärden ovan.",
|
||||
"dockerEngineSubheading": "Motor",
|
||||
"dockerEngineDetected": "Docker Engine {version} identifierad",
|
||||
"dockerEngineUpdateHelp": "Uppdaterar endast installerade Docker-paket och nödvändiga beroenden. Andra operativsystemspaket och behållare ändras inte.",
|
||||
"updateDockerEngineOnly": "Uppdatera Docker Engine",
|
||||
"adguardWebUpdateOnly": "Den här installationen av AdGuard Home uppdateras i dess eget webbgränssnitt.",
|
||||
"openAdguard": "Öppna AdGuard Home",
|
||||
"updateDockerImage": "Uppdatera avbild",
|
||||
"recreateStandaloneContainer": "Uppdatera {container}",
|
||||
"standaloneRecreatePending": "Fristående containrar kräver skyddad återskapning: {names}",
|
||||
"noDockerImages": "Docker är installerat men inga taggade avbilder hittades.",
|
||||
"dockerInventoryStarting": "Väntar på att Docker ska starta klart…",
|
||||
"dockerInventoryUnavailable": "Docker-inventeringen kunde inte läsas. Kontrollera igen när Docker är tillgängligt.",
|
||||
"usedByContainers": "Används av: {names}",
|
||||
"imageUpdateAvailable": "Ny avbild tillgänglig",
|
||||
"imageUpToDate": "Uppdaterad",
|
||||
"imageInstalledTag": "installerad tagg",
|
||||
"imageDigestUnknown": "Digest saknas",
|
||||
"dockerPendingSummary": "{count} uppdateringar av Docker-avbilder hittades. Använd tillhörande Docker- eller Compose-flöde.",
|
||||
"postApplyChecking": "Verifierar uppdateringsresultat...",
|
||||
"postApplyAllOk": "{count} paket(en) har tillämpats framgångsrikt — inget väntande.",
|
||||
"postApplyNothingPending": "Inget väntande — allt är uppdaterat.",
|
||||
"postApplyPartial": "{pending} paket som fortfarande väntar efter körningen.",
|
||||
"postApplyPartialSubline": "{applied} tillämpas.Vissa uppdateringar slutfördes inte – granska terminalutgången ovan."
|
||||
},
|
||||
"bulkUpdate": {
|
||||
"title": "Gruppuppdatering",
|
||||
"description": "Konfigurera en åtgärd som uppdaterar operativsystemet och de valda metoderna i behållaren.",
|
||||
"loading": "Läser in konfiguration…",
|
||||
"notConfigured": "Inte konfigurerad.",
|
||||
"configure": "Konfigurera",
|
||||
"edit": "Redigera",
|
||||
"apply": "Tillämpa uppdateringar",
|
||||
"osTarget": "Operativsystem",
|
||||
"osRequired": "Krävs för en gruppuppdatering.",
|
||||
"includesDependencies": "Inkluderar även deklarerade beroenden: {names}",
|
||||
"noMethod": "Ingen körbar uppdateringsmetod är tillgänglig.",
|
||||
"staleTarget": "Det här valet är inte längre tillgängligt. Ta bort det innan du sparar.",
|
||||
"dockerInventoryPending": "Väntar på inventeringen av Docker-avbilder…",
|
||||
"missingDockerTarget": "Docker-avbilden är inte tillgänglig",
|
||||
"selectAtLeastOne": "Välj minst ett uppdateringsmål utöver operativsystemet.",
|
||||
"cancel": "Avbryt",
|
||||
"save": "Spara",
|
||||
"delete": "Ta bort konfiguration",
|
||||
"deleteConfirm": "Ta bort den här gruppuppdateringskonfigurationen?",
|
||||
"saveFailed": "Det gick inte att spara gruppuppdateringskonfigurationen.",
|
||||
"deleteFailed": "Det gick inte att ta bort gruppuppdateringskonfigurationen.",
|
||||
"planFailed": "Det gick inte att förbereda gruppuppdateringen. Kontrollera otillgängliga metoder."
|
||||
},
|
||||
"appEditor": {
|
||||
"closePanel": "Stäng panelen",
|
||||
"cancelButton": "Avbryt",
|
||||
@@ -1284,6 +1343,17 @@
|
||||
"hiddenBadge": "För närvarande dold — kommer att dyka upp igen i upptäcktslistan",
|
||||
"registerDifferent": "Registrera en annan app",
|
||||
"detectedInContainer": "Upptäcks på den här behållaren",
|
||||
"versionDetected": "Version {version} identifierad i den här containern",
|
||||
"legacyDetectorUsed": "Upptäckt med en äldre kompatibilitetsreserv",
|
||||
"dockerImagesTitle": "Uppdateringar av Docker-avbilder",
|
||||
"dockerImagesHelp": "Kontrollerar varje lokal avbild separat från Docker-motorn genom att jämföra oföränderliga register-digests.",
|
||||
"refreshDockerImages": "Kontrollera nu",
|
||||
"noDockerImages": "Inga taggade Docker-avbilder hittades",
|
||||
"usedByContainers": "Används av: {names}",
|
||||
"imageUpdateAvailable": "Ny avbild tillgänglig",
|
||||
"imageUpToDate": "Uppdaterad",
|
||||
"imageDigestUnknown": "Digest saknas",
|
||||
"dockerReadOnlyNote": "Skrivskyddad kontroll: ingen avbild hämtas och ingen container startas om.",
|
||||
"installedManaged": "Installerad och hanterad av ProxMenux",
|
||||
"nameLabel": "Namn",
|
||||
"installedViaLabel": "Installerad via",
|
||||
@@ -1340,6 +1410,17 @@
|
||||
"jsonPathPlaceholder": "t.ex. data.version eller releases[0].tag_name",
|
||||
"dockerImageLabel": "Docker Hub-bild",
|
||||
"dockerImagePlaceholder": "t.ex. linuxserver/plex eller nginx",
|
||||
"dockerVersionedTagsHelp": "Använd endast för versionerade taggar. För latest, stable eller lts använder du Docker-avbildningsuppdateringar med digest-jämförelse.",
|
||||
"dockerPresetSemver": "Endast SemVer",
|
||||
"dockerPresetSemverSuffix": "SemVer + suffix",
|
||||
"dockerTagFilterHelp": "Filtrerar verkliga taggar innan ProxMenux väljer den högsta versionen.",
|
||||
"dockerTagPreviewLabel": "Förhandsvisning av verkliga taggar",
|
||||
"dockerTagPreviewCount": "{matched} matchade av {scanned}",
|
||||
"dockerTagPreviewLoading": "Kontrollerar Docker Hub…",
|
||||
"dockerTagPreviewFailed": "Kunde inte visa Docker Hub-taggar",
|
||||
"dockerTagPreviewEmpty": "Inga verkliga taggar matchar filtret.",
|
||||
"dockerMovingTag": "rörlig tagg",
|
||||
"dockerMovingTagHelp": "Rörliga taggar innehåller ingen version. Spåra dem i stället via digest under Docker-avbildningsuppdateringar.",
|
||||
"tagRegexLabel": "Taggregex (med fångstgrupp)",
|
||||
"tagRegexPlaceholder": "t.ex. v?(\\d+\\.\\d+\\.\\d+)",
|
||||
"tagRegexBare": "v?(\\d+\\.\\d+\\.\\d+)",
|
||||
@@ -1372,7 +1453,14 @@
|
||||
"registerCustom": "Registrera en anpassad app",
|
||||
"noAppsTitle": "Inga ansökningar registrerade",
|
||||
"noAppsBody": "Registrera apparna som körs i behållaren för att få webblänkar och, om du vill, spårning av tillgängliga versioner med aviseringar om nya utgåvor.",
|
||||
"registerApplication": "Registrera ansökan",
|
||||
"registerApplication": "Registrera app",
|
||||
"searchApplications": "Sök appar",
|
||||
"searchingApplications": "Söker efter appar…",
|
||||
"noApplicationsDetected": "Inga appar identifierades.",
|
||||
"noNewApplicationsDetected": "Inga nya appar identifierades.",
|
||||
"oneNewApplicationDetected": "En ny app identifierades.",
|
||||
"newApplicationsDetected": "{count} nya appar identifierades.",
|
||||
"detectionFailed": "Appidentifieringen misslyckades",
|
||||
"hiddenSuffix": "{count} dold",
|
||||
"confirmHide": "Vill du dölja \"{name}\"-detekteringen permanent på den här behållaren?\n\nFör att ta tillbaka den senare, klicka på \"Registrera en annan app\" - den dolda listan visas där med ett återställningsalternativ.",
|
||||
"saveFailed": "Det gick inte att spara",
|
||||
@@ -1383,6 +1471,13 @@
|
||||
"binaryArgsHintGrafana": "Grafana behöver",
|
||||
"loadFailed": "Det gick inte att läsa in appkonfigurationen",
|
||||
"checkFailed": "Kontrollen misslyckades",
|
||||
"testDetectorButton": "Testa detektor",
|
||||
"testingDetectorButton": "Testar detektorn…",
|
||||
"detectorTestTitle": "Resultat av detektortest",
|
||||
"detectorTestNotSaved": "Endast utkast · inte sparat",
|
||||
"detectorTestNoVersion": "Ingen version identifierades",
|
||||
"detectorTestNoUpstream": "Ingen uppströmskälla är konfigurerad",
|
||||
"detectorTestFailed": "Detektortestet misslyckades",
|
||||
"deleteFailed": "Det gick inte att ta bort",
|
||||
"dismissFailed": "Det gick inte att avvisa upptäckten",
|
||||
"restoreFailed": "Det gick inte att återställa upptäckten",
|
||||
@@ -1399,6 +1494,10 @@
|
||||
"webLinks": "Webblänkar",
|
||||
"addPort": "Lägg till port",
|
||||
"detectedPorts": "Portar upptäckta i behållaren — klicka för att lägga till:",
|
||||
"dockerPublishedServicesTitle": "Docker-tjänster med publicerade portar",
|
||||
"dockerPublishedServicesHelp": "Välj endast portar som tillhandahåller ett webbgränssnitt. ProxMenux registrerar inte dessa containrar som fristående LXC-appar.",
|
||||
"dockerPublishedAdd": "Lägg till länk",
|
||||
"dockerPublishedPort": "containerport {containerPort} → {hostPort} i LXC",
|
||||
"noWebPorts": "Inga webbportar lyssnar. Använd Lägg till port om du fortfarande vill skapa en länk manuellt.",
|
||||
"trackUpstream": "Spåra tillgänglig version (valfritt)",
|
||||
"trackOff": "Av – endast länk",
|
||||
@@ -1416,7 +1515,7 @@
|
||||
"checkButton": "Kontrollera",
|
||||
"editFieldsButton": "Redigera fält",
|
||||
"alsoDetectedContainer": "Detekteras även på denna behållare",
|
||||
"addAnotherApplication": "Lägg till ytterligare ett program",
|
||||
"addAnotherApplication": "Registrera en annan app",
|
||||
"doneButton": "Gjort",
|
||||
"editButton": "Redigera",
|
||||
"upstreamErrorTimeout": "Nätverkstimeout vid kontakt uppströms",
|
||||
|
||||
Reference in New Issue
Block a user