1# `takana-os.net` — el sitio del proyecto
2
3Una sola página, autocontenida, en dos idiomas y dos temas. **No le pide nada a terceros:** las
4tipografías de la marca (Chivo e IBM Plex, las dos SIL OFL) viajan acá en `fuentes/`, subconjuntos
5`latin` y `latin-ext`, 154 KB en total. Un sitio sobre no depender de binarios ajenos que cargara
6las fuentes de Google en cada visita sería una contradicción barata.
7
8| | |
9|---|---|
10| `index.html` | la página entera: CSS y JS adentro, el símbolo como `<symbol>` SVG inline |
11| `fuentes.css` + `fuentes/` | las ocho caras `@font-face`, servidas de acá |
12| `simbolo.svg` | el favicon — el martillo tocapu 7×7, derivado de `docs/marca/simbolo-fondo-claro.svg` |
13
14La paleta y la tipografía salen de **`docs/marca/README.md`** y no se inventan acá. La única
15desviación, deliberada: en tema claro el texto de acento usa un brasa oscurecido (`#9E3F16`), porque
16el `#DF6B2A` de la marca sobre alpaca da 2,9:1 y no se lee. Las combinaciones de la página están
17medidas: ninguna baja de 4,5:1.
18
19## Las dos direcciones que publica
20
21- **código** → `https://git.gioser.net/sergio/takana` (público; `git clone` por HTTPS)
22- **paquetes** → `https://takana-os.net/repo/`, que es el MISMO `/srv/repo` firmado que sirve
23 `repo.gioser.net`. Comprobado: `takana install age --repo https://repo.gioser.net --trust ./trust`
24 responde `release: trusted (by release)`.
25
26⚠ `takana repo list --repo <url>` **no habla HTTP** — sólo directorios locales — y ante una URL dice
27«repo vacío» con salida 0 en vez de decir que no sabe. El que sí baja por red es `install --repo`.
28
29## Cómo se sirve
30
31Caddy, en la caja `takana`, vhost `takana-os.net, www.takana-os.net`. La raíz es
32**`/work/sergio/takana/web/takana-os.net`**, el árbol de trabajo vivo: *publicar es guardar el
33fichero*. No lo refresca `publicar-webs.sh` a propósito — un `pull` sobre el árbol compartido mueve
34HEAD bajo los pies de otro agente (CLAUDE.md §2 ter).
35
36Este README **no se sirve**: son notas de operación, y el matcher del vhost las 404ea.
37
38El bloque, por si hay que rehacer la caja (`caddy validate` → `arjectl restart caddy`, **nunca**
39`caddy reload`: el Caddyfile lleva `admin off`, SDD 28 §6.14):
40
41```caddyfile
42takana-os.net, www.takana-os.net {
43 import acceso
44 encode gzip zstd
45
46 redir /repo /repo/ permanent
47 handle_path /repo/* {
48 root * /srv/repo
49 file_server browse
50 }
51
52 handle {
53 root * /work/sergio/takana/web/takana-os.net
54 @oculto path /.* */.* /README.md
55 respond @oculto 404
56 file_server
57 }
58}
59```
60
61## DNS
62
63El dominio se registró el 2026-09-21 y **el vhost está puesto antes que los registros**: hasta que
64`takana-os.net` resuelva a la caja, Caddy no puede pedir el certificado y el nombre no responde.
65Hacen falta dos `A` a `2.29.29.217` (la IP de la caja), igual que la de `repo`:
66
67```
68takana-os.net. A 2.29.29.217
69www.takana-os.net. A 2.29.29.217
70```
71
72Con eso puesto, el certificado sale solo en la primera petición — y **tarda unos segundos más que
73el primer `curl`**: si da error, reintentar antes de ir a mirar logs (SDD 28 §6.14).
README.md
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).
Este README no se sirve: son notas de operación, y el matcher del vhost las 404ea.
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):
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 /.* */.* /README.md
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).