MediaGoblin, la plataforma audiovisual libre

mediagoblin-avatar-150Todos usamos las redes sociales y accedemos a los contenidos audiovisuales de Internet, en las diversas opciones disponibles, ya sea para ver vídeos, escuchar música, estar al tanto de las noticias o conectarnos a las redes sociales. El problema en la mayoría de los casos es que estamos usando plataformas privativas que no respestan nuestras libertades, y que para más inri juegan con nuestra información privada.

GNU MediaGoblin es software libre, una alternativa descentralizada a productos como Youtube, Flickr o SoundCloud, que nos permitirá alojar y compartir multimedia digital.

En el presente artículo vamos a ver como instalarlo en un servidor con Debian 7 Wheezy, para así poder testearlo correctamente.

Requisitos

Necesitamos un servidor con un sistema operativo GNU/Linux, con los siguientes requisitos:

  • Python 2.6 o 2.7
  • python-lxml
  • git
  • SQLite o PostgreSQL
  • Python Imaging Library (PIL)
  • virtualenv

Instalación

Como usamos un sistema operativo Debian Wheezy, la orden de instalación del software necesario, es el siguiente:

  1. sudo apt-get install git-core python python-dev python-lxml 
  2. python-imaging python-virtualenv

Para el resto de distribuciones, como OpenSuse o CentOS:

  1. yum install python-paste-deploy python-paste-script 
  2.     git-core python python-devel python-lxml python-imaging 
  3.     python-virtualenv

Respecto a la base de datos

Por defecto GNU MediaGoblin utiliza SQLite, realmente para hacer éste artículo tenemos más que suficiente, pero vamos a ir más allá. En un entorno productivo es más lógico, si vamos a tener bastantes usuarios o visitas, usar PostgreSQL.

PostgreSQL, se trata de un Sistema de Gestión de Base de Datos, orientado a objetos y libre. Usa la licencia BSD

Instalamos PostgreSQL

  1. apt-get install postgresql postgresql-client python-psycopg2

Al instalar el software nos creará un usuario llamado postgres, con el cual tendremos que operar.

mediagoblin-usuario-postgresAhora crearemos un nuevo usuario y una nueva base de datos:

  1. sudo -u postgres createuser -A -D mediagoblin

Y la nueva base de datos:

  1. sudo -u postgres createdb -E UNICODE -O mediagoblin mediagoblin

En la siguiente imagen podemos ver la base de datos creada:

mediagoblin-lista-bbdd-postgresql

El usuario medigoblin

Por defecto GNU MediaGoblin no requiere un usuario con permisos especiales o elevador para ejecutarse. Por lo tanto sólo necesitamos un usuario del sistema sin privilegios especiales para ejecutar MediaGoblin.

Creamos un usuario llamado mediagoblin, del sistema, sin privilegios especiales:

  1. adduser --system mediagoblin

Como es un usuario del sistema y no tiene asignada ninguna contraseña, para acceder al usuario:

  1. sudo -u mediagoblin /bin/bash

Los comandos en la consola quedarían de la siguiente manera:

mediagoblin-user-mediagoblin

Creamos el directorio para MediaGoblin

Debemos crear un directorio de trabajo para MediaGoblin, el directorio se usará para el repositorio git, puedes usar el que a ti más te convenga.

  1. sudo mkdir -p /srv/mediagoblin.localhost.local && sudo chown -hR 
  2. mediagoblin: /srv/mediagoblin.localhost.local

Accedemos al directorio creado:

  1. cd /srv/mediagoblin.localhost.local

La imagen en la consola será parecida a la siguiente:

mediagoblin-directorio-gitAhora clonamos el repositorio mediante git

Git, es un software de control de versiones, creado por Linus Torvalds.
Git utiliza el puerto 9148, por lo tanto recuerda que debe de estar abierto en el firewall.
  1. git clone git://gitorious.org/mediagoblin/mediagoblin.git
  2. cd mediagoblin
  3. git submodule init && git submodule update

Y desempaquetamos virtualenv

virtualenv, es una herramienta de Python. Permite que se puedan instalar paquetes sin interferir entre si, ni con el sistema de paquetes de python.
  1. (virtualenv --python=python2 --system-site-packages . || virtualenv  
  2. --python=python2 .) && ./bin/python setup.py develop

Implementamos FastCGI

FastCGI, es un protocolo para interconectar programas interactivos con un servidor web.
  1. ./bin/easy_install flup

Parece ser que a veces la descarga no funciona bien, si eso pasa podemos probar con el siguiente comando:

  1. ./bin/easy_install https://pypi.python.org/pypi/flup/1.0.3.dev-20110405

Es recomendable que vayamos actualizando de git el producto:

  1. git submodule update && ./bin/python setup.py develop --upgrade 
  2.  && ./bin/gmg dbupdate

Implementar los servicios de MediaGoblin

Comenzamos a configurar el software. Copiaremos el archivo mediagoblin.ini ya que lo editaremos, para que no se pierde la configuración inicial.

  1. cp mediagoblin.ini mediagoblin_local.ini

Modicaremos email_sender_address para que nos envíe correo a nuestra dirección.

También hay que modificar direct_remote_path, base_dir, and base_url , para adaptar la configuración a nuestro servidor.

Configurar MediaGoblin en la base de datos PostgreSQL

Usamos PostgreSQL para MediaGlobin, en vez de SQLite, por lo tanto debemos moficiar el archivo mediagoblin_local.ini con la siguiente información:

  1. sql_engine = postgresql:///mediagoblin

Actualizaremos la base de datos con:

  1. ./bin/gmg dbupdate

Una vez finalizada ésta parte, probaremos que la configuración sea correcta, arrancando el servidor:

  1. ./lazyserver.sh --server-name=broadcast

Y ya podremos ver el resultado, si escribmos la IP de nuestro servidor seguido de dos puntos y el puerto 6543 o localhost:6543 si nos encontramos dentro del mismo servidor.

mediagoblin-captura-1Si vamos a iniciar sesión veremos la siguiente pantalla:

mediagoblin-iniciar-sesion¡IMPORTANTE!

Ahora mismo no tenemos ningún usuario creado, así que vamos a crearlos.

  1. cd /srv/mediagoblin.localhost.local/mediagoblin/
  2. ./bin/gmg adduser
./bin/gmg adduser

Y así ya podemos entrar en la interfaz de usuario:

mediagoblin-interfaz-usuarioA modo de prueba voy a añadir una colección:

mediagoblin-añadir-coleccionY nos quedará la siguiente ventana:

mediagoblin-añadir-coleccion-2Si le añadimos algo de «chicha» el aspecto es el siguiente:

mediagoblin-añadir-imagenesEspero que haya sido el artículo de vuestro interés. Creo que GNU Media Goblin tiene mucho futuro. Estoy pensando por ejemplo en centos educativos, donde los alumnos o profesores puedan añadir imagenes, documentos, vídeos. También en pequeñas editoriales o profesionales del arte.

En breve segunda parte, donde explicaremos como hacer que corra sobre Nginx o Apache, además de añadirle muchas cosas más para que soporte múltiples formatos de vídeo, archivos en formato pdf, etcétera.

Para más info MediaGoblin

Los siguientes capítulos:

Instalar Nginx y plugin de vídeo en MediaGoblin

Instalar plugin de audio y pdf en MediaGoblin

FREE AS IN FREEDOM