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": "montado"
},
"startOnBoot": "Iniciar al arrancar",
"watchdog": "Vigilancia",
"watchdogHelp": "Reinicia automáticamente esta aplicación cuando falla.",
"tags": "Etiquetas",
"tagsPlaceholder": "Añadir etiqueta…",
"tagsNone": "Sin etiquetas",
@@ -1995,6 +1997,8 @@
"oci_recreate_failed": "Recreación de aplicación OCI fallida",
"oci_modify_completed": "Aplicación OCI modificada",
"oci_modify_failed": "Modificación de aplicación OCI fallida",
"oci_watchdog_restarted": "Aplicación OCI reiniciada por la vigilancia",
"oci_watchdog_failed": "Aplicación OCI que se detiene una y otra vez",
"app_update_available": "Actualización de app disponible",
"ai_model_migrated": "Modelo de IA actualizado automáticamente",
"proxmenux_update": "Actualización de ProxMenux disponible",
@@ -6441,6 +6445,16 @@
"body": "La modificación de {app_name} no se completó.\nMotivo: {reason}\nContenedores: {containers}\nAbre Gestionar aplicaciones OCI instaladas para comprobar su estado.",
"label": "Modificación de aplicación OCI fallida"
},
"oci_watchdog_restarted": {
"title": "{hostname}: {app_name} reiniciado tras detenerse",
"body": "{app_name} se detuvo solo y la vigilancia lo ha iniciado de nuevo.\nContenedores: {containers}",
"label": "Aplicación OCI reiniciada por la vigilancia"
},
"oci_watchdog_failed": {
"title": "{hostname}: {app_name} se detiene una y otra vez",
"body": "{app_name} sigue deteniéndose solo y la vigilancia ya no lo reinicia.\nContenedores: {containers}\nInícialo a mano cuando la causa esté resuelta; la vigilancia volverá a vigilarlo.",
"label": "Aplicación OCI que se detiene una y otra vez"
},
"app_update_available": {
"title": "{hostname}: actualización de {app_name} disponible en CT {vmid}",
"body": "{app_name} en CT {vmid} ({ct_name}) tiene una nueva versión:\n {installed} → {latest}",