From aa2752fa7baaeb5102f1cfdab899d752a9726a53 Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 16 Sep 2026 15:22:50 +0000 Subject: [PATCH] los sueltos, desglosados: 2,7 G de los que lo irreemplazable son 27 guiones de 1 M MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El usuario pidió el detalle de los binarios que ningún paquete provee, que es lo que la mudanza no puede reconstruir. Medido en los tres directorios (`/usr/local/bin`, `~/.local/bin`, `/root/.local/bin`): tawasuyu 57 ficheros 1003 M salida del monorepo ⇒ se reconstruye terceros 10 ficheros 841 M kiro-cli 571 M, kcl, qdrant, listmonk… ⇒ se re-bajan respaldo/duplicado 21 ficheros 876 M /root/.local/bin es una COPIA de kiro-cli + el CLI claude guiones 27 ficheros <1 M git-deploy, webhook-deploy.py, mirada-session… ⇒ NADA los provee Lo caro no es lo valioso: 1,8 G de los 2,7 son reconstruibles o duplicados, y lo único que no está en ningún repo ni paquete son 27 guiones que suman menos de un megabyte. Y los 572 M que el censo no veía (§6.34) eran justamente la copia duplicada de kiro-cli. De `.claude` decide mi criterio, por pedido: de 6,8 G viajan 15 M — `projects/*/memory` (6,2 M), `settings.json`, `plugins` e `history.jsonl`. `jobs` (5,3 G), `downloads`, `archivo-sesiones` y los caches no viajan; los transcripts crudos (973 M) van al Storage Box, no a la caja: no hacen falta para funcionar, la memoria es su destilado. ⚠ Y la trampa que haría inútil todo eso: la memoria se indexa POR RUTA (`-mnt-vvv-takana`), y en la caja el repo está en `/opt/takana` — copiarla tal cual deja 163 ficheros que NO se encuentran, sin que nada falle. ⚠ Segundo hallazgo: la caja no tiene usuario `sergio` (sólo root, sshd, gitea, proxy) y shuma corre sin privilegio en gioser. La tarjeta que lo declare tiene que crear la cuenta, y el payload Native de arje no tiene campo de usuario. Co-Authored-By: Claude Opus 5 (1M context) --- docs/28-servidor-de-produccion.md | 58 +++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/docs/28-servidor-de-produccion.md b/docs/28-servidor-de-produccion.md index 1dddb658..c8ee87f1 100644 --- a/docs/28-servidor-de-produccion.md +++ b/docs/28-servidor-de-produccion.md @@ -2044,6 +2044,64 @@ va a inventar**: son las herramientas propias del usuario, no servicios de un ca **datos** tampoco se recomiendan solos (§3): `/home` son 25 G que incluyen 6,8 G de `.claude` y 1,3 G de binarios sueltos. +### 6.35 🧳 Los binarios sueltos, desglosados — y qué de `.claude` viaja *(2026-09-16)* + +Decisión del usuario sobre el §6.34: **shuma se construye desde tawasuyu** (ya está encolado: +`recipes/incoming/shuma-{gateway,daemon}.toml`), **los daemons de tawasuyu viven todos**, y de +`.claude` decide el criterio de quien lo usa. Falta el detalle de los sueltos, que es esto. + +#### Son 2,7 G en tres directorios, y casi nada de eso es irreemplazable + +| clase | cuánto | qué es | se reconstruye | +|---|---|---|---| +| **tawasuyu** | 57 ficheros · **1003 M** | `pata-llimphi` 105 M, `nahual-shell-llimphi` 98 M, `shuma-shell-llimphi` 76 M, los 14 `mirada-*`, `pata-*`, `shuma-*`, `sandokan-*`, `willay-*`, `pacha`, `tejido`, `tupu`, `matilda`, `thasnuna`… | **sí**: son salida del monorepo, que ya vive en el gitea de la caja | +| **terceros** | 10 ficheros · **841 M** | `kiro-cli*` 571 M (tres binarios), `kcl` 95 M, `qdrant` 91 M (muere, §6.30), `gitea-runner` 21 M, `act_runner` 21 M (muere), `listmonk` 19 M, `hcloud` 18 M, `goaccess` 3,4 M | no, pero **se vuelven a bajar de su origen** | +| **respaldo / duplicado** | 21 ficheros · **876 M** | `/root/.local/bin` es **una copia entera de `kiro-cli*`** (571 M) más el CLI de `claude` (219 M); el resto son `.respaldo-FECHA`, `.previo` y `.bak` | no hace falta | +| **guiones** | 27 ficheros · **< 1 M** | `git-deploy`, `webhook-deploy.py`, `update-squid-allowed-ips.sh`, `mirada-session*`, `huellita-aviso`… | **NO** ← lo único de verdad frágil | + +⇒ **lo caro no es lo valioso**. De los 2,7 G, 1,8 G son reconstruibles o duplicados, y lo que no +está en ningún repo ni en ningún paquete son **27 guiones que suman menos de un megabyte** — el +pegamento que nadie recuerda hasta que falta. Van al plan como una sola entrada, y con nombre. + +Y los **572 M de `/root/.local/bin`** que el censo no veía (§6.34) resultaron ser exactamente eso: +la copia de `kiro-cli*` que ya está en el home de `sergio`. La lección no cambia —un censo que dice +«no hay nada» de lo que no pudo mirar es peor que uno que falla—, pero el contenido, esta vez, era +duplicado. + +#### `.claude`: 6,8 G en disco, **15 M es lo que hace falta para seguir funcionando igual** + +Criterio, porque es lo que me deja trabajar allá como acá: + +| viaja | qué | tamaño | +|---|---|---| +| ✅ | `projects/*/memory/` de los 18 proyectos — la memoria destilada | **6,2 M** | +| ✅ | `settings.json`, `plugins/`, `history.jsonl` | ~8,6 M | +| ⛔ | `jobs/` (5,3 G), `downloads/` (228 M), `archivo-sesiones/` (286 M), `file-history/`, `shell-snapshots/`, `cache/`, `paste-cache/` | 6,1 G | +| ⚠ | `projects/*/*.jsonl` — los transcripts crudos (973 M) | ver abajo | + +Los **transcripts no hacen falta para funcionar**: la memoria es su destilado y es lo que se lee al +arrancar una sesión. Lo que se pierde sin ellos es `--resume` de una sesión vieja y la posibilidad +de releer una conversación que nadie resumió. Por eso no van a la caja —que tiene 42 G libres en +`/work` y los quiere para el store— sino al **Storage Box del respaldo**, que es donde vive lo que +se guarda por si acaso. La memoria, en cambio, viaja con la máquina. + +#### ⚠ Y una trampa de ruta que haría todo esto inútil + +**La memoria se indexa POR RUTA**: el directorio se llama `-mnt-vvv-takana` porque el repo vive en +`/mnt/vvv/takana`. En la caja el repo está en **`/opt/takana`** ⇒ copiar `memory/` tal cual deja los +163 ficheros en disco y **ninguno se encuentra**, sin que nada falle. Las dos salidas son renombrar +el directorio a la ruta de destino (`-opt-takana`) o darle al repo la misma ruta que acá. Se elige +al copiar, no después. + +#### 🕳️ La caja no tiene usuario `sergio` + +`/etc/passwd` de `2.29.29.217`: `root`, `sshd`, `gitea`, `proxy`. Nada más. En gioser, +`shuma-daemon` corre como `sergio` —y `shuma-gateway` también—, así que la tarjeta de arje que los +declare tiene que **crear la cuenta primero**; y el payload `Native` de arje **no tiene campo de +usuario** (SDD 29 §4.0 quinquies), así que declararlos sin más los pone a correr como root. Es la +misma advertencia que ya lleva `recipes/incoming/shuma-daemon.toml` en su cabecera, escrita donde se +va a leer. + ## 7. Reusar los scripts que ya existen, y no escribir de nuevo Pedido explícito del usuario. El inventario de lo que ya hace el trabajo: