forked from MxOS/mirrors
feat(mirrors): initial architecture, specifications, automation tools, and canonical guide
Establish community mirror network on IPFS for Fedora and CentOS Stream 10: - Modular documentation and specifications under docs/ - Master canonical guide under README.rst with client and node operator workflows - Ingestion, upstream sync, and Cloudflare DNSLink automation scripts in bin/ - Reverse proxy configs (Nginx/Caddy) and systemd timer units in etc/ and systemd/ Signed-off-by: Rénich Bon Ćirić <renich@evalinux.com> Co-authored-by: Gemini AI <renich+gemini@evalinux.com>
This commit is contained in:
commit
0397fc8cc4
32 changed files with 1700 additions and 0 deletions
38
docs/project/roadmap.rst
Normal file
38
docs/project/roadmap.rst
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
====================================
|
||||
Hoja de Ruta del Proyecto de Espejos
|
||||
====================================
|
||||
|
||||
Visión General
|
||||
==============
|
||||
Esta hoja de ruta establece la secuencia cronológica de ejecución para implementar, validar, publicar y federar la red comunitaria de espejos sobre IPFS de la Fundación MxOS.
|
||||
|
||||
El plan se divide en tres fases secuenciales regidas por dependencias estrictas y trazabilidad directa hacia las especificaciones funcionales y técnicas del proyecto.
|
||||
|
||||
Fases de Ejecución
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
roadmaps/fase-1-poc
|
||||
roadmaps/fase-2-tablero
|
||||
roadmaps/fase-3-federacion-upstream
|
||||
|
||||
Matriz de Fases y Entregables
|
||||
=============================
|
||||
|
||||
.. table:: Resumen de fases del proyecto
|
||||
:widths: auto
|
||||
|
||||
+-------+------------------------------------+--------------------------+-----------------------+
|
||||
| Fase | Denominación | Entregable Principal | Dependencia Crítica |
|
||||
+=======+====================================+==========================+=======================+
|
||||
| 1 | Prueba de Concepto y Publicación | Nodo servidor operativo, | Dominio DNSLink y |
|
||||
| | Canónica | DNSLink y sync inicial | paquete Copr de Kubo |
|
||||
+-------+------------------------------------+--------------------------+-----------------------+
|
||||
| 2 | Tablero de Métricas del Enjambre | Portal público web con | Nodos proveedores |
|
||||
| | | mapa y conteo de nodos | activos en la DHT |
|
||||
+-------+------------------------------------+--------------------------+-----------------------+
|
||||
| 3 | Federacion e Integración Upstream | Registro en MirrorManager| Estabilidad de Fase 1 |
|
||||
| | | y RFC en listas upstream | y Fase 2 demostrada |
|
||||
+-------+------------------------------------+--------------------------+-----------------------+
|
||||
45
docs/project/roadmaps/fase-1-poc.rst
Normal file
45
docs/project/roadmaps/fase-1-poc.rst
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
=================================================
|
||||
Fase 1: Prueba de Concepto y Publicación Canónica
|
||||
=================================================
|
||||
|
||||
Objetivo
|
||||
========
|
||||
Validar de punta a punta la ingesta, generación de DAGs UnixFS, actualización de registros DNSLink y resolución de subrutas para Fedora y CentOS Stream 10 bajo ``mirrors.mx-os.mx``.
|
||||
|
||||
Trazabilidad: [FUNC-001], [FUNC-002], [FUNC-003], [TECH-001], [TECH-002], [TECH-003]
|
||||
|
||||
Hitos de la Fase
|
||||
================
|
||||
|
||||
Hito 1.1: Aprovisionamiento del Nodo Cabecera de MxOS
|
||||
-----------------------------------------------------
|
||||
Poner en marcha el entorno de almacenamiento y el demonio Kubo en la infraestructura de servidores de la Fundación MxOS.
|
||||
|
||||
* **Tarea 1.1.1 [TECH-001]:** Configurar el directorio de staging en el servidor y habilitar la extensión filestore en Kubo.
|
||||
* *Bloqueado por:* Ninguno.
|
||||
* *Desbloquea:* Tarea 1.1.2.
|
||||
* **Tarea 1.1.2 [TECH-001]:** Ejecutar la sincronización rsync inicial de imágenes ISO de Fedora y el repositorio BaseOS de CentOS Stream 10.
|
||||
* *Bloqueado por:* Tarea 1.1.1.
|
||||
* *Desbloquea:* Tarea 1.1.3.
|
||||
* **Tarea 1.1.3 [TECH-001]:** Realizar la ingesta por referencia con ``ipfs add -r --nocopy`` y verificar la integridad de los CIDs generados.
|
||||
* *Bloqueado por:* Tarea 1.1.2.
|
||||
* *Desbloquea:* Tarea 1.2.1.
|
||||
|
||||
Hito 1.2: Configuración de DNSLink y Validación de Subrutas
|
||||
-----------------------------------------------------------
|
||||
Establecer la delegación DNS inmutable y verificar la granularidad del enjambre.
|
||||
|
||||
* **Tarea 1.2.1 [TECH-003]:** Crear el registro TXT ``_dnslink.mirrors.mx-os.mx`` con el CID raíz de la ingesta.
|
||||
* *Bloqueado por:* Tarea 1.1.3.
|
||||
* *Desbloquea:* Tarea 1.2.2.
|
||||
* **Tarea 1.2.2 [TECH-002]:** Validar la resolución y pineo recursivo exclusivo de subrutas (ejemplo: ``/ipns/mirrors.mx-os.mx/centos-stream/10-stream/BaseOS``) desde un nodo cliente externo.
|
||||
* *Bloqueado por:* Tarea 1.2.1.
|
||||
* *Desbloquea:* Hito 1.3.
|
||||
|
||||
Hito 1.3: Redacción del Post Inicial en el Sitio de MxOS
|
||||
--------------------------------------------------------
|
||||
Publicar el artículo de presentación en ``mx-os.mx`` y convocar a los primeros operadores guardianes.
|
||||
|
||||
* **Tarea 1.3.1 [FUNC-003]:** Redactar y publicar el artículo de lanzamiento en la web de MxOS enlazando al manual de operadores.
|
||||
* *Bloqueado por:* Tarea 1.2.2.
|
||||
* *Desbloquea:* Fase 2.
|
||||
42
docs/project/roadmaps/fase-2-tablero.rst
Normal file
42
docs/project/roadmaps/fase-2-tablero.rst
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
========================================
|
||||
Fase 2: Tablero de Métricas del Enjambre
|
||||
========================================
|
||||
|
||||
Objetivo
|
||||
========
|
||||
Desarrollar, empaquetar y desplegar el portal web público de estadísticas en tiempo real y mapa de nodos distribuido, publicado como software libre en el repositorio de Git de MxOS.
|
||||
|
||||
Trazabilidad: [FUNC-004], [TECH-004]
|
||||
|
||||
Hitos de la Fase
|
||||
================
|
||||
|
||||
Hito 2.1: Motor de Recolección Descentralizada
|
||||
----------------------------------------------
|
||||
Crear el servicio en segundo plano que sondea la DHT para identificar los nodos activos.
|
||||
|
||||
* **Tarea 2.1.1 [TECH-004]:** Implementar el colector pasivo que consulta periódicamente ``ipfs dht findprovs`` para los CIDs activos del espejo.
|
||||
* *Bloqueado por:* Fase 1 (Tarea 1.2.2).
|
||||
* *Desbloquea:* Tarea 2.1.2.
|
||||
* **Tarea 2.1.2 [TECH-004]:** Integrar la base de datos local MaxMind GeoLite2 para resolver la geolocalización aproximada (país y estado) sin almacenar direcciones IP completas.
|
||||
* *Bloqueado por:* Tarea 2.1.1.
|
||||
* *Desbloquea:* Hito 2.2.
|
||||
|
||||
Hito 2.2: Interfaz Web Pública Reactiva
|
||||
---------------------------------------
|
||||
Construir el portal web ligero de visualización para la comunidad.
|
||||
|
||||
* **Tarea 2.2.1 [FUNC-004]:** Diseñar la interfaz con mapa interactivo y contador de nodos activos.
|
||||
* *Bloqueado por:* Tarea 2.1.2.
|
||||
* *Desbloquea:* Tarea 2.2.2.
|
||||
* **Tarea 2.2.2 [FUNC-004]:** Integrar el tablero en la infraestructura web de MxOS bajo ``mirrors.mx-os.mx``.
|
||||
* *Bloqueado por:* Tarea 2.2.1.
|
||||
* *Desbloquea:* Hito 2.3.
|
||||
|
||||
Hito 2.3: Publicación del Repositorio de Código Abierto
|
||||
-------------------------------------------------------
|
||||
Liberar el código del tablero para auditoría comunitaria.
|
||||
|
||||
* **Tarea 2.3.1 [FUNC-004]:** Documentar las instrucciones de despliegue y publicar el repositorio bajo licencia libre en el Git de la Fundación MxOS.
|
||||
* *Bloqueado por:* Tarea 2.2.2.
|
||||
* *Desbloquea:* Fase 3.
|
||||
37
docs/project/roadmaps/fase-3-federacion-upstream.rst
Normal file
37
docs/project/roadmaps/fase-3-federacion-upstream.rst
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
=========================================
|
||||
Fase 3: Federación e Integración Upstream
|
||||
=========================================
|
||||
|
||||
Objetivo
|
||||
========
|
||||
Consolidar el puente HTTP para registrar a MxOS formalmente ante MirrorManager de Fedora, y presentar la propuesta técnica oficial ante las listas de desarrollo de Fedora y CentOS para fomentar la adopción nativa de IPFS.
|
||||
|
||||
Trazabilidad: [FUNC-005], [TECH-005]
|
||||
|
||||
Hitos de la Fase
|
||||
================
|
||||
|
||||
Hito 3.1: Despliegue del Puente Inverso HTTP y Validación MirrorManager
|
||||
-----------------------------------------------------------------------
|
||||
Habilitar la fachada web pública para clientes DNF tradicionales.
|
||||
|
||||
* **Tarea 3.1.1 [TECH-005]:** Configurar el proxy inverso (Caddy/Nginx) en ``mirrors.mx-os.mx`` apuntando al gateway local de Kubo.
|
||||
* *Bloqueado por:* Fase 1 (Tarea 1.2.2).
|
||||
* *Desbloquea:* Tarea 3.1.2.
|
||||
* **Tarea 3.1.2 [TECH-005]:** Implementar el protocolo de sondeo y verificación de sincronización requerido por MirrorManager (archivo ``report_mirror``).
|
||||
* *Bloqueado por:* Tarea 3.1.1.
|
||||
* *Desbloquea:* Tarea 3.1.3.
|
||||
* **Tarea 3.1.3 [FUNC-005]:** Dar de alta el espejo de MxOS en la base de datos de MirrorManager de Fedora como espejo oficial para México.
|
||||
* *Bloqueado por:* Tarea 3.1.2.
|
||||
* *Desbloquea:* Hito 3.2.
|
||||
|
||||
Hito 3.2: Propuesta Técnica Upstream (RFC)
|
||||
------------------------------------------
|
||||
Presentar la arquitectura a los equipos de infraestructura de Fedora y CentOS.
|
||||
|
||||
* **Tarea 3.2.1 [FUNC-005]:** Redactar el documento de propuesta (RFC) detallando los beneficios de ahorro de transferencia para upstream, mitigación de caídas y modelo de distribución comunitaria.
|
||||
* *Bloqueado por:* Tarea 3.1.3 y Fase 2 (Tarea 2.2.2).
|
||||
* *Desbloquea:* Tarea 3.2.2.
|
||||
* **Tarea 3.2.2 [FUNC-005]:** Publicar la propuesta en los foros de discusión de Fedora (categoría Infrastructure) y en la lista de correo ``centos-devel`` para abrir el diálogo sobre soporte nativo en DNF.
|
||||
* *Bloqueado por:* Tarea 3.2.1.
|
||||
* *Desbloquea:* Proyecto completado.
|
||||
Loading…
Reference in a new issue