Proyecto de trabajo

Plataforma de despliegue de landing pages

Un push a una landing, y la página en vivo sin reiniciar nada

La infraestructura que publica, vigila y mantiene más de 100 landing pages de varios clientes en un solo VPS, sin reiniciar nada en cada despliegue.

Recreación de una ejecución del workflow de despliegue de una landing, con instalación, build, verificación, compresión, SSH con la llave del host fijada, rsync en dos fases y la comprobación de que el sitio público sirve el commit. (abrir la imagen en tamaño completo)
Recreación con datos ficticios, porque el sistema real es privado.
Recreación del issue del monitor diario, con una landing con Google Tag Manager duplicado y otra con un despliegue pendiente, qué revisar en cada caso y los comentarios de días anteriores. (abrir la imagen en tamaño completo)
Recreación con datos ficticios, porque el sistema real es privado.

De qué se trata

La agencia publica las landing pages de sus clientes bajo el dominio de cada uno, una ruta por programa o campaña. Esta plataforma es todo lo que hay entre un push a una landing y la página en vivo, del build y la publicación al servidor y la vigilancia.

Las landings se editan con un constructor visual o a mano, y los dos caminos terminan en el mismo workflow.

Qué hace

  • Cada landing llama a un workflow reutilizable de GitHub Actions que instala, compila, verifica la ruta base, comprime los archivos con gzip, genera WebP de las imágenes y sube el resultado por rsync en dos fases.
  • El despliegue entra con un usuario sin shell, encerrado con rrsync y con la huella del servidor fijada, y el Nginx de cada cliente monta sus landings en solo lectura.
  • Un solo bloque de Nginx sirve cualquier landing registrada, con assets inmutables por un año, HTML sin caché, WebP por negociación y las etiquetas de Google Tag Manager inyectadas en el servidor.
  • Scripts que aplican un mismo cambio a los 106 repositorios (workflow de despliegue, política de Dependabot, archivos de entorno) y generan la configuración de Nginx de cada cliente.
  • Un monitor diario revisa el estado HTTP, el HTML, que haya una sola etiqueta de Google Tag Manager, la compresión, la caché, los despliegues pendientes y los certificados, y abre un issue si algo falla; Lighthouse mide las landings principales cada semana.
  • Marcadores en el commit para subir sin desplegar y rutas de reversión documentadas para una landing, para el Nginx de un cliente y para la historia de los repositorios.

Cómo funciona

Del push a la página en vivo

Cada cambio va del repositorio a GitHub Actions y de ahí al VPS; la fila de abajo vigila todo.

  1. Repositorios

    • 106 landing pages en React y Vite
    • Cambios desde un constructor visual o a mano
    • Un workflow mínimo en cada landing
  2. GitHub Actions

    • Instalación, build y ruta base
    • gzip y WebP
    • rsync en dos fases con usuario restringido
  3. VPS

    • Un Nginx por cliente en Docker
    • Landings montadas en solo lectura
    • Google Tag Manager inyectado en el servidor

Vigilancia

  • Monitor diario que abre issues
  • Lighthouse semanal
  • Rutas de reversión documentadas

Decisiones y sus costos

  1. Publicar archivos en vez de imágenes

    Si cada landing viajara dentro de una imagen, publicarla obligaría a reconstruirla y a reiniciar el contenedor.

  2. Un usuario de despliegue encerrado

    La credencial con la que CI despliega se podría filtrar.

  3. El HTML nunca se precomprime

    Google Tag Manager se inyecta en el servidor con sub_filter, que no funciona sobre archivos ya comprimidos.

Stack

Elige una tecnología para ver qué proyectos la usan.