Cómo he creado mi sitio web con barf

2024–11–26

Hay muchas plataformas en las que puedes crear un sitio web o escribir un blog. Con algunas de ellas puedes crear tu sitio web desde cero, puedes usar un generador de sitios web estaticos o utilizar algunas de las (CMS) plataformas bastante famosas como Wordpress, Drupal, Chost, Medium como ejemplo, pero hay mas y la mayoria tiene coste bastante elevado segun cada criterio .

Personalmente siempre he preferido la opcion de usar un generator de sitios web estaticos. Durante los años he usado para la creacion de mi blog, algunos como Jekyll, Pelican, Nikola, Hugo incluso hasta Emacs + Org-mode y Org-Babel. Todas ellos son increibles, y si tienes conocimientos basicos puedes montar te un blog en 5 minutos, luego alojar en tu servidor o usar Github pages como ejemplo.

Recientemente he descubierto barf, un super sencillo generator de sitios web estaticos, que usa un unico archivo shell (sh), script con menos de < 170 líneas para hacer la magia. Asi que, decidi a usar lo para la creacion de mi web. Mas abajo quiero explicar como instalar y el funcionamiento.

Instalar las dependencias

sudo apt install cmake rsync

Compilar MultiMarkdown:

git clone https://github.com/fletcher/MultiMarkdown-6.git
cd MultiMarkdown-6
sudo cmake . -DCMAKE_BUILD_TYPE=Release
sudo make
sudo make install

Configuraciones

Editamos los archivos

No necesariamente, tambien podemos jugar con el archivo style.css ubicado en el directorio public/, para darle un aspecto unico al noestro sitio web.

Para saber mas, recomiendo leer el README

Crear noestro primer post

Todos las publicaciones tienen que ir al directorio posts/ .

Ejemplo:

cd ~/website/posts/
nano fisrt-post.md

Con el seguiente contenido:

# Primer post

2024-11-26

Hola mundo!

Recreamos el sitio web de nuevo para aplicar los cambios .

make build

Felicidades, ya hemos creado noestro blog y noestro primer post!

(Bonus) Alojando mi web

Requerimientos necesarios:

Creamos el directorio /var/www/ivaylokuzev.eu (el directorio root donde estaran ubicados los archivos estaticos para el publico).

sudo mkdir -p /var/www/ivaylokuzev.eu

Sincronizar el directorio build/ con el directorio root /var/www/ivaylokuzev.eu.

rsync -rv build/ /var/www/ivaylokuzev.eu

Configuramos el DNS

Tenemos que apuntar un dominio a la dirección IP, lo hice con la siguiente configuración:

Domain           Type  TTL      Target
ivaylokuzev.eu   A     default  123.456.78.90

Configurando Caddy

Vamos a configurar Caddy para que sirva esos archivos.

sudo nano /etc/caddy/Caddyfile

Copiamos lo seguiente:

ivaylokuzev.eu {
   tls email@example.com
   encode gzip zstd
   root * /var/www/ivaylokuzev.eu
   file_server
}

La línea tls habilita HTTPS automático. Caddy obtendrá y renovará los certificados SSL para usted con cero configuración o mantenimiento.

Reiniciamos caddy:

sudo systemctl restart caddy

Y asi de facil y gratis, mi sitio se servira de forma segura a traves de HTTPS!