SDD 28 §6.9-6.10: los 19 dominios sondeados uno por uno, y el respaldo corriendo desde la caja

**Puerta 8 (fósiles), sondeada por DNS Y por HTTP**: de las 19 entradas del Caddyfile, gioser sólo
sirve **6** de verdad (las dos landings, el gitea x2, sergio x2). Las otras 13 NO hay que mudarlas:
8 no tienen DNS, 2 dan 502, y **3 ya viven en otra máquina** (`summa`, `api.summa`, `dev.summa` →
154.197.1.2) aunque el bloque de Caddy siga en gioser. O sea que la superficie real a mudar son 6
sitios, y el que pesa es el gitea porque aloja el `origin` de takana.

⚠ `terapeuta.ec` es el único fósil CON DATOS (279 M en /var/www) y sin DNS: hay que decidir
explícitamente si se archiva o muere con la caja.

**Puerta 7**: la caja alcanza el Storage Box y refresca el manifiesto — 3140 artefactos, con 2
VACÍOS detectados y excluidos (`gnome-desktop` ×2). Para llegar ahí hubo que arreglar tres bloqueos
de la misma familia —*el instrumental asume que el hub es gioser*—: la raíz cableada, el binario de
desarrollo, y el rsync sin zstd que hacía que el respaldo no se ejecutara en absoluto.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RomoxEGZUhaT4pob1QSX5x
This commit is contained in:
Sergio
2026-09-11 03:00:54 +00:00
co-authored by Claude Opus 5
parent 01b1dcfefe
commit 52144e040f
+49 -1
View File
@@ -520,7 +520,9 @@ diferencia es «cuánto de esto tengo en disco» y no «qué existe».
| 3 | los cuatro grafos idénticos | ✅ **byte a byte** — §6.7 |
| 4 | la granja late en la caja nueva | ⬖ camino probado; cosecha completa sin disco — §6.8 |
| 5 | el repo se sirve y el host se actualiza de sí mismo | ⬖ mitad: sirve (§5.1), no consume (§5.4) |
| 68 | dominios vivos · respaldo · fósiles decididos | pendientes |
| 6 | cada dominio vivo responde 200 | ⬖ sondeados: **6 vivos de 19** — §6.9 |
| 7 | el respaldo corre desde la caja | ⬖ alcanza el box y lista 3140; arreglados 3 bloqueos — §6.10 |
| 8 | lo fósil, anotado y decidido | ⬖ anotado (§6.9); **falta decidir** |
**Puerta 2, medida acotando al patrón `<hash>-<nombre>`**: 1362 artefactos, **0 vacíos**. Los 3 sin
`.hammer/recipe.toml` son `stage1-rootfs`, `product-rootfs` y `seed-zig` — productos de bootstrap,
@@ -744,6 +746,52 @@ de ingeniería:
destraba la cosecha ya; se paga por duplicado hasta que gioser muera, y entonces se suelta.
3. **Podar el store de la caja** — deshace parte de la mudanza. No.
### 6.9 Puerta 8: los 19 dominios, sondeados uno por uno *(2026-09-11)*
El Caddyfile de gioser declara 19 sitios. Sondeados por DNS **y** por HTTP desde fuera, sólo **6**
los sirve gioser de verdad:
| dominio | DNS | HTTP | qué es |
|---|---|---|---|
| `gioser.net` · `tawasuyu.net` | gioser | **200** | **VIVO** — las dos landings |
| `git.gioser.net` · `git.tawasuyu.net` | gioser | **200** | **VIVO** — el gitea (aloja el `origin` de takana) |
| `sergio.gioser.net` · `api.sergio.gioser.net` | gioser | **200** | **VIVO** |
| `summa` · `api.summa` · `dev.summa` | **154.197.1.2** | 200 | **YA MUDADOS** a otra máquina: el bloque de Caddy en gioser es fósil aunque el sitio viva |
| `api.gioser.net` | gioser | **502** | backend caído |
| `mail.sigma.gioser.net` | gioser | **502** | backend caído |
| `aura` · `api.aura` · `sigma` · `kosmofono` · `api.kosmofono` | **SIN DNS** | — | fósil: ni DNS ni ficheros en `/var/www` |
| `terapeuta.ec` · `andino.ec` | **SIN DNS** | — | fósil con datos: 279 M en `/var/www/terapeuta` |
| `gitea.gioser.net` | **SIN DNS** | — | era un `redir` a `git.gioser.net`; inofensivo |
**Lo que esto cambia respecto del §1.1**: no son «4 fósiles» sino **13 de 19 entradas que no hay que
mudar** — 8 sin DNS, 2 con el backend caído y 3 que ya viven en otra máquina. La superficie real a
mudar son **6 sitios**, y de esos el que pesa es el **gitea**, porque aloja el `origin` de takana.
**`terapeuta.ec` es el único fósil con datos** (279 M). Sin DNS no sirve a nadie, pero borrarlo con
la caja se lleva los ficheros. Decidir explícitamente: se archiva o se deja morir.
### 6.10 Puerta 7: el respaldo desde la caja — y tres bloqueos que sólo se ven corriéndolo
Llevadas las credenciales (`~/.config/hammer/*.env`, 0600) y la clave, **la caja alcanza el Storage
Box** por el puerto 23 y lista su contenido. El manifiesto se refresca desde allá:
**3140 artefactos**, y de paso el script detecta **2 VACÍOS en el respaldo** (`gnome-desktop` ×2) que
excluye del manifiesto — su propia guarda, funcionando.
Para llegar ahí hubo que arreglar tres cosas, y las tres son de la misma familia: *el instrumental
asume que el hub es gioser*.
1. **La raíz cableada.** `RAIZ="${RAIZ:-/mnt/vvv/takana}"` ⇒ desde cualquier otra máquina el script
moría con `cd: /mnt/vvv/takana: No such file or directory`. Ahora se deriva de dónde está el
script, como el resto de `scripts/`.
2. **El binario de desarrollo.** `HAMMER = ROOT/target/release/takana` (§6.7).
3. **El rsync del corpus no puede correr el respaldo del corpus.** El script exige
`--compress-choice=zstd` y `recipes/rsync.toml` lo construía con `--disable-zstd` — porque cuando
se escribió, `zstd` no estaba en el catálogo. Hoy sí. Peor aún: el error 4 que devuelve rsync el
script lo clasifica como «no de red» y **no reintenta**, así que el respaldo simplemente no se
hacía. Arreglado por los dos lados: la receta enciende zstd (control: `zstd zlibx zlib none` vs
`zlibx zlib none`; radio cero, `rsync` no es dep de nadie) y **el script degrada a zlib avisando**
en vez de morir.
### 6.2 Lo que la mudanza tiene que producir, además de la mudanza
El usuario lo pidió explícito: **que este experimento saque recetas y las pruebe**. La caja vieja es