takana-os.net: el sitio propio, servido del repo y con las dos direcciones

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.
This commit is contained in:
Sergio
2026-09-21 20:55:27 +00:00
parent bf6037c832
commit 86cf362627
14 changed files with 716 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# `takana-os.net` — el sitio del proyecto
Una sola página, autocontenida, en dos idiomas y dos temas. **No le pide nada a terceros:** las
tipografías de la marca (Chivo e IBM Plex, las dos SIL OFL) viajan acá en `fuentes/`, subconjuntos
`latin` y `latin-ext`, 154 KB en total. Un sitio sobre no depender de binarios ajenos que cargara
las fuentes de Google en cada visita sería una contradicción barata.
| | |
|---|---|
| `index.html` | la página entera: CSS y JS adentro, el símbolo como `<symbol>` SVG inline |
| `fuentes.css` + `fuentes/` | las ocho caras `@font-face`, servidas de acá |
| `simbolo.svg` | el favicon — el martillo tocapu 7×7, derivado de `docs/marca/simbolo-fondo-claro.svg` |
La paleta y la tipografía salen de **`docs/marca/README.md`** y no se inventan acá. La única
desviación, deliberada: en tema claro el texto de acento usa un brasa oscurecido (`#9E3F16`), porque
el `#DF6B2A` de la marca sobre alpaca da 2,9:1 y no se lee. Las combinaciones de la página están
medidas: ninguna baja de 4,5:1.
## Las dos direcciones que publica
- **código** → `https://git.gioser.net/sergio/takana` (público; `git clone` por HTTPS)
- **paquetes** → `https://takana-os.net/repo/`, que es el MISMO `/srv/repo` firmado que sirve
`repo.gioser.net`. Comprobado: `takana install age --repo https://repo.gioser.net --trust ./trust`
responde `release: trusted (by release)`.
`takana repo list --repo <url>` **no habla HTTP** — sólo directorios locales — y ante una URL dice
«repo vacío» con salida 0 en vez de decir que no sabe. El que sí baja por red es `install --repo`.
## Cómo se sirve
Caddy, en la caja `takana`, vhost `takana-os.net, www.takana-os.net`. La raíz es
**`/work/sergio/takana/web/takana-os.net`**, el árbol de trabajo vivo: *publicar es guardar el
fichero*. No lo refresca `publicar-webs.sh` a propósito — un `pull` sobre el árbol compartido mueve
HEAD bajo los pies de otro agente (CLAUDE.md §2 ter).
El bloque, por si hay que rehacer la caja (`caddy validate``arjectl restart caddy`, **nunca**
`caddy reload`: el Caddyfile lleva `admin off`, SDD 28 §6.14):
```caddyfile
takana-os.net, www.takana-os.net {
import acceso
encode gzip zstd
redir /repo /repo/ permanent
handle_path /repo/* {
root * /srv/repo
file_server browse
}
handle {
root * /work/sergio/takana/web/takana-os.net
@oculto path /.* */.*
respond @oculto 404
file_server
}
}
```
## DNS
El dominio se registró el 2026-09-21 y **el vhost está puesto antes que los registros**: hasta que
`takana-os.net` resuelva a la caja, Caddy no puede pedir el certificado y el nombre no responde.
Hacen falta dos `A` a `2.29.29.217` (la IP de la caja), igual que la de `repo`:
```
takana-os.net. A 2.29.29.217
www.takana-os.net. A 2.29.29.217
```
Con eso puesto, el certificado sale solo en la primera petición — y **tarda unos segundos más que
el primer `curl`**: si da error, reintentar antes de ir a mirar logs (SDD 28 §6.14).