MediaGoblin, la plataforma audiovisual libre
Todos 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:
sudo apt-get install git-core python python-dev python-lxml
python-imaging python-virtualenv
Para el resto de distribuciones, como OpenSuse o CentOS:
yum install python-paste-deploy python-paste-script
git-core python python-devel python-lxml python-imaging
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.
Instalamos PostgreSQL
apt-get install postgresql postgresql-client python-psycopg2
Al instalar el software nos creará un usuario llamado postgres, con el cual tendremos que operar.
Ahora crearemos un nuevo usuario y una nueva base de datos:
sudo -u postgres createuser -A -D mediagoblin
Y la nueva base de datos:
sudo -u postgres createdb -E UNICODE -O mediagoblin mediagoblin
En la siguiente imagen podemos ver la base de datos creada:
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:
adduser --system mediagoblin
Como es un usuario del sistema y no tiene asignada ninguna contraseña, para acceder al usuario:
sudo -u mediagoblin /bin/bash
Los comandos en la consola quedarían de la siguiente manera:
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.
sudo mkdir -p /srv/mediagoblin.localhost.local && sudo chown -hR
mediagoblin: /srv/mediagoblin.localhost.local
Accedemos al directorio creado:
cd /srv/mediagoblin.localhost.local
La imagen en la consola será parecida a la siguiente:
Ahora clonamos el repositorio mediante git
git clone git://gitorious.org/mediagoblin/mediagoblin.git
cd mediagoblin
git submodule init && git submodule update
Y desempaquetamos virtualenv
(virtualenv --python=python2 --system-site-packages . || virtualenv
--python=python2 .) && ./bin/python setup.py develop
Implementamos FastCGI
./bin/easy_install flup
Parece ser que a veces la descarga no funciona bien, si eso pasa podemos probar con el siguiente comando:
./bin/easy_install https://pypi.python.org/pypi/flup/1.0.3.dev-20110405
Es recomendable que vayamos actualizando de git el producto:
git submodule update && ./bin/python setup.py develop --upgrade
&& ./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.
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:
sql_engine = postgresql:///mediagoblin
Actualizaremos la base de datos con:
./bin/gmg dbupdate
Una vez finalizada ésta parte, probaremos que la configuración sea correcta, arrancando el servidor:
./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.
Si vamos a iniciar sesión veremos la siguiente pantalla:
¡IMPORTANTE!
Ahora mismo no tenemos ningún usuario creado, así que vamos a crearlos.
cd /srv/mediagoblin.localhost.local/mediagoblin/
./bin/gmg adduser
Y así ya podemos entrar en la interfaz de usuario:
A modo de prueba voy a añadir una colección:
Y nos quedará la siguiente ventana:
Si le añadimos algo de «chicha» el aspecto es el siguiente:
Espero 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