Voy a intentar explicar de la forma más clara posible cómo instalar y configurar Octopress, un framework Open Source para construir blogs basados en el proyecto Jekyll.

Es un software muy potente que permite crear blogs totalmente estáticos, es decir, una vez configurado, basta con ejecutar un comando para que se nos genere en un directorio toda la escructura de archivos y directorios en texto plano (archivos HTML, JS y CSS) que necesitaremos para nuestro blog.

Estos archivos estáticos estarían listos para servir a través de un servidor web cualquiera, sin necesidad de bases de datos, scripts o lenguajes de programación en el lado del servidor, lo que permite ahorrar muchos recursos, tiempo y por supuesto hardware. De hecho, una vez configurado, bastaría con ejecutar otro comando para que Octopress subiera éstos archivos a nuestro servidor de forma totalmente automática (deploy).

Además, se basa en el todopoderoso Git (y más concretamente en GitHub Pages) para gestionar los posts, las revisiones de los posts, etc.

Está hecho en Ruby, y utiliza la sintaxis de Markdown para formatear el texto de los posts, por lo que no estaría de más que le echaras un ojo a ésto último si no lo conocías ya (no tiene ningun misterio, y muchas de sus expresiones seguro que ya las habias usado antes en emails y cosas así).

Para ver ejemplos de blogs que utilicen éste framework no hace falta que vayais muy lejos, ya que tanto éste blog que estais leyendo ahora mismo como la propia web de Octopress estan hechas con él.

Pensé en escribir éste artículo fundamentalmente para que me sirviera a mi mismo como chuleta sobre la instalación y configuración del blog, pero si aparte de eso le resulta de utilidad a alguien, mejor que mejor...

Empecemos!

Instalación

Todos los pasos explicados en éste artículo estan probados en Debian (concretamente en Debian testing Jessie) pero deberían ser igualmente válidos (con alguna pequeña variación) en cualquier distribución de Linux...

Lo primero que necesitamos es tener instalado Ruby en nuestra máquina local. NO en el servidor, sino en la máquina desde la que vayamos a trabajar, ya que recordemos que Octopress generará archivos HTML en texto plano que podrán ser visualizados a través de cualquier servidor web...

Para instalar Ruby, los que disfrutamos de Debian únicamente tenemos que hacer:

$ sudo apt-get install ruby

La gente de Octopress recomienda utilizar la versión 1.9.3 o superior, por lo que si la versión de tu distribución es inferior, tendrás que instalarlo manualmente (y pensar en cambiar de distribución xDDD). Para comprobar la versión de Ruby que tenemos instalada (en mi caso era 2.1.2p95) basta con ejecutar:

$ ruby --version

Con Ruby instalado, ya solo nos falta Git para tener todo lo necesario para empezar:

$ sudo apt-get install git

Ahora, clonamos el repositorio de Octopress de Github en el directorio donde vayamos a trabajar:

$ git clone git://github.com/imathis/octopress.git octopress-test
$ cd octopress-test

Ya tenemos el código de Octopress, pero para poder ejecutarlo necesitamos instalar algunas dependencias. Lo primero que necesitamos es instalar Bundler, que por lo poco que he investigado (reconozco que de Ruby no tengo ni idea) es una herramienta fundamental para gestionar las dependencias en los proyectos de Ruby.

En esos proyectos, el archivo Gemfile es el que contiene el listado de dependencias y versiones necesarias, y bundlerse encarga de instalar todo ésto de forma cómoda y muy rápida. Está disponible como una gema de Ruby, por lo que para instalarlo solo necesitamos ejecutar:

$ sudo gem install bundler

Nota:: Pese a que en muchos otros manuales que he visto se suele ejecutar éste paso como usuario normal (sin sudo), yo prefiero hacerlo así para que ésta gema esté disponible para todos los usuarios de la máquina, no solo para quien ejecuta la instalación. Pero si prefieres no hacerlo así, y que únicamente tu usuario pueda usar bundler, basta con ejecutar el comando sin sudo.

Finalmente, instalamos las dependencias especificadas en el Gemfile de Octopress:

$ bundle install

Si hemos llegado aquí sin ningun susto, ya tenemos listo nuestro Octopress recién sacado del horno, por lo que ahora vamos a configurarlo un poco.

Configuración

La configuración inicial es muy sencilla. Aunque ya tenemos listo el código de Octopress para construir el blog por defecto, hay algunas cosas que podemos debemos configurar.

Todas las opciones de configuración se encuentran en el archivo _config.yml. La mayoría de sus directivas son autoexplicativas, por lo que te será facil saber para qué son únicamente viendo su nombre. Nosotros para éste ejemplo vamos a modificar la URL del sitio que estamos contruyendo, el título, subtítulo, autor y poco más.

Editamos el archivo y especificamos las configuraciones que necesitemos:

url: https://pornohardware.com
title: pornoHARDWARE.com
subtitle: La culpa es de los padres, que las visten como a Cylons.
author: BhEaN
simple_search: http://www.bing.es
description: Blog personal sobre programacion, administracion de sistemas, redes...
date_format: "%A, %d de %B de %Y, a las %H:%M"

Hay muchas otras cosas en el archivo _config.yml que seguramente quieras configurar. Es un archivo bastante autoexplicativo, por lo que échale un vistazo a las demás opciones de configuración y prácticamente por el nombre de cada una sabrás para qué se utilizan.

Ahora que ya hemos configurado las típicas opciones iniciales (título del sitio, autor, etc) ya podemos construir los archivos de nuestro blog.

Si vienes (como fué mi caso) de compilar con el comando make, de configurar dichas compilaciones con makefiles y todas esas cosas... seguro que nada de ésto te pillará por sorpresa, ya que que en Ruby es muy parecido, solo que se usa el comando rake compilar, y rakefile's para configurar dichas compilaciones.

Hay 4 tareas básicas en el rakefile de nuestro proyecto:

  1. rake install: Éste comando instalará el tema por defecto de Octopress. Si en lugar de llamarlo directamente le pasamos el nombre de otro tema, lo instalará en lugar de instalar el tema por defecto (por ejemplo: rake install['bhean_2014'] instalará el tema que se encuentre en el directorio .themes/bhean_2014
  2. rake generate: Con éste comando se reconstruirán los archivos del blog, los artículos que escribamos, las paginas, etc. Es el comando que hay que ejecutar cada vez que modifiquemos algun artículo o escribamos un nuevo post para que dichos cambios se vean reflejados en nuestro blog.
  3. rake preview: Cuando ejecutamos éste comando, se levantará un servidor web en un puerto local (por defecto en el 4000) para que podamos probar cómo va a quedar el blog una vez generado. Cada vez que hagamos un cambio, deberemos ejecutarl para ver cómo va a quedar dicho cambio antes de subirlo a produccion.
  4. rake deploy: Una vez que todos los cambios que hayamos hechos esten a nuestro gusto, con éste comando podremos subir los archivos que del blog se nos han generado a nuestro servidor de producción. Para configurar ésto, debes editar el propio archivo rakefile.

Por lo tanto, vamos ejecutamos los comandos necesarios para ver nuestro aún vacío blog:

$ rake install['bhean_2014']
## Copying classic theme into ./source and ./sass
mkdir -p source
cp -r .themes/classic/source/. source
mkdir -p sass
cp -r .themes/classic/sass/. sass
mkdir -p source/_posts
mkdir -p public

$ rake generate
## Generating Site with Jekyll
unchanged sass/screen.scss
Configuration from /home/bhean/src/octopress/_config.yml
Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/
Building site: source -> public
Running the classifier... this could take a while.
....
Successfully generated site: source -> public

$ rake preview
Starting to watch source with Jekyll and Compass. Starting Rack on port 4000
[2014-06-24 00:39:24] INFO  WEBrick 1.3.1
[2014-06-24 00:39:24] INFO  ruby 2.1.2 (2014-05-08) [x86_64-linux-gnu]
[2014-06-24 00:39:24] INFO  WEBrick::HTTPServer#start: pid=12732 port=4000
Configuration from /home/bhean/src/octopress/_config.yml
Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/
Auto-regenerating enabled: source -> public
[2014-06-24 00:39:24] regeneration: 169 files changed
Running the classifier... this could take a while.
.>>> Compass is polling for changes. Press Ctrl-C to Stop.
..

Solo teneis que conectaros desde un navegador a la IP de la máquina donde hayais ejecutado el rake preview por el puerto 4000, y ya podreis ver vuestro nuevo blog:

Espero que éste pequeño tutorial os haya servido de ayuda. En próximos artículos explicaré cómo personaliza aún más el blog y su contenido, cómo escribir y formatear correctamente los artículos del blog, cómo configurar una serie de plugins muy útiles que existen para su uso libre gracias a la comunidad del software libre, etc, etc.

Pero por ahora ya está bien, que menudo ladrillo me salido para ser el primer artículo serio del blog xDDD.

Saludos!