El DNS de `takana-os.net` y `www` quedó apuntado, así que Caddy sacó el
certificado de Let's Encrypt (vence el 2026-12-20) y el sitio responde 200. Un
detalle que costó dos minutos y no estaba escrito: **el vhost se había puesto
ANTES del DNS**, y Caddy no reintenta al instante — se queda en su backoff y el
nombre sigue mudo aunque el registro ya esté. `arjectl restart caddy` fuerza el
reintento; anotado en el README del sitio.
Dos nombres más, y los dos SÓLO redirigen:
takana.gioser.net → 301 a takana-os.net (la página vieja, la de hermanas.py)
git.takana-os.net → 301 a git.gioser.net (⏳ le falta el registro A)
`git.takana-os.net` no sirve gitea y no es por pereza: gitea tiene UN `ROOT_URL`
con el que arma cada enlace absoluto y cada URL de clon que muestra la UI.
Colgarlo de un segundo nombre daría un sitio que se contradice —entrás por uno y
te ofrece clonar del otro— y moverlo de verdad rompe los clones y el CI que ya
apuntan al viejo. `git clone` sigue el 301 sin chistar.
⚠ `publicar-webs.sh` comparaba `takana.gioser.net` contra el fichero en disco, y
eso ya no aplica: ahora es un 301. Se separó el control en dos —`comprobar` por
sha contra el disco, `redirige` por destino— y `takana-os.net` entra en el
primero. Lo que NO entra es el `pull`: su raíz es el árbol de trabajo que los
agentes editan, y tirar de ahí mueve HEAD bajo los pies de otro (CLAUDE.md §2 ter).
⚠ Y la primera versión de `redirige()` preguntaba por `getent hosts` quién
resuelve: **en esta caja `getent` NO EXISTE** —musl/busybox no lo traen— así que
daba 127 para todo y declaraba «no resuelve todavía» hasta de los nombres que
estaban andando. Un control que nunca mira nada se ve igual que uno en verde; es
la lección del reaper otra vez. Ahora se lo pregunta a curl, por su código 6.
Corrido entero: 4 verdes por contenido, 1 por destino, 1 avisando del A que falta.
La página suma los dos verbos que ya se pueden correr contra el repo remoto sin
construir nada (`repo list` y `repo verify`), que es el commit de al lado.
Vive junto a la página porque es su documentación, pero quedaba servido en
/README.md: rutas de la caja y el procedimiento del vhost, que no son para el
visitante. El bloque del README se sincroniza con el que quedó en la caja para
que no derive.
El dominio se registró hoy. La página entra al repo takana y NO al de gioser-web —
la que hay en `takana.gioser.net` la genera `hermanas.py` desde otro repo y todavía
apunta a `git.gioser.net/sergio/hammer`, un nombre que dejó de existir hace doce
días: una página sobre el proyecto que vive fuera del proyecto envejece sin que
nadie se entere.
Lo que la página publica, que es lo que se pidió: **dos direcciones**, no una.
código https://git.gioser.net/sergio/takana (clone por HTTPS)
paquetes https://takana-os.net/repo/ (el MISMO /srv/repo firmado)
El `/repo/` cuelga por `handle_path` del mismo árbol que sirve `repo.gioser.net`,
así que es la dirección en el dominio propio sin DNS ni certificado nuevos.
Comprobado de punta a punta antes de escribirlo en la página, no supuesto:
takana install age --repo https://repo.gioser.net --trust ./trust
⇒ release: trusted (by release) · apply OK
⚠ De paso se vio que `takana repo list --repo <url>` NO habla HTTP —sólo mira
directorios locales— y ante una URL responde «repo vacío» con salida 0 en vez de
decir que no sabe. Queda anotado en el README del sitio; el arreglo es otra unidad.
Las cifras de la tabla salen de `docs/state/build-state.json` y del store de la
caja, contadas hoy: 941 recetas, 926 selladas, 15 en deuda, 1407 artefactos, y las
clausuras de los cuatro escritorios (KDE 418/420, GNOME 318/319, COSMIC 282/283,
sway 269/270). No se estiman.
Sin terceros: las tipografías de la marca viajan en `fuentes/` (154 KB, subconjuntos
latin y latin-ext, las dos SIL OFL con su licencia al lado). Un sitio sobre no
depender de binarios ajenos que pidiera las fuentes a Google en cada visita sería
una contradicción barata.
Contraste medido, no a ojo: el brasa `#DF6B2A` de la marca sobre alpaca da 2,9:1 y
no se lee, así que el acento del tema claro es un brasa oscurecido `#9E3F16`.
Ninguna combinación de la página baja de 4,5:1.
El vhost ya está puesto en la caja (respaldo del Caddyfile + `caddy validate` +
`arjectl restart caddy` + testigo `git.gioser.net` respondiendo antes de darlo por
bueno). Falta lo único que no puedo hacer yo: los dos registros A a 2.29.29.217.