Llevo un tiempo queriendo documentar mejor mis proyectos de infraestructura. Después de probar varias opciones, decidí montar un blog estático con Hugo. La combinación de Hugo + Blowfish resultó ser exactamente lo que necesitaba: rápido, limpio y fácil de mantener.
Por qué Hugo y Blowfish#
Hugo es un generador de sitios estáticos escrito en Go. Es increíblemente rápido y no requiere base de datos ni dependencias complicadas. Blowfish es un tema moderno, minimalista y bien documentado. Ambos se llevan bien en un servidor doméstico con recursos limitados.
Instalación en el servidor#
Lo primero fue instalar Hugo. En mi caso uso Debian en el servidor:
sudo apt-get update
sudo apt-get install hugoVerificar la instalación:
hugo versionCrear el sitio#
Inicialicé el proyecto en una carpeta dentro de /home:
hugo new site mi-blog
cd mi-blogAgregar el tema Blowfish#
Cloné el repositorio del tema en la carpeta de temas:
git clone https://github.com/nunocoracao/blowfish.git themes/blowfishLuego actualicé el archivo de configuración hugo.toml:
baseURL = "https://mi-dominio.local/"
languageCode = "es"
title = "Servicios Rogeliowar"
theme = "blowfish"
[params]
description = "Documentación técnica de infraestructura y servidores"
author = "Rogelio"
[menu]
[[menu.main]]
name = "Posts"
pageRef = "/posts"
weight = 10
[[menu.main]]
name = "Sobre mí"
pageRef = "/about"
weight = 20Crear contenido#
Los artículos van en la carpeta content/posts/. Cada uno es un archivo Markdown:
hugo new posts/mi-primer-articulo.mdEl archivo generado incluye frontmatter YAML listo para editar:
---
title: "Mi Primer Artículo"
date: 2026-04-28
draft: false
---
Contenido del artículo aquí...Servidor local para pruebas#
Antes de publicar, probé todo localmente:
hugo server -DEl sitio estará disponible en http://localhost:1313/. El parámetro -D incluye borradores.
Generar archivos estáticos#
Una vez listo, generé los archivos HTML finales:
hugoEsto crea la carpeta public/ con todo el contenido compilado.
Servir con Nginx#
Copié los archivos generados a la carpeta de Nginx:
sudo cp -r public/* /var/www/mi-blog/Configuré un bloque servidor en Nginx:
server {
listen 80;
server_name mi-dominio.local;
root /var/www/mi-blog;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}Recargué Nginx:
sudo systemctl reload nginxAutomatizar las compilaciones#
Para no compilar manualmente cada vez que escribo un artículo, creé un script simple:
#!/bin/bash
cd /home/usuario/mi-blog
hugo
sudo cp -r public/* /var/www/mi-blog/
echo "Blog actualizado"Lo guardaré como actualizar-blog.sh y le daré permisos de ejecución:
chmod +x actualizar-blog.shReflexión final#
Después de una semana usando esta configuración, puedo decir que es sólida. Hugo compila todo en menos de un segundo, Blowfish se ve profesional sin necesidad de customización extrema, y el servidor doméstico maneja todo sin problemas.
Lo mejor: no hay base de datos que respaldar, no hay plugins que romperse, no hay actualizaciones de seguridad cada semana. Solo archivos estáticos servidos por Nginx. Exactamente lo que buscaba.