feat(oci): update and modify every application, and keep its address

- The backup taken before an update or a modification is made on another
  storage when it does not fit on the system disk; an operation without
  room says so before anything is stopped.
- Privileged containers, relaxed AppArmor or seccomp, process limits, the
  host monitors Glances and Netdata and single-file host mounts are
  rebuilt and recovered like any other application.
- HAOS One installs the docker-haos image: port 8123, host time zone,
  unprivileged, watchdog proposed by default; it is updated and modified
  with Home Assistant's own check on the rebuilt container.
- A container that reboots itself gets its DHCP client back.
- The installer takes the address of the container's own interface, and
  the notes of a suite or stack container show its LAN address.
- Seerr installs: its volume belongs to the image user and
  no-new-privileges goes through the include of the container.
- Removing an application deletes its seccomp profile.
This commit is contained in:
MacRimi
2026-10-08 17:14:36 +02:00
parent b629938cf1
commit f5ad4072b5
31 changed files with 1784 additions and 390 deletions
+21 -9
View File
@@ -390,7 +390,7 @@
"Application": "Aplicación",
"Application Specific": "Específico de la aplicación",
"Application registered on this host:": "Aplicación registrada en este host:",
"Application responding:": "Solicitud de respuesta:",
"Application responding:": "Aplicación respondiendo:",
"Application responding; checking its stability...": "Aplicación respondiendo; comprobando su estabilidad...",
"Application suite: one independent LXC per selected application": "Suite de aplicación: un LXC independiente por aplicación seleccionada",
"Application:": "Aplicación:",
@@ -570,7 +570,7 @@
"Backup kept in": "Backup conservado en",
"Backup location": "Ubicación del backup",
"Backup metadata": "Metadatos de backup",
"Backup of the previous installation verified": "Backup de la instalación anterior verificada",
"Backup of the previous installation verified": "Backup de la instalación anterior verificado",
"Backup on newer kernel:": "Backup de un kernel más nuevo:",
"Backup on older kernel:": "Backup de un kernel anterior:",
"Backup origin metadata:": "Metadatos de origen del backup:",
@@ -760,6 +760,7 @@
"Changes prepared": "Cambios preparados",
"Changes will apply after reboot.": "Los cambios se aplicarán después del reinicio.",
"Changing Release Channel": "Cambio de canal de release",
"Changing between a privileged and an unprivileged container, or the host monitor mode, requires installing the application again": "Cambiar entre contenedor privilegiado y sin privilegios, o el modo de monitor del host, requiere instalar la aplicación de nuevo",
"Changing the machine type on an existing installed VM is not safe: it changes the chipset and PCI slot layout, which typically prevents the guest OS from booting.": "Cambiar el tipo de máquina de una VM ya instalada no es seguro: cambia el chipset y la disposición de las ranuras PCI, lo que normalmente impide que arranque el sistema operativo de la VM.",
"Changing the rootfs or its storage requires a separate migration": "Cambiar los rootfs o su almacenamiento requiere una migración separada",
"Changing the storage or size of a disk requires a migration; empty disks are not created": "Cambiar el almacenamiento o el tamaño de un disco requiere una migración; los discos vacíos no se crean",
@@ -2434,6 +2435,7 @@
"Free and easy to use Minecraft server management tool.": "Herramienta gratuita y fácil de usar para gestionar servidores de Minecraft.",
"Free public Proxmox repository enabled": "Repositorio público gratuito de Proxmox habilitado",
"Free space OK:": "Espacio libre Aceptar:",
"Free space on the host, or choose another storage for this backup from Manage installed OCI applications.": "Libera espacio en el host, o elige otro almacenamiento para este backup desde Gestionar aplicaciones OCI instaladas.",
"Free up disk space": "Liberar espacio en disco",
"Free:": "Libre:",
"FreeCAD is a general-purpose parametric 3D computer-aided design (CAD) modeler and a building information modeling (BIM) software application with finite element method (FEM) support.": "FreeCAD es un modelador paramétrico 3D de diseño asistido por ordenador (CAD) de uso general y una aplicación de modelado de información de construcción (BIM) con soporte para el método de elementos finitos (FEM).",
@@ -3120,7 +3122,7 @@
"Internal error: missing arguments in pmx_prepare_host_shared_dir": "Error interno: faltan argumentos en pmx_prepare_host_shared_dir",
"Internal subnet of the tunnel (change it only if it clashes)": "Subred interna del túnel (cámbiala solo si entra en conflicto)",
"Interrupted operation": "Operación interrumpida",
"Interrupted operation:": "Interrupted operación:",
"Interrupted operation:": "Operación interrumpida:",
"Interrupted stack operation found": "Se ha encontrado una operación de pila interrumpida",
"Invalid 'proxmox-ve' candidate (not 9.x or none). Please verify your repository configuration and network, then retry.": "Candidato 'proxmox-ve' no válido (ni 9.x ni ninguno). Verifique la configuración y la red de su repositorio y luego vuelva a intentarlo.",
"Invalid ALLOWED_HOSTS value": "Valor inválido ALLOWED_HOSTS",
@@ -3262,6 +3264,7 @@
"It asks for a system directory of the host:": "Pide un directorio del sistema del host:",
"It asks for capabilities or a relaxed confinement profile.": "Pide capacidades o un perfil de confinamiento relajado.",
"It asks to see the processes of the host.": "Pide ver los procesos del host.",
"It can be made on another storage of this host. This backup is temporary: it is deleted when the operation ends. The choice is remembered for the next operations of this application.": "Se puede hacer en otro almacenamiento de este host. Este backup es temporal: se borra cuando termina la operación. La elección se recuerda para las siguientes operaciones de esta aplicación.",
"It cannot be removed on its own, because the application would stop working: continuing removes the whole application.": "No se puede eliminar por sí solo, porque la aplicación dejaría de funcionar: continuar elimina toda la aplicación.",
"It cannot be removed on its own, because the application would stop working: continuing targets the whole application for removal.": "No se puede eliminar por separado, porque la aplicación dejaría de funcionar: si continúas, se eliminará toda la aplicación.",
"It is created empty; existing data is not migrated automatically.": "Se crea vacía; los datos existentes no se migran automáticamente.",
@@ -3856,6 +3859,7 @@
"Name or part of the description of the application": "Nombre o parte de la descripción de la aplicación",
"Name:": "Nombre:",
"Named accounts need private mode. Stop the container, set public: false in /config/config.js, start it again and create each user with: pct exec <CTID> -- env THELOUNGE_HOME=/config s6-setuidgid abc thelounge add <user>": "Las cuentas con nombre necesitan el modo privado. Detén el contenedor, pon public: false en /config/config.js, vuelve a arrancarlo y crea cada usuario con: pct exec <CTID> -- env THELOUNGE_HOME=/config s6-setuidgid abc thelounge add <user>",
"Needed:": "Necesario:",
"Neither /etc/kernel/cmdline nor /etc/default/grub found.": "No se encontraron /etc/kernel/cmdline ni /etc/default/grub.",
"Nesting feature enabled": "Función de anidamiento habilitada",
"NetBIOS Service: RUNNING": "Servicio NetBIOS: EN EJECUCIÓN",
@@ -4141,6 +4145,7 @@
"No new Controller/NVMe entries were added.": "No se agregaron nuevas entradas de Controlador/NVMe.",
"No online node has a guest of this job.": "Ningún nodo en línea tiene una VM o CT de este trabajo.",
"No optimizations detected to uninstall.": "No se detectaron optimizaciones para desinstalar.",
"No other storage of this host that accepts backups has that much free space. Free space and try again; the application was not modified.": "Ningún otro almacenamiento de este host que acepte backups tiene tanto espacio libre. Libera espacio e inténtalo de nuevo; la aplicación no se ha modificado.",
"No partitions found on disk. Nothing was wiped.": "No se encontraron particiones en el disco. No se borró nada.",
"No password provided.": "No se proporcionó contraseña.",
"No paths available": "No hay rutas disponibles",
@@ -4220,7 +4225,6 @@
"Not an OVH server, skipping RTM installation": "No es un servidor OVH, se salta la instalación de RTM",
"Not currently mounted": "Actualmente no montado",
"Not currently mounted — skipping umount.": "Actualmente no montado: omitiendo el desmontaje.",
"Not enough free space for the backup": "No suficiente espacio libre para el backup",
"Not found": "No encontrado",
"Not found in the OCI archive:": "No se encuentra en el archivo OCI:",
"Not imported:": "No importado:",
@@ -5123,7 +5127,7 @@
"Restore source location": "Ubicación del origen de la restauración",
"Restored OCI applications": "Aplicaciones OCI restauradas",
"Restored config is on disk; reboot the host to apply.": "La configuración restaurada está en el disco; reinicie el host para aplicar.",
"Restored installation checked": "Instalación restaurada",
"Restored installation checked": "Instalación restaurada revisada",
"Restored original /bin/gzip": "Restaurado original /bin/gzip",
"Restored original /etc/vzdump.conf from .bak": "Restaurado /etc/vzdump.conf original desde .bak",
"Restored:": "Restaurado:",
@@ -5138,7 +5142,7 @@
"Restoring the backup": "Restaurar el backup",
"Restoring the original rpcbind service state...": "Restaurando el estado original del servicio rpcbind...",
"Restoring the previous Rclone configuration...": "Restaurar la configuración anterior de Rclone...",
"Restoring the previous backup...": "Restaurar el backup anterior...",
"Restoring the previous backup...": "Restaurando el backup anterior...",
"Restoring the previous state of the stack...": "Restaurando el estado anterior de la pila...",
"Restoring the stack records...": "Restaurando los registros de la pila...",
"Results will be saved automatically to:": "Los resultados se guardarán automáticamente en:",
@@ -5849,7 +5853,7 @@
"Stop uploading?": "¿Dejar de subir?",
"Stopped": "Detenido",
"Stopped and disabled": "Detenido y deshabilitado",
"Stopped at:": "Detuvo:",
"Stopped at:": "Se detuvo en:",
"Stopping Coral kernel modules...": "Deteniendo los módulos del kernel de Coral...",
"Stopping LXC": "Detener LXC",
"Stopping NFS services...": "Deteniendo los servicios NFS...",
@@ -5888,6 +5892,7 @@
"Storage for the Immich library": "Almacenamiento para la biblioteca Immich",
"Storage for the Nextcloud data": "Almacenamiento para los datos Nextcloud",
"Storage for the OCI image cache": "Almacenamiento para la caché de imágenes OCI",
"Storage for the backup of this operation": "Almacenamiento para el backup de esta operación",
"Storage for the consume and export folders": "Almacenamiento para las carpetas de consumo y exportación",
"Storage for the container and its data": "Almacenamiento para el contenedor y sus datos",
"Storage for the containers and their data": "Almacenamiento para los contenedores y sus datos",
@@ -6112,14 +6117,17 @@
"The application has been modified with the new options.": "La aplicación se ha modificado con las nuevas opciones.",
"The application needs it for": "La aplicación lo necesita para",
"The application stopped during its first start:": "La aplicación se detuvo durante su primer comienzo:",
"The application was not modified.": "La aplicación no se ha modificado.",
"The application was removed": "La aplicación se ha eliminado",
"The archive could not be extracted.": "No se pudo extraer el archivo.",
"The archive destination directory is INSIDE one of the paths you are about to back up. Writing the archive there would copy the backup into itself — producing a corrupted archive, or growing without limit until the disk fills up.": "El directorio de destino del archivo está DENTRO de una de las rutas de las que va a hacer backup. Escribir el archivo allí copiaría el backup dentro de sí mismo, lo que produciría un archivo dañado o que crecería sin límite hasta llenar el disco.",
"The backup could not be identified; the image is not replaced": "El backup no se pudo identificar; la imagen no es reemplazada",
"The backup could not be started on node": "No se pudo iniciar el backup en el nodo",
"The backup did not pass its integrity check; creating it again...": "El backup no superó la comprobación de integridad; creándolo de nuevo...",
"The backup made before changing the application does not fit on the system disk of the host.": "El backup que se hace antes de modificar la aplicación no cabe en el disco del sistema del host.",
"The backup metadata was compared against this host. The following items will be SKIPPED to keep the boot safe:": "Los metadatos del backup se compararon con este host. Los siguientes elementos se OMITIRÁN para mantener el arranque seguro:",
"The backup of a member could not be identified": "No se pudo identificar el backup de un miembro",
"The backup of this operation cannot be read. If it is on another storage, make it available and recover the operation again:": "No se puede leer el backup de esta operación. Si está en otro almacenamiento, haz que esté disponible y recupera la operación de nuevo:",
"The backup runs as a Proxmox task; follow it in the task log of Proxmox.": "El backup se ejecuta como tarea de Proxmox; sígalo en el registro de tareas de Proxmox.",
"The backup storage does not exist:": "El almacenamiento de backups no existe:",
"The backup was altered; recovery blocked": "El backup fue alterado; la recuperación bloqueada",
@@ -6328,6 +6336,7 @@
"The new image changes the PostgreSQL major version; the data must be migrated before updating": "La nueva imagen cambia la versión principal de PostgreSQL; los datos deben ser migrados antes de actualizar",
"The new image could not be installed": "La nueva imagen no se puede instalar",
"The new image could not be installed:": "La nueva imagen no se puede instalar:",
"The new image does not fit on the storage where images are downloaded:": "La imagen nueva no cabe en el almacenamiento donde se descargan las imágenes:",
"The new image does not keep a required executable": "La nueva imagen no mantiene un ejecutable necesario",
"The new image is more recent than the minimum age set for scheduled updates; it is not installed yet.": "La imagen nueva es más reciente que la antigüedad mínima fijada para las actualizaciones programadas; todavía no se instala.",
"The new image requires additional persistent paths": "La nueva imagen requiere caminos persistentes adicionales",
@@ -6499,6 +6508,8 @@
"The startup differs from the declared Nextcloud adapter": "La startup difiere del adaptador Nextcloud declarado",
"The startup differs from the declared adapter": "La startup difiere del adaptador declarado",
"The staticfiles volume needs at least 1 GB": "El volumen de los ficheros estáticos necesita al menos 1 GB",
"The storage chosen for this backup cannot be written:": "No se puede escribir en el almacenamiento elegido para este backup:",
"The storage chosen for this backup has no room either:": "El almacenamiento elegido para este backup tampoco tiene espacio:",
"The storage does not accept backups:": "El almacenamiento no admite backups:",
"The storage has been removed and the disk unmounted.": "Se eliminó el almacenamiento y se desmontó el disco.",
"The storage has less than 40 GB free for the ROCm image.": "El almacenamiento tiene menos de 40 GB libres para la imagen de ROCm.",
@@ -6557,6 +6568,7 @@
"This application is under watchdog: it is restarted automatically when it crashes. Turn the watchdog off?": "Esta aplicación está bajo vigilancia: se reinicia automáticamente cuando falla. ¿Desactivar la vigilancia?",
"This archive does not contain a recognized backup layout.": "Este archivo no contiene un diseño de backup reconocido.",
"This backup does not contain any restorable paths.": "Este backup no contiene rutas restaurables.",
"This backup does not fit on the system disk of the host; it is made on the storage:": "Este backup no cabe en el disco del sistema del host; se hace en el almacenamiento:",
"This backup includes /etc/zfs/zpool.cache (host-specific ZFS state).": "Este backup incluye /etc/zfs/zpool.cache (estado ZFS específico del host).",
"This backup is encrypted.": "Este backup está cifrado.",
"This backup was taken on kernel": "Este backup se realizó en el kernel",
@@ -6912,7 +6924,7 @@
"Updated:": "Actualizado:",
"Updates all Proxmox and Debian packages": "Actualiza todos los paquetes de Proxmox y Debian",
"Updates and Packages Commands": "Comandos de actualizaciones y paquetes",
"Updates are not available yet for this application in this beta": "Aún no hay actualizaciones para esta aplicación en este beta",
"Updates are not available yet for this application in this beta": "Aún no hay actualizaciones para esta aplicación en esta beta",
"Updates are not available yet in this beta for applications that use a privileged container or advanced LXC settings": "Aún no se dispone de actualizaciones en esta beta para aplicaciones que utilizan un contenedor privilegiado o configuración avanzada LXC",
"Updates file is empty or unreadable.": "El archivo de actualizaciones está vacío o es ilegible.",
"Updating": "Actualizando",
@@ -7185,7 +7197,7 @@
"Wait for each node to complete before starting next": "Espere a que se complete cada nodo antes de comenzar el siguiente",
"Waiting for Home Assistant OS...": "Esperando a Home Assistant OS...",
"Waiting for the FUSE mount:": "Esperando el montaje FUSE:",
"Waiting for the application to respond...": "Esperando que la aplicación responda...",
"Waiting for the application to respond...": "Esperando a que la aplicación responda...",
"Waiting for the initial Jellyfin configuration...": "Esperando la configuración inicial de Jellyfin...",
"Waiting for the network address...": "Esperando la dirección de la red...",
"Waiting for the password of the application...": "Esperando la contraseña de la aplicación...",