La arquitectura de mi blog en 2026: infraestructura para una sola persona
Desde que soy pequeño me ha gustado experimentar con los servidores y la infraestructura. Esto me ha llevado a gestionar sitios web con mucho tráfico en producción, usando herramientas como kubernetes en proveedores cloud como AWS. El potencial de esto es enorme, pero también lo es el mantenimiento. Si estás pensando en montar algo para tí sólo, te cuento cómo gestiono mis servicios personales.
Un VPS en Hetzner
En el pasado he probado muchas herramientas como los servicios serverless tipo Vercel o Cloudflare Pages. que están muy bien, pero personalmente prefiero la tranquilidad de no tener sorpresas en la factura en caso de que hubiese un pico de tráfico.
Por tanto, desde hace un tiempo tengo un VPS en Hetzner que realmente tiene poco mantenimiento y que ahora, puedes pedirle a un agente de IA como Codex o Claude, que te haga una revisión de la seguridad de este. Gestionar un VPS no es tan difícil si te aseguras de garantizar una seguridad mínima.
Del tráfico web al contenedor
Para servir tráfico web, utilizo Cloudflare ya que su producto me parece de los más interesantes y me gusta como lo están evolucionando así como la comodidad que ofrece.
Dentro del VPS tengo un reverse proxy (inicialmente Nginx, ahora Caddy) que pasa el tráfico a contenedores docker gestionados por un pequeño servicio.
El build se hace con GitHub Actions y aprovecho el registry de contenedores (ghcr) para subir la imagen al registry. Una vez termina, lanzo un webhook al VPS, donde el servicio anterior está escuchando para rotar la imagen.
flowchart LR
visitante[Visitante] --> cloudflare[Cloudflare]
subgraph ci[CI]
actions[GitHub Actions] --> ghcr[GHCR]
end
subgraph vps[VPS]
caddy[Caddy] --> contenedores[Contenedores Docker]
servicio[Servicio de despliegue] --> contenedores
end
push[Git push] --> actions
cloudflare --> caddy
actions -->|Webhook| servicio
ghcr --> servicio
Debo reconocer que la parte del CI es algo que me gustaría replantear porque no termina de encajarme, pero al menos tengo una solución estable y que me gusta, junto con un panel donde puedo hacer seguimiento cuando hago un git push.
El blog y el homelab
El blog lo he desarrollado con Astro, ya que en general Javascript (o Typescript) me parece muy cómodo para desarrollo web, pero no quería tener React, y la verdad es que muy contento. La poca interactividad que tiene un sitio web, con un poco de javascript vanilla es más que suficiente.
Finalmente utilizo tailscale para conectar mi homelab, mi vps, y mis dispositivos y poder interactuar en remoto, algo que veremos en otro post.
Conclusión
De lo que me he dado cuenta estos años es que la infra no es algo estático, es algo que evoluciona contigo a lo largo del tiempo y que es bueno probar y experimentar hasta que encuentres lo que mejor se adapta a tí.