Infotics era un proyecto de tener un blog sobre noticias, eventos, comentarios o información en general relacionada con las tecnologías de la información y la comunicación, con una perspectiva crítica, cooperativa, emancipadora y libre.

Desde que abandonamos la estructura de Cuarto Canal, también decidí convertir a infotics.es en mi página principal y pasar el blog a blog.infotics.es.

Iniciamos ahora una nueva etapa en un servidor propio, con un conjunto de tecnologías que hemos ido aprendiendo a lo largo de estos años y que pretenden conseguir más autonomía y facilitar la vida de quien/es producen estos contenidos.

Aprovecho para hacer un repaso de la historia tecnológica de infotics.es

Wordpress

En su inicio, infotics.es fue un proyecto de blog Wordpress del sistema Wordpress multiblog del proyecto cuartocanal.es alojado en los servidores de xsto.info. Allí compartía vida con otros dos blogs: el propio de Cuarto Canal y sportics.es, con información de deportes y tecnología.

Wordpress permite hacer fácil la vida a quien solo quiere escribir y a quien se preocupa del aspecto del blog, ya que cuenta con muchísimos temas que se pueden instalar libremente. También cuenta con muchos plugins, aunque no todos son fáciles ni van a facilitar la vida. En cualquier caso, es una buena opción para quien no se preocupa de la tecnología sino de escribir.

Es cierto que es Software Libre, pero por mi experiencia, la mayoría de lxs usuarixs con lxs que he tratado lo utilizan porque es gratuito y porque es fácil.

Dado que utilizo Emacs como procesador de textos y org-mode como sintaxis, un reto de aquella época fue conectar orgmode con wordpress, y esto fue posible gracias a encontrarme que alguien como Gabriel Saldaña ya lo estaba haciendo con org2blog de Punchagan. Con un poco de magia, sus tutoriales y también el de vxlabs, completé la configuración para escribir un artículo en org-mode y pasárselo al blog. Resultaba sencillísimo. De hecho, podías configurarlo para varios blogs, por lo que en el momento de publicación eligieras el blog del listado que hubieras creado.

Si alguien quiere seguir por ahí, también le recomiendo la lectura de esta otra entrada donde explica como hacer que org2blog soporte lisp, elisp y lua.

Actualmente todavía lo utilizo en otros blogs en los que participo, como son el de Open Knowledge España o Sanda Sanshou Madrid.

Egelesta.net

Egelesta.net es la cara visible de un servidor que “mantenemos” Pebelino y yo para todo lo que se nos ocurra. Decir mantenemos es mucho decir, ya que el peso, el curro y los medios los da fundamentalmente él, y desde aquí quiero expresar no solo el agradecimiento sino también el gusto de trabajar con él.

Precisamente para experimentar con esos servidores donde trabajábamos con Wordpress, montamos uno en egelesta.net, y de hecho la web principal es el propio servidor multiblog de wordpress.

Instalar infotics.es en uno de esos blogs de wordpress habría sido el siguiente paso si no fuera porque aparecieron otras tecnologías que parecía que respondían mejor a mis intereses.

No os preocupéis que luego volveremos aquí, que es nuestra casa.

Github

Gracias al impulso que desde el grupo de periodismo de datos de Medialab estábamos dando a GitHub; gracias a algunas conversaciones con colegas y amigxs (Carlos, Pablo…) sobre el uso de generadores estáticos de contenido SSG (Static Site Generators) como entorno más apropiado para blogs y páginas personales que los gestores de contenido CMS (Content Management Systems); gracias a la búsqueda de herramientas más configurables, adaptables y que permitan autonomía tecnológica… abracé los súperpoderes de Github.

Esta etapa está explicada en esta entrada y en su repositorio, aunque no lo cuentan todo, quizás lo más obvio. Github es una web que permite, con una cuenta, utilizar un servidor git (el propio Github), crear repositorios públicos y por tanto tener una visibilidad web de todo lo que quieras poner ahí.

La web de GitHub está hecha con Jekyll (su código está disponible en Github) y quizás por eso, Github sirve cualquier repositorio con Jekyll, de tal forma que se convierte Github en un servidor web para Jekyll.

Jekyll sirve desde servidor web todo lo que pongas en la rama gh-pages. Lo hace desde el dominio github.io, creando un subdominio con tu nombre de cuenta y una carpeta con el nombre del repositorio. Siguiendo esta estructura, el blog en jekyll de Github estaría en https://flowsta.github.io/blogs.infotics.es.

Aunque hasta ahora no lo había comentado, notad que además Github sirve por https, lo cual es una ventaja para la certificación de la autoría de los contenidos.

Si tienes un dominio o un subdominio, también es posible utilizar el repo con el Jekyll de Github. Para ello hay que hacer dos cosas:

  1. Crear un registro A, ANAME o ALIAS en el dominio que apunte a las IP de Github, 192.30.252.153 o 192.168.252.154
  2. Crear un archivo de texto con nombre CNAME con la información del dominio o subdominio. En este caso, con blog.infotics.es

La parte negativa de esto es que Github no te permite subir tu propio certificado, pongamos que creado con Let’s Encrypt, por lo que hay que pensar en otras alternativas, mejor si son posibles en tu propio servidor.

Gitlab

Una posibilidad en este punto era migrar el blog a Gitlab, que es como Github pero permite bastante más personalización, además de poder crearse con numerosos SSG como Middleman, Hugo, Hexo o Branch, entre otros.

Sin embargo, en el camino de esta migración, que no era todo lo fácil que pareciera por esa personalización que permite Gitlab, surgió otra ruta.

Servidor propio

En algún momento anterior, había decidido contratar un servidor OVH) con Debian y gestionar el dominio infotics.es. Eso permitía una mínima base para ciertas cosas, como algunas de las que había hecho hasta ahora. Este servidor también lo gestionamos los mismos colegas que egelesta.net.

Ahí está alojada la web de infotics.es, donde Pebelino trabajó el certificado con Let’s Encrypt (pronto os contaremos cómo).

En ese sentido, decidí que era hora también de que esa misma máquina sirviera blog.infotics.es. Para ello, seguí la guía de Digital Ocean para montar un blog con Jekyll y git.

Instalar Jekyll

En nuestro portátil u ordenador local, vamos a instalar Jekyll. Primero descargamos ruby:

curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0

Luego instalamos la gema de jekyll:

gem install jekyll

Nos situamos en el directorio elegido:

cd /ruta/directorio

Y creamos un blog en Jekyll:

jekyll new miblog

Nos situamos en el directorio del blog que Jekyll ha creado y lanzamos el servidor de Jekyll:

cd awesomeblog
jekyll serve

Instalar git

En el servidor, vamos a utilizar git para sincronizar nuestros datos:

apt-get install git-core

Y repetimos la instalación de Jekyll:

curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
gem install jekyll

Necesitamos un repositorio git desnudo:

cd ~/
mkdir repos && cd repos
mkdir awesomeblog.git && cd awesomeblog.git
git init --bare

Y conectamos git con el servidor:

git remote set-url origin cuenta@servidor.net:ruta-relativa-usuarix-proyecto.git

Ahora viene la magia

En local, crearemos un archivo post-receive donde contaremos el gancho o hook. Lo que hace git es correr los comandos que situemos allí cada vez que se produzca una actualización del repositorio.

En este caso, .git/hooks/post-receive construye Jekyll en el directorio seleccionado con las siguientes variables:

  • GIT_REPO es la ruta al repo git desnudo creado en el paso anterior.
  • TMP_GIT_CLONE es donde el script comprobará los archivos y construirá el blog antes de copiarlos a la ruta donde el servidor web los sirve.
  • PUBLIC_WWW es la ruta donde el sitio reside y es servido por el servidor web.

Por tanto:

#!/bin/bash -l
GIT_REPO=$HOME/ruta/directorio
TMP_GIT_CLONE=$HOME/ruta/tmp
PUBLIC_WWW=/var/www/ruta

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

Jekyll al día

No te olvides de tener todas las extensiones -gemas- instaladas, incluida la propia Jekyll:

  • jekyll
  • jekyll-sitemap
  • jekyll-redirect-from
  • jemoji
  • jekyll-mentions

Para ello:

gem install jekyll

Permisos

Tampoco olvides configurar apropiadamente los permisos de los directorios donde trabajas ni la propiedad de los mismos.

Por último

Esto puede evolucionar, esperemos que a mejor. Lo importante, ahora, es que toda esta información sea tan útil a otras personas como lo ha sido para mí.

El flujo de escritura sigue siendo el que relataba en el github de blogs.infotics.es

  1. Para no perder las buenas costumbres, los artículos seguirán siendo escritos en orgmode.
  2. Luego los exporto a Markdown
  3. Los copio a la carpeta `posts`.
  4. Incluyo la cabecera en yaml.
  5. Actualizo el repositorio git
  6. Se publican en http://blog.infotics.es

ToDo

Algunas tareas pendientes son:

  • Mejorar el flujo de publicación desde la escritura en org-mode, y la exportación a markdown
  • Recuperar las imágenes que tiene el blog de infotics en cuartocanal.
  • Traducir todo el blog al castellano.
  • Cambiarle el tema.
  • Crear copia automática en Github