Aplicación de la revisión — 19 octubre 2026¶
Autorización del usuario: «aplica todo, con varios agentes simultáneos». Tres agentes ejecutan copias de originales, corrección N-1 y perfiles Jellyfin; la coordinación aplica Vaultwarden, verifica energía y dirige el reinicio51. La auditoría anterior se conserva como evidencia anterior a los cambios.
Vaultwarden CT214¶
Aplicado a las21:55CEST mediante
scripts/maintenance/harden-vaultwarden-admin.py --host root@192.168.0.XXX --apply.
La fuente viva es /opt/vaultwarden/compose.yaml del CT214, imagen local
timshel/oidcwarden:latest (OIDCWarden2026.9.0-3); no se actualizó la imagen.
- El mismo secreto administrativo pasa de texto a Argon2id, versión19, memoria65536KiB, tres iteraciones y cuatro hilos. No se rota la contraseña.
- Se escapan los dólares para Compose y se comprueba que el runtime recibe exactamente el PHC previsto, sin imprimirlo.
- Compose pasa de0644 a0600. Copia privada de configuración y backup consistente
de SQLite en
/root/rollbacks/vaultwarden-argon2-20261019T195517Zdel CT, directorio0700 y archivos0600. - Login administrativo con la credencial original comprobado antes y después, con cookie de sesión real. No se cambiaron cuentas, organizaciones ni claves.
- SQLite quick_check=ok y conteos de users/ciphers/organizations idénticos.
- Recreación solo del servicio Vaultwarden, sin pull y con rollback automático de Compose si falla la validación. Los clientes finales/SSO no se ensayaron.
El script por defecto solo inspecciona. Consume credenciales en memoria y suprime stderr remoto para evitar que una excepción revele una línea con secretos. Las copias previas contienen secretos y permanecen privadas; no subirlas a Git. Formato oficial.
Energía y diagnóstico pmx50¶
Lectura21:53–21:56CEST:
- APC Smart-UPS1000 USB051d:0003 en50; nut-driver@UPS, nut-server y nut-monitor activos. EstadoOL, batería100%, autonomía declarada6124s (estimación del SAI).
- pmx51 nut-monitor activo, consulta al servidor50 correcta y estadoOL100%.
- Ambos configuran SHUTDOWNCMD al script existente
/usr/local/bin/proxmox-ups-shutdown.sh; archivo ejecutable. - NAS puede consultar
UPS@192.168.0.XXX, pero su configuración nativa TOS/etc/ups_v2.configtiene enabled=false y no se observaron monitores activos. Alcanzar el servidor no acredita enchufe físico al SAI ni apagado del NAS. - No se simula corte, batería baja ni FSD; ningún apagado de prueba.
pmx50 sigue arrancado con7.0.14-19-pve, APSToff, processor.max_cstate=1 y boost apagado. Kdump ready, pstore vacío; último reinicio reporta hardware watchdog expired, sin MCE ni volcado que permita atribuir una causa. Emisor journal-stream y pulso-tx activos sin reinicios; receptor51 recibe. La ausencia del módulo netconsole es deliberada: vmbr0 no soporta netpoll, según fuente power_safety.
Memtest86+ya instalado en /boot/memtest86+x64.efi y .bin. Una prueba útil de
toda la RAM requiere sacar50de servicio: VM208 yPBS están allí y la copia inicial
depende de208. No se fuerza un reboot ni una carga de estrés durante esa copia.
Tampoco se flashea BIOS genérica ni se declara estable el host por una muestra
corta. El agente Jellyfin conserva la blacklistAMD hasta resolver esa condición.
DMI confirma2×16GiB DDR5-4800 ADATA AD5S480016G-B, ambos zócalos ocupados; SMBIOS declara máximo64GiB. Ampliar exige sustituir ambos módulos, no añadir uno libre. Esto no certifica un kit concreto ni autoriza una compra. La nota histórica de ADR-0026 ya registra que UMA_SPECIFIED512M impidió arrancar este equipo; no se repite ese experimento para intentar recuperar RAM.
Mantenimiento Intel51¶
Preparado enable_guc=2 e initramfs por el agente Jellyfin, con backup local. A las21:56CEST se cambia temporalmente shutdown_policy=migrate a freeze y se solicita reboot normal. La política migrate no permite evacuar recursos estrictos51 y trasladaría presión al nodo50. Freeze mantiene la ubicación de los servicios y los detiene ordenadamente durante el reinicio; implica una interrupción, no continuidad completa. Quórum conserva50+QDevice.
Configuración anterior guardada en
pmx51:/root/datacenter.pre-jellyfin-huc-20261019.cfg.
A las21:59CEST51vuelve con enable_guc=2 efectivo y HuC autenticado; a las22:00
los14recursos HA vuelven started en51. Quórum3votos y sin unidades fallidas.
Se deja shutdown_policy=conditional: reinicio ordenado con recuperación
local; apagado intenta failover donde las reglas lo permiten. Sustituye migrate
porque los recursos estrictos no pueden evacuarse y el margen50no lo permite.
No altera la recuperación HA ante caída inesperada ni las afinidades existentes.
Vaultwarden vuelve healthy, conserva Argon2 y su configuración nativa responde.
Resultado detallado de perfiles y transcodificación: véase el informe dedicado
del agente Jellyfin.
Jellyfin posreboot validado con HLS real de249664bytes: VAAPI decode, scale_vaapi y h264_vaapi low_power1. H264/HEVC pasan CBR/VBR; identidad, recuentos y quick_checkSQLite preservados. No se certifica4KHDR ni concurrencia.
A las22:02,normalidad devuelve NORMAL y margen sinballoon+5035MiB con los
invitados recién arrancados (demanda migrable6140MiB). Antes del reinicio, la
demanda caliente era11900–12900MiB y el margen respecto a reserva era negativo.
No se ha creado memoria física ni se acredita margen sostenido por enfriar
cachés/swap al reiniciar; observar carga habitual y dimensionar para sus picos.
Resultados independientes¶
- RAM/N-1: indicador y pruebas aplicados; capacidad física adicional sigue sin acreditarse. No maquillar el déficit reduciendo límites ni deteniendo sitios de clientes.
- Jellyfin: perfiles y pruebas por host.
- Originales: retención, restauración de muestras y estado real de la copia inicial.
- Caché/SAI NAS: colector existente ampliado, ingestión Prometheus y compatibilidad/topología pendientes del SAI.
Las compras, sustituir alimentación/RAM y una actualización BIOS específica requieren equipo compatible y acceso físico; no se presentan como cambios ejecutados por software. La causa de los cuelgues sigue abierta hasta evidencia concluyente y observación sostenida.
Incidente de manejo de credenciales¶
Durante la autenticación inicial Synology, un terminal con eco mostró la contraseña en una salida de herramienta. El agente corrigió el canal sin eco; el valor no se reproduce en documentación ni se guardó en208. La nueva copia usa una clave específica restringida. Esto no demuestra acceso externo, pero la contraseña compartida debe rotarse de forma coordinada con sus consumidores y el almacén de credenciales; no se cambia a ciegas ni se declara resuelto por ocultarla en este informe. El usuario queda informado en el resultado.