feat(oci): watchdog that restarts an application when it stops on its own

- New service that starts again an OCI application that stopped on its own, such as Frigate after Save & Restart. A stop or shutdown asked by the user, a backup, a migration and a ProxMenux operation are never undone.
- The installer asks it in both modes and proposes what the recipe declares; it is changed from the management menu or with the Watchdog switch of the container modal in the Monitor.
- Notifications when the watchdog restarts an application and when it keeps stopping.
- The service is recorded in the change journal, and the feature is documented.
This commit is contained in:
MacRimi
2026-10-06 23:18:26 +02:00
parent 6b70c3934e
commit 41ae752da1
28 changed files with 1006 additions and 19 deletions
+14
View File
@@ -1049,6 +1049,8 @@
"mounted": "montato"
},
"startOnBoot": "Avvio al boot",
"watchdog": "Watchdog",
"watchdogHelp": "Riavvia automaticamente questa applicazione quando si arresta in modo anomalo.",
"tags": "Tag",
"tagsPlaceholder": "Aggiungi tag…",
"tagsNone": "Nessun tag",
@@ -2008,6 +2010,8 @@
"oci_recreate_failed": "Ricreazione app OCI non riuscita",
"oci_modify_completed": "App OCI modificata",
"oci_modify_failed": "Modifica app OCI non riuscita",
"oci_watchdog_restarted": "App OCI riavviata dal watchdog",
"oci_watchdog_failed": "App OCI che continua ad arrestarsi",
"app_update_available": "Aggiornamento app disponibile",
"lxc_update_applied": "Aggiornamento LXC applicato",
"docker_stack_update_available": "Aggiornamenti Docker disponibili"
@@ -6441,6 +6445,16 @@
"body": "La modifica di {app_name} non è stata completata.\nMotivo: {reason}\nContainer: {containers}\nApri «Gestisci le applicazioni OCI installate» per verificarne lo stato.",
"label": "Modifica app OCI non riuscita"
},
"oci_watchdog_restarted": {
"title": "{hostname}: {app_name} riavviato dopo un arresto",
"body": "{app_name} si è arrestato da solo e il watchdog lo ha riavviato.\nContainer: {containers}",
"label": "App OCI riavviata dal watchdog"
},
"oci_watchdog_failed": {
"title": "{hostname}: {app_name} continua ad arrestarsi",
"body": "{app_name} continua ad arrestarsi da solo e il watchdog non lo riavvia più.\nContainer: {containers}\nAvvialo a mano una volta risolta la causa; il watchdog tornerà a sorvegliarlo.",
"label": "App OCI che continua ad arrestarsi"
},
"app_update_available": {
"title": "{hostname}: aggiornamento {app_name} disponibile su CT {vmid}",
"body": "{app_name} su CT {vmid} ({ct_name}) ha una nuova versione:\n {installed} → {latest}",