Compañíade Innovaciónde Santiago

Registro · 9 de agosto de 2026

Dominios que sirven el mismo origen

Ciento tres dominios repartidos en 89 archivos de Caddy. Veintidós de ellos, en nueve grupos, sirven exactamente el mismo origen que otro dominio. Uno de cada cinco. Acá va cuál debería ser el canónico de cada grupo, con qué evidencia, y qué hacer con el resto.

103dominios servidos
22comparten origen
9grupos
5decididos con evidencia
4falta decidir
Qué cuenta como alias acá. Dos dominios comparten origen cuando su manejador de raíz apunta a la misma carpeta o al mismo puerto. El manejador de raíz es el handle sin filtro de ruta, o el root * que queda al final. Un backend colgado de una ruta, como /api/*, no cuenta: eso es una aplicación llamando a un servicio, y es lo normal. La distinción no es cosmética. Si se cuenta cualquier puerto repetido, salen alias que no existen, y alguien termina poniendo un 301 sobre una API que estaba bien.
Qué queda fuera de los 22, a propósito. Los nombres que van en la misma lista de direcciones de un bloque no cuentan. www.innovacionsantiago.cl comparte origen con innovacionsantiago.cl, claro, pero por construcción: hay una sola configuración, así que no hay dos copias que puedan derivar ni canónico que discutir. Por eso en los 22 no aparece ningún www. Lo mismo con www.firmasydocumentos.cl y www.usaia.cl. Son la forma buena de tener dos nombres, y por eso están en la sección 6 y no en la lista de pendientes.

1 · el método

Cómo se midió

Lectura completa de los bloques de Caddy, más un sondeo de solo lectura para confirmar lo que la configuración sugería.

  1. El universo. El Caddyfile importa /etc/caddy/sites.d/*.caddy. Son 89 archivos vivos, con 99 bloques de sitio y 103 dominios. Todo lo que termina en .bak, .disabled o .retirado queda fuera de ese glob y por lo tanto fuera de esta cuenta.
  2. El origen de cada dominio. De cada bloque se extrajo el manejador de raíz y, por separado, los backends colgados de rutas. Los dos se anotan, pero solo el primero agrupa.
  3. La confirmación. Para cada grupo candidato se pidió la portada por HTTPS y se comparó el código de respuesta y el tamaño. Dos respuestas del mismo tamaño exacto desde dos dominios distintos son la prueba de que el origen es el mismo. Solo lecturas: ningún archivo de Caddy se tocó.

Los tamaños que aparecen más abajo salen de ese sondeo del 9 de agosto. Son dato medido, no estimación.

2 · antes de seguir

Corrección al hallazgo previo

El encargo traía cuatro casos confirmados. Al medirlos, dos se sostienen tal cual, uno estaba subcontado y uno estaba mal leído. Va acá arriba y no escondido en una nota al pie, porque un registro que hereda en silencio el error de su encargo vale menos que uno que muestra la medición.

Caso del encargoVeredictoQué dice la medición
cis-www/dist-staging en dos dominios Confirmado Los dos responden 200 con 1.466 bytes idénticos.
prosa en el 8320 Confirmado Los dos bloques tienen reverse_proxy 127.0.0.1:8320 como raíz.
vpn en dos zonas Subcontado No son dos dominios sino tres: vpn.innovacionsantiago.cl, vpn.cochid.cl y vpn.illanes00.cl.
tpte y mapas en el 8199 Mal leído No comparten origen. La raíz de tpte es el 8206 y la de mapas es el 8212. El 8199 aparece en los dos, pero solo colgando de una ruta: /api/v1/* en uno y /proxy/tpte/* en el otro.
El par real de esa vecindad es otro. mapas.cochid.cl y trenes.cochid.cl sí comparten origen: los dos llevan reverse_proxy 127.0.0.1:8212 como manejador de raíz. Va como grupo 8.

3 · con evidencia suficiente

Cinco grupos que la evidencia decide

En estos cinco hay un hecho medido que zanja cuál es el canónico. No hacen falta más datos para actuar.

canónico alias con función propia alias redundante falta decidir retirar
Grupo 1 /srv/projects/cis/cis-www/dist-staging 2 dominios
cis.innovacionsantiago.cl canónico El borrador del sitio de CIS, nombrado en la zona de CIS.
nuevo.circulodesantiago.cl retirar Nombra en la zona de CDS un sitio que es de CIS.

Evidencia. Los dos responden 200 con 1.466 bytes idénticos y los dos llevan X-Robots-Tag: noindex. Las dos configuraciones ya divergieron: cis. agrega X-Frame-Options DENY, la cabecera X-CIS-Stage y un 404 sobre /security/*. nuevo. no tiene ninguna de las tres.

acción Retirar con 410 y puntero, no con 301. Es una URL de borrador marcada noindex: no hay enlace público ni URL impresa que preservar. El grupo ya retiró así admin.circulodesantiago.cl.

Grupo 2 127.0.0.1:8252 · cis-verify 4 dominios
docs.circulodesantiago.cl canónico Es la URL que valida cis-verify, en la forma /v/{numero}. Único con /dte-samples/*.
boleta.innovacionsantiago.cl con función Trae @folio: reescribe /12345 a /v/12345. Es una URL corta para imprimir.
factura.innovacionsantiago.cl con función El mismo @folio, para el otro tipo de documento.
docs.innovacionsantiago.cl redundante Misma configuración que el canónico, sin @folio y sin /dte-samples. No agrega nada.

Evidencia. Los cuatro bloques mandan todo a 127.0.0.1:8252. La diferencia entre ellos son tres reglas de ruta, y dos de las tres existen para acortar una URL que va impresa en un documento.

acción 301 permanente de docs.innovacionsantiago.cl al canónico. Nunca 410: un host que va impreso en un papel se redirige, no se apaga, y se redirige para siempre. boleta y factura se quedan, porque la ruta corta es su razón de existir.

antes de aplicar El pie canónico del grupo, en sistema/pie.html, enlaza docs.innovacionsantiago.cl en la columna Navegación. Ese enlace hay que moverlo en el mismo cambio, o el 301 queda disparándose desde el pie de todas las páginas del grupo.

Grupo 3 /srv/projects/cis/cis-style/dist 3 dominios
style.innovacionsantiago.cl canónico Canónico por consumo: todas las páginas de este sitio cargan el kit desde style.innovacionsantiago.cl/v8/. Su portada responde 200.
style.circulodesantiago.cl redundante Espejo del árbol de versiones con la puerta rota: su portada responde 404, porque dist no tiene index.html.
style.cochid.cl con función El mismo espejo, pero su portada sí sirve algo: reescribe / a /v6/brands/cochid/style-guide.html.

Evidencia de equivalencia. cis-style/public/v7 es un enlace simbólico a ../dist/v7, y /v4, /v5 y /v6 están rooteadas en dist en los tres hosts. O sea, toda ruta de versión resuelve al mismo archivo en los tres. El sondeo lo confirma: 404 en la portada de style.circulodesantiago.cl, 200 con 11.955 bytes en la de style.cochid.cl.

acción 301 de los dos hacia style.innovacionsantiago.cl{uri}. En style.cochid.cl hay que poner antes una regla que mande / a /v6/brands/cochid/style-guide.html, o esa portada de marca se pierde en el cambio.

Grupo 4 /srv/retirado/libro 2 dominios
libro.innovacionsantiago.cl retirar No hay canónico acá porque no hay de qué serlo. Los dos sirven una carpeta que se llama retirado.
libro.circulodesantiago.cl retirar

Evidencia. Los dos responden 200 con 1.814 bytes idénticos. Un sitio dado de baja que sigue devolviendo 200 le miente al que llega y a los buscadores, y le deja la duda viva al próximo que audite.

acción 410 con puntero en los dos, con el mismo texto que ya usa admin.circulodesantiago.cl.

mismo defecto, fuera de grupo mundial.illanes00.cl sirve /srv/retirado/mundial y también responde 200. No forma grupo porque es un solo dominio, pero es la misma falla y conviene arreglarla en el mismo pase.

Grupo 5 /srv/projects/cis/projects/indieweb/frontend 2 dominios
indieweb.cl canónico El ápice de la zona. Ya tiene www redirigiendo hacia él.
mkt.indieweb.cl redundante Misma carpeta, mismo try_files, ningún manejador propio.

Evidencia. No es solo que sea igual: es que es peor. indieweb.cl manda /app/* a apps.indieweb.cl y /legal/* a innovacionsantiago.cl. mkt. no hace ninguna de las dos, así que sirve el mismo sitio con dos secciones muertas.

acción 301 a indieweb.cl{uri}. Si mkt existía para atribuir campañas, eso se resuelve con un parámetro en la URL y se mira en el log. No necesita un origen aparte, y el origen aparte fue justamente lo que dejó las dos secciones rotas.

4 · sin evidencia para zanjar

Cuatro grupos donde falta decidir

Acá el hecho está medido pero la intención no está escrita en ninguna parte. Poner un canónico inventado sería peor que dejar la fila abierta: alguien lo aplicaría creyendo que hubo una decisión.

Grupo 6 127.0.0.1:8296 · vpn 3 dominios
vpn.innovacionsantiago.cl canónico Primera dirección del bloque de CIS.
vpn.cochid.cl alias sano Va en la misma lista de direcciones del mismo bloque. No puede divergir aunque se quiera.
vpn.illanes00.cl falta decidir Bloque aparte, token TLS distinto (tls_cf_global), log propio.

Ya derivó. El bloque de CIS maneja /static/proxy-sw.js con la cabecera Service-Worker-Allowed: /. El bloque de illanes00.cl no lo tiene. Es una copia que se quedó atrás, y es exactamente el costo de tener dos bloques para una aplicación.

falta decidir No se pueden fusionar en una lista de direcciones, porque las dos zonas usan tokens de Cloudflare distintos. Entonces la pregunta de verdad es si el acceso por la zona personal se quiere o no. Si se quiere, hay que sincronizar los dos bloques y dejar anotado que van juntos. Si no, 301 al canónico. Lo que no puede seguir es la copia derivando sola.

Grupo 7 /srv/projects/cis/cis-admin/dist 2 dominios
admin.innovacionsantiago.cl canónico La aplicación completa, con el gate puesto en el borde.
wiki.innovacionsantiago.cl falta decidir Sirve el mismo paquete y manda / a /wiki. Es una entrada de cortesía a una sección.

La asimetría, medida. wiki importa auth-outpost-passthrough, que solo deja pasar las rutas del outpost y no gatea nada. Está leído en /etc/caddy/snippets/auth-forward.caddy: el que gatea es auth-forward-only, y wiki no lo importa en ninguna parte. admin sí lo importa, en la API y en el manejador de raíz.

Sondeo del 9 de agostoRespuesta
admin.innovacionsantiago.cl/302 a Authentik
wiki.innovacionsantiago.cl/wiki200, sirve el paquete
admin.innovacionsantiago.cl/api/v1/docs302 a Authentik
wiki.innovacionsantiago.cl/api/v1/docs401
wiki.innovacionsantiago.cl/api/v1/health200

Lectura calibrada, sin exagerar. La aplicación se defiende sola: su API responde 401 sin sesión. No hay fuga verificada. Lo que falta es la capa de afuera. En admin un desconocido nunca llega a tocar la aplicación. En wiki sí llega, y todo queda apoyado en que la aplicación no se equivoque nunca. Es una diferencia de defensa en profundidad, no un incidente.

falta decidir La asimetría se cierra por cualquiera de los dos lados. O wiki pasa a ser una ruta de admin con un 301, o wiki importa el mismo auth-forward-only. Cuál de las dos depende de para qué existe wiki, y eso no está escrito en ninguna parte de la configuración.

Grupo 8 127.0.0.1:8212 · atlas de mapas 2 dominios
mapas.cochid.cl canónico La aplicación completa. Es el hub del atlas.
trenes.cochid.cl falta decidir Mismo manejador de raíz. Lo único propio: reescribe / a /red-ferroviaria.

Evidencia. Los dos bloques terminan en reverse_proxy 127.0.0.1:8212. El sondeo da 200 en los dos con tamaños distintos, y eso no contradice nada: son dos vistas de la misma aplicación, porque trenes entra por una ruta interior.

falta decidir Este es el mismo patrón de boleta y factura, o sea una entrada de cortesía legítima. La configuración no dice si trenes se pensó como puerta pública de la capa ferroviaria o si fue comodidad de un rato. Si es puerta pública, se queda y se anota como tal. Si fue comodidad, 301 a mapas.cochid.cl/red-ferroviaria.

Grupo 9 127.0.0.1:8320 · prosa 2 dominios, más uno que ya redirige
prosa.medicamentos.cochid.cl falta decidir Hoy es el destino del 308 que sale de prosa.cochid.cl.
prosa.illanes00.cl redundante Mismo puerto en la raíz, sin nada propio salvo las cabeceras.
prosa.cochid.cl ya redirige 308 hacia el nombre largo.

Por qué el canónico de hoy es sospechoso. Prosa es una herramienta transversal: vive en /srv/projects/core/prosa, o sea en lo que comparten las tres entidades, y su linter corre como hook en todos los repositorios. Hoy cuelga del subdominio de un proyecto de medicamentos. prosa.cochid.cl es más corto, está en la zona correcta y ya existe, pero hoy apunta hacia el nombre largo en vez de al revés.

falta decidir Elegir entre prosa.cochid.cl y prosa.medicamentos.cochid.cl, y dar vuelta el 308 si gana el corto. prosa.illanes00.cl es alias en cualquiera de los dos casos, así que ese 301 se puede aplicar sin esperar la decisión del nombre.

5 · falsos positivos

Puertos repetidos que no son alias

Esta sección existe para que nadie ponga un 301 sobre una API que estaba bien. En todos estos casos el puerto se repite, pero colgando de una ruta y no en el manejador de raíz. Es una aplicación llamando a un servicio.

PuertoServicioDónde aparecePor qué no es alias
8244 API de cis-admin admin, wiki, cis.firmasydocumentos.cl, infra Una API detrás de cuatro frontales. Tres de los cuatro sirven carpetas distintas en su raíz.
8191 API del lago de datos datos.cochid.cl, mundial.cochid.cl, polymarket.illanes00.cl Los tres la montan en /api/* y sirven portadas propias.
8199 API de transporte público tpte.cochid.cl en /api/v1/*, mapas.cochid.cl en /proxy/tpte/* El caso que el encargo leyó como alias. Las raíces son 8206 y 8212.
8260 API de cis-inbox inbox en /api/*, admin en /auth/google/callback Un callback de OAuth prestado, no un sitio.
8209 API de scribe Varias rutas de scribe.cochid.cl Un solo dominio. Aparece por completitud.
8215 Aplicación de bicicletas bici.cochid.cl en la raíz, mapas.cochid.cl en /proxy/bici/* El único borde. No es alias de dominio, pero sí son dos espacios de URL públicos para una misma aplicación. Cualquier enlace vive en uno de los dos y se rompe si el otro cambia. Vale revisarlo aunque no entre en la cuenta.
El 9091 no es un origen. Es el outpost de Authentik, o sea el que autentica. Lo tocan 32 bloques, entre los que lo nombran literal y los que lo importan por atajo. Si contara como origen compartido, esos 32 bloques saldrían como un solo grupo gigante y el registro entero no serviría para nada. No cuenta, nunca.

6 · precedente

El patrón de la casa

No hay que inventar política. El grupo ya resolvió esto mismo antes, de tres maneras distintas: diez nombres redirigidos o retirados, más cuatro que nunca llegaron a ser un problema porque comparten bloque. Las recomendaciones de arriba salen de copiar la manera que corresponde, no de una preferencia.

ManeraDónde ya se usaCuándo corresponde
Una sola lista de direcciones
los dos nombres en el mismo bloque
innovacionsantiago.cl con www, firmasydocumentos.cl con www, usaia.cl con www, vpn.innovacionsantiago.cl con vpn.cochid.cl Cuando los dos nombres tienen que funcionar de verdad y comparten token TLS. Es la única manera que no puede derivar, porque hay una sola configuración.
Redirección permanente
301, o 308 si hay que preservar el método
www.circulodesantiago.cl, www.cochid.cl, www.indieweb.cl, www.periodismo2.cl, idea.indieweb.cl, scribe.illanes00.cl, thesis.illanes00.cl, prosa.cochid.cl Cuando uno sobra pero podría estar enlazado desde afuera, impreso en un papel o guardado en un marcador. Se pone y no se saca más.
410 con puntero
Gone, más la URL nueva en el texto
admin.circulodesantiago.cl, claudia.circulodesantiago.cl Cuando uno sobra y no hay nada que preservar. Dice la verdad y además le deja el camino escrito al que llegó.
La regla que sale de todo esto. Nunca dos bloques sirviendo lo mismo. Los cuatro casos de deriva medidos en esta página empezaron todos como una copia fiel: cis. y nuevo. ya no comparten cabeceras, vpn.illanes00.cl perdió el manejador del service worker, style.circulodesantiago.cl quedó con la portada en 404 y mkt.indieweb.cl sirve dos secciones muertas. Ninguna de las cuatro se rompió el día que se copió. Se rompieron después, cuando alguien arregló una sola de las dos copias.

7 · para ejecutar

Resumen de acciones

Los 22 dominios, con lo que corresponde hacer con cada uno. Las filas sin acción son las canónicas y las que cumplen una función propia.

DominioGrupoPapelAcción
cis.innovacionsantiago.cl1canóniconinguna
nuevo.circulodesantiago.cl1retirar410 con puntero
docs.circulodesantiago.cl2canóniconinguna
boleta.innovacionsantiago.cl2con funciónse queda
factura.innovacionsantiago.cl2con funciónse queda
docs.innovacionsantiago.cl2redundante301 permanente, más corregir el pie
style.innovacionsantiago.cl3canóniconinguna
style.circulodesantiago.cl3redundante301
style.cochid.cl3con función301, salvando la portada de marca
libro.innovacionsantiago.cl4retirar410 con puntero
libro.circulodesantiago.cl4retirar410 con puntero
indieweb.cl5canóniconinguna
mkt.indieweb.cl5redundante301
vpn.innovacionsantiago.cl6canóniconinguna
vpn.cochid.cl6alias sanoninguna
vpn.illanes00.cl6falta decidirsincronizar o 301
admin.innovacionsantiago.cl7canóniconinguna
wiki.innovacionsantiago.cl7falta decidircerrar la asimetría de gate, por un lado o por el otro
mapas.cochid.cl8canóniconinguna
trenes.cochid.cl8falta decidirdocumentar como puerta, o 301
prosa.medicamentos.cochid.cl9falta decidirdecidir el nombre canónico
prosa.illanes00.cl9redundante301
Fuera de los 22, mismo defecto. mundial.illanes00.cl responde 200 desde /srv/retirado/mundial. No comparte origen con nadie, así que no arma grupo, pero conviene retirarlo con 410 en el mismo pase que los dos libro.

Nada de esta página se aplicó. Es un registro de lo que hay y una propuesta de qué hacer. Los archivos de Caddy se leyeron y no se tocaron. Lo que se decida se anota en Registro, y la clasificación de cada dominio del grupo está en La estructura.