Blog estático con Hugo y tema Blowfish en un servidor doméstico

Etiquetas:

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 hugo

Verificar la instalación:

hugo version

Crear el sitio

Inicialicé el proyecto en una carpeta dentro de /home:

hugo new site mi-blog
cd mi-blog

Agregar el tema Blowfish

Cloné el repositorio del tema en la carpeta de temas:

git clone https://github.com/nunocoracao/blowfish.git themes/blowfish

Luego 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 = 20

Crear contenido

Los artículos van en la carpeta content/posts/. Cada uno es un archivo Markdown:

hugo new posts/mi-primer-articulo.md

El 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 -D

El 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:

hugo

Esto 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 nginx

Automatizar 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.sh

Reflexió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.

«`


Equipamiento recomendado

Enlaces de afiliado. Sin coste extra para ti.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *