feat(oci): GPU selection per host and per image, one notification per update, and App tab for stack containers

- Immich asks what runs its video and its recognition in one menu, in both
  modes, and gives the GPU to the server and to Machine learning; AMD uses ROCm
- Frigate, Ollama, llama.cpp, Faster Whisper and Piper take the image built
  for the chosen GPU
- The acceleration menu offers only what the host can run
- An update or a recreation sends one notification with its result instead of
  the stop, backup and start of each container
- A private bridge with nothing connected is not reported as down
- Secondary containers of a stack appear in the App tab with their version and
  logo; Secure Gateway shows the same update state in both views
- A mistyped value in the wizard asks the same question again
This commit is contained in:
MacRimi
2026-10-02 21:45:38 +02:00
parent 20ee21c08f
commit 9b5cefb81a
55 changed files with 2294 additions and 113 deletions
+24
View File
@@ -1996,6 +1996,10 @@
"secure_gateway_update_available": "Mise à jour de Secure Gateway disponible",
"nvidia_driver_update_available": "Mise à jour du pilote NVIDIA disponible",
"coral_driver_update_available": "Mise à jour du pilote Coral TPU disponible",
"oci_update_completed": "Application OCI mise à jour",
"oci_update_failed": "Échec de la mise à jour de l'application OCI",
"oci_recreate_completed": "Application OCI recréée",
"oci_recreate_failed": "Échec de la recréation de l'application OCI",
"app_update_available": "mise à jour de l'application disponible",
"lxc_update_applied": "Mise à jour LXC appliquée",
"docker_stack_update_available": "Docker mises à jour disponibles"
@@ -6290,6 +6294,26 @@
"body": "{details}",
"label": "Mise à jour LXC appliquée"
},
"oci_update_completed": {
"title": "{hostname} : {app_name} mis à jour",
"body": "{app_name} a été mis à jour vers sa nouvelle image et ses données ont été conservées.\nConteneurs : {containers}",
"label": "Application OCI mise à jour"
},
"oci_update_failed": {
"title": "{hostname} : la mise à jour de {app_name} n'a pas abouti",
"body": "La mise à jour de {app_name} n'a pas abouti.\nMotif : {reason}\nConteneurs : {containers}\nOuvrez Gérer les applications OCI installées pour vérifier son état.",
"label": "Échec de la mise à jour de l'application OCI"
},
"oci_recreate_completed": {
"title": "{hostname} : {app_name} recréé",
"body": "{app_name} a été recréé avec ses nouvelles options et ses données ont été conservées.\nConteneurs : {containers}",
"label": "Application OCI recréée"
},
"oci_recreate_failed": {
"title": "{hostname} : la recréation de {app_name} n'a pas abouti",
"body": "La recréation de {app_name} n'a pas abouti.\nMotif : {reason}\nConteneurs : {containers}\nOuvrez Gérer les applications OCI installées pour vérifier son état.",
"label": "Échec de la recréation de l'application OCI"
},
"app_update_available": {
"title": "{hostname} : mise à jour {app_name} disponible sur CT {vmid}",
"body": "{app_name} sur CT {vmid} ({ct_name}) a une nouvelle version :\n {installed} → {latest}",