Arquitectura de Infraestructura de Vector Libre
| Estatus: | Documentación Técnica (Arquitectura Unificada) |
|---|---|
| Servidor Principal: | |
| web1.vectorlibre.org (IP: 162.213.38.154, Arch Linux/Nginx) | |
| Licencia: | Creative Commons Attribution-ShareAlike 4.0 International |
Resumen de Topología Unificada
La infraestructura completa de Vector Libre opera de forma consolidada en un único servidor soberano: web1.vectorlibre.org.
Tras la sustitución de Discourse por Apache Answer (un único binario compilado en Go con huella de memoria de ~45 MB), se eliminó la necesidad operativa de mantener dos servidores separados. Todo el ecosistema de servicios estáticos, dinámicos, almacenamiento local y delegación de identidad se ejecuta de forma host-nativa bajo Nginx y systemd en el mismo nodo.
[ CLOUDFLARE DNS/PROXY (SSL FLEXIBLE)/301 REDIRECTS ]
|
v
[ web1.vectorlibre.org (162.213.38.154 - Arch Linux/Nginx) ]
|
+---> vectorlibre.org (Landing Page) ----> Nginx estático (/srv/www/vectorlibre.org/default/public/)
+---> docs.vectorlibre.org (El Depósito) -> Nginx estático (/srv/www/vectorlibre.org/docs/public/)
+---> agora.vectorlibre.org (El Ágora) --> Nginx reverse proxy -> Apache Answer Go (127.0.0.1:9080)
+---> Matrix Identity (/.well-known) ----> Nginx JSON endpoints (server/client)
+---> Acceso SSH Administrativo --------> OpenSSH Daemon (puerto 22, DNS directo/gray cloud)
Especificación del Servidor Unificado (web1.vectorlibre.org)
- Plataforma y Sistema Operativo:
- Sistema Operativo: Arch Linux (Rolling release, kernel Linux 7.x).
- Servidor Web/Proxy Reverso: Nginx gestionando la totalidad de dominios, certificados y enrutamiento interno hacia servicios estáticos y dinámicos.
- Estándar de Rutas en Disco: Estructura canónica bajo /srv/www/vectorlibre.org/<subdominio>/.
- Componentes y Servicios Alojados:
- Landing Page (``vectorlibre.org``): Sitio estático compilado con Hugo + rst2html, servido desde /srv/www/vectorlibre.org/default/public/.
- El Depósito/Wiki (``docs.vectorlibre.org``): Base de conocimiento estática compilada con Hugo + rst2html, servida desde /srv/www/vectorlibre.org/docs/public/.
- El Ágora/Foro (``agora.vectorlibre.org``): Instancia host-nativa de Apache Answer ejecutada mediante servicio de systemd (answer.service) en el puerto local 127.0.0.1:9080 bajo el usuario del sistema answer.
- Base de Datos y Caché: PostgreSQL local (base de datos agora_production) y Valkey/Redis local (puerto 6379) para sesiones y caché en memoria.
- Almacenamiento de Adjuntos (Cloudflare R2): Descarga de avatares y multimedia hacia bucket S3-compatible (vectorlibre-agora) vía plugin storage-s3.
- Delegación Matrix: Archivos estáticos JSON servidos en /.well-known/matrix/server y /.well-known/matrix/client.
- Correo Saliente Transaccional: MTA en mail1.evalinux.net (puerto 465 SMTPS con TLS) para envío de activaciones y notificaciones de cuenta.
- Justificación de la Consolidación (KISS):
- Cero Sobrecalentamiento Operativo: Discourse exigía >1.5 GB de RAM, obligando a aislarlo en un servidor secundario (web1.evalinux.net). Apache Answer requiere menos de 50 MB de RAM.
- Simplicidad de Mantenimiento: Un único punto de configuración para Nginx, un único ciclo de respaldos para base de datos y archivos, y ausencia de latencia de red entre servicios.
- Identidad Soberana: Todo el tráfico administrativo y público se consolida bajo el hostname canónico del proyecto: web1.vectorlibre.org.
Estrategia de Dominios y Redirecciones
- Dominio Canónico: vectorlibre.org
- Redirecciones 301: vectorlibre.com, vectorlibre.net y vectorlibre.xyz redireccionan todo el tráfico web a vectorlibre.org mediante reglas dinámicas de Cloudflare.
- Acceso Administrativo Directo (SSH): Registro DNS tipo A directo y no proxificado (DNS only/gray cloud) para web1 en todos los dominios (web1.vectorlibre.org, web1.vectorlibre.com, web1.vectorlibre.net, web1.vectorlibre.xyz) apuntando a 162.213.38.154, permitiendo conexiones SSH administrativas inmediatas sin interferencia del proxy HTTP de Cloudflare.
- OpenNIC (Red Soberana): Dominio vector.libre registrado directamente en la red de servidores DNS de OpenNIC apuntando directamente a 162.213.38.154.