Wiki personal con Gollum

Contenido

  1. Instalación de Gollum
  2. Uso de Gollum
  3. Sincronización con GitHub

Motivación

Una forma de organizar toda la información de los proyectos que llevo a cabo, es tener una wiki personal o cuaderno de bitácora. No quería montar un servidor específicamente para ello, con PHP, base de datos y toda la pesca, así que me he decantado por algo sencillo, rápido y fácil de usar.

En principio tenía en mente usar DokuWiki. No usa base de datos pero sí requiere PHP y algo de tiempo. Probablemente sea una buena idea migrar la wiki de nuestro entorno de trabajo de Mediawiki a DokuWiki. Quizá la gente se plantee usarla para documentar algo.

Me he decantado por Gollum. Es fácil de desplegar, se basa en Git y puedo sincronizar todo el contenido con GitHub. Además, no tengo que aprenderme sintaxis nueva, ya que se puede usar Markdown y trabajar directamente desde la terminal con Vim. Es del rollo Jekyll, como este blog. Y a mí Jekyll me flipa.

A continuación, instrucciones de como desplegar en Debian:

1. Instalación de Gollum

Gollum está escrito en Ruby, por lo que no es muy difícil instalarlo mediante gem install. Primero instalamos las dependencias:

~$ sudo apt-get install build-essential make ruby1.9.3 rubygems ruby-dev libicu-dev zlib1g-dev libicu-dev

Acto seguido, instalamos Gollum como tal. Lo instalo system-wide mediante sudo, pero como en toda instalación de paquetes Ruby o Python, es una mala práctica, en especial si no eres el único usuario del sistema. Queda pendiente revisar la instalación con RVM.

~$ sudo gem install gollum

En su momento me dio problemas al compilar Sinatra, que es un componente necesario para Gollum. Lo solucioné sin muchos miramientos con la siguiente línea sacada de este enlace:

~$ sudo gem install gollum --no-ri --no-rdoc

Como voy a escribir muchas líneas de comandos y código, quedaría bonito resaltar la sintaxis y seguir usando Markdown sin quebraderos de cabeza. Podemos usar la gema Rouge, o cualquier otra en otro lenguaje, como Pygments. Por sencillez y rapidez, voy a usar Rouge:

~$ sudo gem install rouge

2. Uso de Gollum

Lo más rápido es crear una carpeta en cualquier parte, situarse en ella y escribir:

~$ gollum

El servidor embebido Webrick arrancará y se podrá acceder a la wiki en http://localhost:4567 Los artículos de la wiki son ficheros Markdown en el directorio raíz, editables de la forma que a uno le salga de la p. Se puede cambiar la configuración del puerto de escucha, y un montón de opciones disponibles en la documentación. Se puede configurar como demonio y poner un balanceador o reverse proxy, aunque pudiendo ser servida desde GitHub quizá (y digo quizá), sea interesante mantenerlo en dicho servicio, siempre que no haya información sensible.

3. Sincronización con GitHub

Lo primero es crear un repositorio en GitHub. Convenientemente lo establezco privado. Un repositorio de dotfiles puede ser una buena opción.

Nos aseguramos de que en los ajustes del repositorio esté marcada la opción Wiki.

Vamos a la wiki del repositorio https://github.com/[usuario]/[nombreRepositorio]/wiki

Abajo a la derecha tenemos el enlace de la Wiki. Lo copiamos, y en cualquier terminal hacemos:

~$ git clone https://github.com/[usuario]/[nombreRepositorio].wiki.git

Por supuesto, hace falta tener el paquete git instalado. Yo además clono todo en ~/git

Nos situamos en la carpeta del repositorio clonado, y ahí ya podemos crear ficheros .md como posesos.

Para sincronizar, como yo uso SSH y par de claves asimétricas, primero he modificado el remote en:

~$ ~/git/[nombreRepositorio].wiki/.git/config

He modificado url por:

url = git@github.com:[usuario]/[nombreRepositorio].wiki.git

Acto seguido, lo de siempre:

~$ git add -A
~$ git commit -m "Mensaje"
~$ git push origin master

Recordemos hacer ~$ git pull en otras máquinas antes de proceder a editar.

Y con esto está todo. Como curiosidad, éste ha sido el primer contenido de mi nuevo cuaderno de bitácora.

Gollum