Un blog no necesita WordPress, base de datos ni un panel pesado. Con Jekyll escribes en Markdown, se genera HTML estático y un servidor web común lo entrega en milisegundos. Esta es la configuración que usamos para este mismo sitio, sobre un VPS con Ubuntu 22.04.
Por qué un sitio estático
- Seguridad: no hay base de datos ni código ejecutándose en el servidor, así que la superficie de ataque es mínima.
- Velocidad: Nginx entrega archivos ya generados.
- Costo: un VPS pequeño es suficiente.
- Control: todo el contenido son archivos de texto que puedes versionar con Git.
1. Instalar Ruby y Jekyll
sudo apt update
sudo apt install -y ruby-full build-essential zlib1g-dev
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
Configurar GEM_HOME evita instalar gemas con sudo, que es una fuente común de problemas de permisos.
2. Crear el sitio y generarlo
jekyll new conectasolutions
cd conectasolutions
bundle exec jekyll build
El resultado queda en la carpeta _site/. Esa es la carpeta que Nginx va a servir.
3. Servirlo con Nginx
sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/conectasolutions
server {
listen 80;
server_name tudominio.com www.tudominio.com;
root /home/usuario/conectasolutions/_site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
sudo ln -s /etc/nginx/sites-available/conectasolutions /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Antes de continuar, apunta el registro A de tu dominio a la IP del VPS.
4. Activar HTTPS con Certbot
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
Certbot modifica la configuración de Nginx y programa la renovación automática. Puedes comprobarla con sudo certbot renew --dry-run.
Errores que nos encontramos
Permisos en _site/. Si Nginx responde 403, casi siempre es que no puede entrar a tu carpeta personal. Se resuelve con chmod o+x /home/usuario o moviendo el sitio a /var/www/.
Un 404 donde esperabas una página. En Jekyll cada página necesita su permalink en el encabezado. Si el archivo se llama libros.md pero el menú apunta a /libros-recursos/, el enlace falla. Revisa que ambos coincidan.
Fechas con \n literal. Un formato de fecha mal escrito en la plantilla mostraba 8 May\n2025. Se corrige usando un formato limpio como {{ post.date | date: "%-d %b %Y" }}.
El cambio no se ve. Después de editar, ejecuta bundle exec jekyll build y recarga con Ctrl + F5.
Flujo de trabajo diario
- Creas un archivo
AAAA-MM-DD-titulo.mden_posts/. - Ejecutas
bundle exec jekyll build. - Nginx publica el cambio de inmediato.
Si no quieres instalar nada en tu equipo, conéctate al VPS desde VS Code con la extensión Remote SSH y edita los archivos directamente en el servidor.