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:
1 2 | sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv |
Para el resto de distribuciones, como OpenSuse o CentOS:
1 2 3 | 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
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.
Ahora 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:
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:
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 2 | sudo mkdir -p /srv/mediagoblin.localhost.local && sudo chown -hR 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:
Ahora clonamos el repositorio mediante git
1 2 3 | git clone git://gitorious.org/mediagoblin/mediagoblin.git cd mediagoblin git submodule init && git submodule update |
Y desempaquetamos virtualenv
1 2 | (virtualenv --python=python2 --system-site-packages . || virtualenv --python=python2 .) && ./bin/python setup.py develop |
Implementamos FastCGI
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 2 | 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.
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.
Si vamos a iniciar sesión veremos la siguiente pantalla:
¡IMPORTANTE!
Ahora mismo no tenemos ningún usuario creado, así que vamos a crearlos.
1 2 | 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