Notes
Un vídeo a la home, un sitemap capritxós i un actualitzador que ja no necessita
Un divendres de tot: el vídeo de presentació entra a la home, Google es
4 min de lectura
Divendres va ser d'aquests dies on toques de tot: vídeo a la matinada, actualitzador al matí i un bloqueig de xarxa a la tarda que no tenia res a veure amb el codi.
El vídeo de presentació, per fi a la home
La portada de Web Base demanava a crits el vídeo de presentació. Primer vaig muntar l'estructura: un botó rodó amb la durada apareix en acabar el hero i obre una targeta amb el reproductor, amb controls natius del navegador i una portada provisional mentre no arribés l'arxiu. Quan va arribar el vídeo real — quadrat, de 296 píxels —, el reproductor va mantenir aquest format i s'ajusta a les pantalles petites; el botó ara ensenya un triangle de reproducció en lloc d'ones.
Un detall que tenia ganes de resoldre: no vull els controls complets del navegador. Fora volum, pantalla completa i menú d'opcions; es queden la reproducció i la barra d'avanç. Tot verificat al navegador en local; el desplegament ja vindrà.
Google i el sitemap: quan el problema no és al teu codi
La Search Console marca el sitemap com a «No s'ha pogut obtenir». Producció, en canvi, torna l'XML correcte: 79 URLs ben formades, sense duplicats, amb robots.txt i canòniques coherents. I la prova en directe de Google l'obté sense problemes. O sigui: l'arxiu és bo, però l'informe insisteix al contrari.
El vaig reenviar i l'estat va seguir igual. El deixo obert esperant un nou intent de lectura; si persisteix, tocarà mirar què va rebre exactament Google i els esdeveniments d'accés a Cloudflare abans de canviar ni una línia. De moment, no he tocat el generador perquè no hi ha cap fallo reproduïble.
L'actualitzador s'actualitza sol
La promesa de Web Base és que el client només prem botons. Però desplegar els backups exigia actualitzar l'actualitzador a mà, per SSH. «Això no es podria evitar? Un client no va a executar una comanda al servidor.» Tota la raó. Ara el dimoni — que corre com a root a l'amfitrió — llança un procés fill independent que actualitza el propi actualitzador, sobreviu al reinici de la unitat i fa la comprovació de salut i el rollback si alguna cosa va malament. Amb un temps d'espera d'una hora entre intents i un interruptor per desactivar-ho.
La primera prova real va destapar dos fallos que els tests no veien. El mòdul de protocol té la seva pròpia llista d'accions permeses, i les noves només s'havien afegit al dimoni: les peticions reals morien amb «unsupported action», perquè els tests cridaven el gestor directament sense passar pel protocol. I després una de més fina: la unitat de systemd fa servir un /tmp privat i el fill hi extreia la versió nova per passar-la a Docker com a bind mount; Docker la creava al /tmp real de l'amfitrió, que el fill no veu. Extracció buida. La solució: moure l'staging a la carpeta d'instal·lació, una ruta visible per a tots.
I encara una tercera, a la tarda: el fill moria amb la unitat que ell mateix reiniciava, perquè obrir una sessió nova no et treu del cgroup, el grup de control on systemd tanca el procés. Ara neix amb systemd-run --scope i viu fora. He netejat també els staging orfes i el panell ja diu la veritat: «es reintentarà a les HH:MM; no cal que facis res».
Backups complets: configurar, esborrar i restaurar
La secció de backups havia quedat a mitges: només un llistat, sense formulari. Ara hi ha configuració real (freqüència, hora, retenció, incloure mitjans), esborrat de còpies amb doble validació del nom i restauració amb xarxes de seguretat per capes: abans de tocar res fa una còpia de l'estat actual — si falla, es reinstal·la sola —, passa el contingut per les migracions d'esquema i reinicia l'API. Per confirmar, has de teclejar el nom de l'arxiu. Aquesta ha estat, a més, la primera release que es desplega sola des del panell, sense SSH.
Un bloqueig de xarxa que no és codi
Vaig tancar el dia amb el servidor domèstic sense sortida pel port 443 cap al catàleg d'actualitzacions. Curios: només cap a aquelles dues IPs, només en aquell port. La web no es cau perquè el túnel va per QUIC, que fa servir UDP. No és un problema de codi: o el tallafocs, o el router, o Cloudflare. Mentre es resol, el panell ja avisa quan no hi ha contacte amb el catàleg, en lloc de callar i fer creure que tot va bé.