tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1534Shell 199Rust 109Markdown 993713 Definiciones

espejo provisional del repo en takana.gioser.net/repo, sin firmar y diciéndolo

Mientras repo.gioser.net espera su vhost (root), el catálogo queda servido bajo el sitio que Caddy
ya atiende: /work/sergio/gioser-web/takana/repo, escribible sin root y con certificado válido. 173
paquetes; `install zsh` desde la URL pública tarda 0,22 s (1331 ficheros) y el binario corre.

El índice va SIN FIRMA a propósito. La clave de release está en /root/.config/takana/keys y desde la
jaula no se alcanza; firmarlo con otra habría sido peor que no firmarlo, porque una autoría
inventada se lee igual que una real — es la «firma sin gestión de claves» que repo-perfil.sh se
niega a hacer. Se le quitó la firma de la clave de prueba con la que se ensayó. Control:
--require-signed lo rechaza.

Dos cuidados, porque vive dentro del clon de git de otra web: repo/.gitignore con `*` (el directorio
se ignora a sí mismo, así un `git add -A` en gioser-web no se lleva 173 .tkn) y hermanas.py no lo
borra (sólo escribe index.html). Comprobado que el clon de la web sigue limpio.

Se quita con un rm -rf el día que repo.gioser.net sirva el firmado. No cuenta como el segundo
origen del ADR 0014: un origen sin firma no es un origen.

972eb6619dcf119cbb7916cd20e56ee42f00bc29 · por Sergio · (hace 1 mes) · padre 4b7ef7d5a · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +28 −0

diff --git a/docs/28-servidor-de-produccion.md b/docs/28-servidor-de-produccion.md
index ff5e2d68..d02d52a4 100644
--- a/docs/28-servidor-de-produccion.md
+++ b/docs/28-servidor-de-produccion.md
@@ -630,6 +630,34 @@ disfraza de «al día»: lo dice, sale ≠ 0 y **conserva el último estado buen
 lab. El aviso llega a cualquiera; el `install` que lo resuelve sigue siendo reproducir desde fuente
 (§5.4). Por eso `outdated` **no actualiza**: instalar es verificar, y eso no se cuelga de un cron.
 
+### 5.8 El espejo provisional en `takana.gioser.net/repo` — y por qué va SIN FIRMAR *(2026-09-21)*
+
+Mientras `repo.gioser.net` espera su vhost (root, §5.7), el catálogo está servido bajo el sitio que
+Caddy ya atiende: `/work/sergio/gioser-web/takana/repo`, que es un árbol **escribible sin root** y
+con certificado válido. 173 paquetes, y `install zsh` desde la URL pública tarda **0,22 s** (1331
+ficheros) y el binario corre.
+
+**El índice va sin firma a propósito, y eso es lo único honesto que se podía hacer.** La clave de
+release vive en `/root/.config/takana/keys` de la caja y desde la jaula no se alcanza. Firmarlo con
+otra clave habría sido *peor* que no firmarlo: una autoría inventada se lee igual que una real, y es
+exactamente la «firma sin gestión de claves» que `repo-perfil.sh` se niega a hacer (SDD 19 §3.2). Se
+le quitó al índice la firma de la clave de prueba con la que se había ensayado. Control:
+`--require-signed` lo **rechaza** — `Error: el repo no tiene firma de release`.
+
+Lo que sí conserva su valor: cada entrada lleva su `expected_hash` anclado, así que `install`
+reconstruye desde fuente y **compara**. Lo que no se puede verificar acá es *quién* armó el
+catálogo, no si el binario sale de la fuente que dice.
+
+Dos cuidados que lleva puestos, porque vive dentro del clon de git de otra web:
+
+- **`repo/.gitignore` con `*`**: el directorio se ignora a sí mismo. Un `git add -A` en `gioser-web`
+  no se lleva 173 `.tkn` por delante. Comprobado: `git status` del clon sigue limpio.
+- **`hermanas.py` no lo borra**: sólo escribe `takana/index.html` y `hifas/index.html`, no arrasa el
+  directorio, así que el espejo sobrevive a `publicar-webs.sh`.
+
+Se quita con `rm -rf /work/sergio/gioser-web/takana/repo` el día que `repo.gioser.net` sirva el
+firmado. **No es un espejo del ADR 0014**: un origen sin firma no cuenta como origen alternativo.
+
 ---
 
 ## 6. La mudanza como experimento: el criterio de borrado