Difference between revisions of "MediaGoblin"

From Libopedia
Jump to navigation Jump to search
Line 68: Line 68:
 
DocumentRoot /var/www/
 
DocumentRoot /var/www/
  
# Serve static files via alias
+
# Serve files via alias
 
Alias /static/ /opt/mediagoblin/static/
 
Alias /static/ /opt/mediagoblin/static/
 +
Alias /media/ /home/media/
  
# Rewrite all URLs to fcgi, except for static urls
+
# Rewrite all URLs to fcgi, except for media and static urls
 
RewriteEngine On
 
RewriteEngine On
RewriteRule ^(static)($|/) - [L]
+
RewriteRule ^(media|static)($|/) - [L]
 
RewriteCond %{REQUEST_FILENAME} !-f
 
RewriteCond %{REQUEST_FILENAME} !-f
 
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]
 
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]
  
# Allow access to static directories
+
# Allow access to media and static directories
 +
<Directory /home/media>
 +
  Order allow,deny
 +
  Allow from all
 +
</Directory>
 +
 
 
<Directory /opt/mediagoblin/static>
 
<Directory /opt/mediagoblin/static>
 
   Order allow,deny
 
   Order allow,deny

Revision as of 02:42, 9 August 2014

This wiki page details the installation of MediaGoblin on an Ubuntu 12.04 server. The installation is suited to small deployments.

Install an Ubuntu 12.04 Server

Install a normal 12.04 LTS 64 bit server. During the installation when prompted select to install the OpenSSH server

Make sure that you prepare enough disk space for all the media you will be hosting.

Also prepare for a hostname/domainname/URL to use, for example at Stellenbosch University Library we chose http://media.lib.sun.ac.za.

Also ensure the server has access to the internet in order to be able download software during the installation.

After the Ubuntu server is installed, remotely login using SSH and become the root user, using the "sudo" method by typing sudo -i after logging in..

Step 1 - Pre-requisites

  • Build dependencies
apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv
  • Web server dependencies
apt-get install apache2-mpm-worker libapache2-mod-fastcgi apache2-suexec
a2enmod suexec fastcgi rewrite
  • Mail server dependencies
apt-get install postfix mailutils

Setup postfix as a smarthost relay and use your institutional outgoing email server as the smarthost relay.

  • Create the media user:
adduser media

Follow the console instructions

  • Prepare folders
mkdir /home/media/queue
mkdir /home/media/public
chmod 0777 -R /home/media

Step 2 - Install MediaGoblin

  • Type the following:
 cd /opt
 git clone git://gitorious.org/mediagoblin/mediagoblin.git
 cd mediagoblin
 git submodule init && git submodule update
  • And set up the in-package virtualenv:
(virtualenv --python=python2 --system-site-packages . || virtualenv --python=python22 .) && ./bin/python setup.py develop
  • Assuming you are going to deploy with FastCGI, you should also install flup:
./bin/easy_install flup

Step 3 - Deploy MediaGoblin

  • Create local config file:
cd /opt/mediagoblin
cp mediagoblin.ini mediagoblin_local.ini
  • Set mediagoblin operating parameters.
nano mediagoblin_local.ini

Under [mediagoblin]

  1. Set direct_remote_path = /static/
  2. Set email_sender_address to the address you wish to be used as the sender for system-generated emails
  3. Set email_debug_mode = false

Under [storage:queuestore]

  1. Set base_dir = /home/media/queue

Under [storage:publicstore]

  1. Set base_dir = /home/media/public
  2. Set base_url = /media/

Save the file and exit.

  • Setup web server default host:
cd /etc/apache2/sites-available
rm default
nano default

Copy and paste the following into the editor:

<VirtualHost *:80>
ServerName media.lib.sun.ac.za
ServerAdmin scholar@sun.ac.za
DocumentRoot /var/www/

# Serve files via alias
Alias /static/ /opt/mediagoblin/static/
Alias /media/ /home/media/

# Rewrite all URLs to fcgi, except for media and static urls
RewriteEngine On
RewriteRule ^(media|static)($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]

# Allow access to media and static directories
<Directory /home/media>
  Order allow,deny
  Allow from all
</Directory>

<Directory /opt/mediagoblin/static>
  Order allow,deny
  Allow from all
</Directory>

# Connect to fcgi server
FastCGIExternalServer /var/www/mg.fcgi -host 127.0.0.1:26543
</VirtualHost>

Save and exit the file.

  • Populate the DB:
cd /opt/mediagoblin
./bin/gmg dbupdate
  • Restart the web server.
service apache2 restart

Step 4 - Launch the media service

Type the following to test:

cd /opt/mediagoblin/
./lazystarter.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543

Press CTL+c to end the process.

If it works then add the following to the /etc/rc.local file using the "nano" editor:

cd /opt/mediagoblin/
./lazystarter.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543

See example below.


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

cd /opt/mediagoblin
./lazystarter.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543

exit 0

Last Step

Reboot the server.

reboot

And then connect to it via a client web browser.

http://media.lib.sun.ac.za

Enable Media Types

The default installation above only allows viewing of image files.

To enable an additional media type, add the the media type under the [plugins] section of your /opt/mediagoblin/mediagoblin_local.ini file.

Type the following as the root user.

nano /opt/mediagoblin/mediagoblin_local.ini

Copy and paste the following into the file underneath the [plugins] section.

 [[mediagoblin.media_types.video]]
 [[mediagoblin.media_types.audio]]
 [[mediagoblin.media_types.pdf]]
 [[mediagoblin.media_types.raw_image]]
 [[mediagoblin.media_types.ascii]]
 [[mediagoblin.media_types.stl]]

Save the file.

Install dependant open source software.

apt-get install poppler-utils unoconv python-pyexiv2 libsndfile1-dev python-gst0.10 python-numpy python-scipy
apt-get install gstreamer0.10-plugins-{base,bad,good,ugly} gstreamer0.10-ffmpeg blender

Install dependant python software.

cd /opt/mediagoblin
./bin/pip install scikits.audiolab
./bin/easy_install chardet

Install pdf.js dependencies

git submodule init
git submodule update

Update the database.

./bin/gmg dbupdate

If there are no errors, then reboot.

References