Autoalojamiento de un Blog en 2025
Tabla de contenido
Introducción
Zola es un generador de sitios estáticos escrito en Rust que es rápido, simple y fácil de usar. Este blog está construido con Zola y alojado en un servidor Linux con Caddy como servidor web.
Esta guía te guiará a través de la configuración de Zola y Caddy para autoalojar tu sitio web de manera eficiente.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un servidor Linux – Estoy usando Pop!_OS 24.04 LTS alpha.
- Un nombre de dominio apuntando a tu servidor – Yo uso Cloudflare.
- Un proxy inverso – Caddy cumple esta función.
- Una plataforma CI/CD – Uso Gitea para despliegues automatizados.
- Una herramienta de análisis enfocada en la privacidad – Uso Plausible.
Instalación
Paso 1: Instalar Zola
Como no hay un paquete precompilado para Pop!_OS 24.04 LTS alpha, instalaremos Zola desde el código fuente:
Paso 2: Crear un Nuevo Sitio
Inicializa un nuevo sitio con Zola:
Paso 3: Instalar un Tema de Zola
Uso el tema tabi. Para instalarlo:
Paso 4: Configurar Zola y Tabi
Zola usa un archivo config.toml
para la configuración. Aquí hay un ejemplo:
= "https://www.aldofunes.com"
= "Aldo Funes"
= "Ser humano en formación"
= "es"
= "tabi"
= false
= true
= "Aldo Funes"
= [{ = "tags" }, { = "categories" }]
= true
[]
= true
= "css"
= [{ = "dracula", = "css/syntax.css" }]
= true
= "external"
= true
= true
[]
= "elasticlunr_json"
[]
= ["css/syntax.css"]
= "https://gitea.funes.me/aldo/blog"
= "gitea"
= true
= true
= true
= "👾"
Paso 5: Agregar Contenido
Zola usa Markdown para la creación de contenido, y su estructura de directorios es intuitiva. Usa tu editor de texto favorito para empezar a escribir artículos.
Paso 6: Desplegar tu Sitio
Para servir el sitio con Caddy, coloca los archivos generados en /www/blog
y configura Caddy con el siguiente Caddyfile
:
aldofunes.com, www.aldofunes.com {
tls {
dns cloudflare __CLOUDFLARE_TOKEN__
resolvers 1.1.1.1
}
root * /www/blog
file_server
handle_errors {
rewrite * /{err.status_code}.html
file_server
}
header Cache-Control max-age=3600
header /static/* Cache-Control max-age=31536000
}
Paso 7 (Opcional): Configurar un CDN
Usar Cloudflare como CDN mejora el rendimiento y la seguridad. Configura un registro DNS y habilita la protección de Cloudflare para aprovechar la caché y la protección contra DDoS.
Paso 8: Automatizar el Despliegue con CI/CD
Para automatizar los despliegues con Gitea, crea .gitea/workflows/deploy.yaml
:
name: Deploy
on:
push:
branches:
- main
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: true
- name: Check 🔍
uses: zolacti/on@check
with:
drafts: true
- name: Build 🛠
uses: zolacti/on@build
- name: Deploy 🚀
uses: appleboy/[email protected]
with:
host: ${{ vars.ATLAS_SSH_HOST }}
username: ${{ vars.ATLAS_SSH_USERNAME }}
key: ${{ secrets.ATLAS_SSH_KEY }}
port: ${{ vars.ATLAS_SSH_PORT }}
source: public
target: /www/blog
rm: true
overwrite: true
strip_components: 1
Configura estas variables de entorno en Gitea Actions:
ATLAS_SSH_HOST
ATLAS_SSH_USERNAME
ATLAS_SSH_PORT
Y agrega la clave secreta:
ATLAS_SSH_KEY
Estas credenciales permiten un despliegue seguro mediante SCP.
Conclusión
Ahora tienes un sitio web completamente autoalojado con Zola y Caddy. Con CI/CD automatizado mediante Gitea, puedes concentrarte en escribir contenido mientras Gitea maneja el despliegue. ¡Disfruta de tu blog autoalojado!