Skip to content

Releases: gnacho/easyzfs

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 21:55
feat(settings): new layout per user spec + daily passive release check

- Fila 1: Apariencia (60%) + Umbrales de salud (40%)
- Fila 2: Mi perfil (idioma, nombre, email, cambiar contrasena inline
  estilo NetPulse) + Notificaciones push
- Zona admin: Usuarios | Copia de seguridad | Notificaciones en horizontal
- Acerca de a ancho completo con 4 tiles (Codigo, Changelog, Ko-fi, Privacidad)
- 'Comprobar actualizaciones' fuera: check pasivo 1/dia contra GitHub
  releases (releasecheck.ts), ribbon superior descartable por version e
  icono de estado en la cabecera de la zona admin
- Saludo 'Hola, {nombre}' en Panel y nombre visible en la sidebar

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 20:39
feat: encrypted datasets, zfs replication over ssh, long-ops tracking…

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 12:49
feat(settings): backup de BD + convenciones de Ajustes canonizadas

Copia de seguridad de la BD (zona administracion):
- internal/backup: VACUUM INTO en <datadir>/backups, colector por frecuencia horaria (la verdad son los ficheros, sobrevive reinicios), purga por retencion
- endpoints: GET /api/backup/status, POST /api/backup/run, GET /api/backup/download, POST /api/backup/import (magic+quick_check, swap atomico con app.db.pre-import y exit para que systemd relance)
- settings: backup_enabled (def true), backup_freq_hours (1/6/12/24/48/72, def 24), backup_retention_days (1-30, def 3)
- tarjeta con estado+config+Forzar ahora (patron ajuste-proceso) + Exportar/Importar (confirmacion inline dos pasos)
- tests: 4/4 (Run+Status, purge, concurrente, CheckSQLite) + E2E real (run 201, download SQLite valido, import 202->swap+exit->login OK)

Convenciones de Ajustes (canonizadas en skill webapp-shell):
- tarjeta Apariencia exacta estilo NetPulse: previews mini-UI con las variables CSS REALES scopeadas [data-theme] en el contenedor (fuera variables --tpv-* duplicadas), check animado, iconos Sun/Moon/Monitor en labels; orden tema->acento->densidad->reduce motion; SIN idioma
- idioma movido a 'Mi sesion' (SIEMPRE, regla a fuego)
- titulos DENTRO de las tarjetas (.cardtitle), fuera los h2 de seccion
- Sistema fusionado dentro de Acerca de
- grid 2 columnas >=1400px con altos cuadrados y sin celdas vacias; zonehead a ancho completo

Verificado: tsc+build OK, go vet/test OK, Playwright 17/17 (1600px light + 390px)

v1.6.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 11:56
fix(shell): full-width layout + theme toggle in sidebar footer

- app-shell sin max-width: el contenido aprovecha todo el ancho de la ventana (regla del usuario 2-Ago-2026); pools a 2 columnas >=1500px
- toggle de tema movido al pie del sidebar [tema | Ajustes | plegar] (patron webapp-shell); el del topbar solo se muestra en movil
Verificado Playwright 6/6 a 2560px y 390px

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 11:13
feat(shell): webapp-shell adoption + black-screen-on-deploy fix

Fix pantalla negra tras despliegue (bug reportado en todas las apps):
- lazyRetry: React.lazy recarga una vez por sesion si el chunk viejo ya no existe
- ErrorBoundary global: tarjeta con boton recargar en vez de pantalla negra
- updatecheck: banner 'nueva version desplegada' al detectar cambio en /api/version (poll 10min + visibilitychange)
- spaHandler: Cache-Control no-cache para index.html/sw.js, immutable para /assets/

Adopcion webapp-shell:
- sidebar colapsable manual a rail 64px (persiste easyzfs-sidebar-collapsed) con pie: usuario clicable + Ajustes + plegar
- Ajustes accesible a todos los usuarios (zona admin con tinte sutil); bottomnav movil incluye Ajustes
- Apariencia: switch reducir animaciones (clase html.reduce-motion)
- Acerca de: comprobar actualizaciones contra GitHub releases (GET anonima solo al pulsar), changelog enlaza a releases, instalar PWA oculto si el navegador no lo soporta
- Login: guardado de credencial con Credential Management API
- users.language en BD (migracion v11) como fuente de verdad del idioma: GET /api/me devuelve language, PUT /api/me/language propio, PUT /api/users/{name}/language (admin) + desplegable por usuario en Ajustes
- claves localStorage canonicas easyzfs-* con migracion desde las legacy zfc-* (tema, acento, densidad, idioma) en boot anti-FOUC y providers

Verificado: go build/vet/test OK, tsc OK, npm build OK, Playwright 17/17 (colapso persistente, pie, reduce-motion, zona admin, idioma por usuario, bottomnav) contra server DEMO local

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 10:20
feat(push): per-type preferences, quiet hours with deferred delivery …

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 07:27
EasyZFS v1.4.0 — Web Push notifications

v1.3.3

Choose a tag to compare

@github-actions github-actions released this 01 Aug 23:03
feat(install): sha256-verified downloads + resource pre-flight + rele…

EasyZFS 1.3.2

Choose a tag to compare

@gnacho gnacho released this 01 Aug 12:11

Instalación one-liner: curl -fsSL https://raw.githubusercontent.com/gnacho/easyzfs/main/deploy/install.sh | bash

  • Tareas del sistema filtradas a solo ZFS (timers systemd + cron)
  • install.sh: URL de release por defecto, NoNewPrivileges solo en root-mode
  • schedsys compatible con systemd >= 256
  • Filtro de discos físicos (zvol/eMMC fuera), colector schedsys, rebrand EasyZFS