pan.do/ra is a free, open source media archive platform.
Find a file
2011-11-22 22:58:02 +01:00
etc update vm build. use title for new lists not id, also make first user admin 2011-11-08 18:05:26 +01:00
pandora no manual data if item has imdb id 2011-11-22 17:49:38 +01:00
scripts update README, move scripts to toplevel 2011-11-03 13:32:23 +01:00
static moving files also needs reload 2011-11-22 22:58:02 +01:00
vm update vm build. use title for new lists not id, also make first user admin 2011-11-08 18:05:26 +01:00
.bzrignore init.js->pandora.js 2011-11-03 11:50:05 +01:00
README update README, move scripts to toplevel 2011-11-03 13:32:23 +01:00
reload.sh add pid to upstart 2011-10-19 16:27:38 +02:00
requirements.txt dont cache log calls 2011-11-04 12:25:10 +01:00
update.sh show sqldiff 2011-11-04 12:29:00 +01:00

pan.do/ra - open media archive

== SETUP ==
To setup pan.do/ra, you need
python, bazaar, pip and virtualenv and several other python modules:

* Packages
    apt-get install bzr git subversion mercurial \
            python-setuptools python-pip python-virtualenv ipython \
            python-dev python-imaging python-numpy python-psycopg2

* Pan.do/ra
Get code from bazzar
    bzr branch http://code.0x2620.org/pandora pandora
    cd pandora
    virtualenv .
    pip -E . install -r requirements.txt

    cd static
    bzr branch http://code.0x2620.org/oxjs

create settings_local.py and create site.jsonc
(use settings.py / 0xdb.jsonc / padma.jsonc as example)
create db
    
    ./manage.py syncdb

create / update static files
    
    ./manage.py update_static 
    ./manage.py compile_pyc


* Additional pandora tools:
  You need current versions of oxframe, oxtimeline installed.
  For Ubuntu we provide these packages in a ppa:
    apt-get install python-software-properties
    add-apt-repository ppa:j/pandora
    apt-get update
    apt-get install oxframe oxtimeline 

* Database
  We use postgresql but other databases might also work
  (make sure you have the python bindings installed).

  create a postgresql database and adjust settings in local_settings.py
  and run ./manage.py syncdb to populate the database.

    createdb  -T template0 --locale=C --encoding=UTF8 -O pandora pandora

  (setting locale to C is required to fix a bug in sort if set to UTF8)

* RabbitMQ
  For background tasks we use RabbitMQ, to install rabbitmq:
    sudo apt-get install rabbitmq-server

  and create permissions according to BROKER_* in local_settings.py i.e.:

    sudo rabbitmqctl add_user pandora box
    sudo rabbitmqctl add_vhost /pandora
    sudo rabbitmqctl set_permissions -p /pandora pandora ".*" ".*" ".*"

* H264
    to support h264 videos, install ffmpeg with x264 enabled,
    install qt-faststart from (ffmpeg/tools)
    to enable add "mp4" to video.formats in your config.jsonc

Running developer environment:
  in one terminal:
    ./manage.py runserver
  and in another one:
    ./manage.py celeryd -Q default,encoding -B

=== Updating ===
To update a pandora installation get the latest version from bzr by running
    ./update.sh
this will pull pandora/oxjs/python-ox and list possible upgrades to the db

to update your database tables, use
   ./manage.py sqldiff -a
to check if there are changes and
   ./manage.py sqldiff -a | ./manage.py dbshell
to apply them.

== DEPLOYMENT ==
* Install upstart scripts
check etc/init for upstart scripts, adjust path and user and put into /etc/init

To run pan.do/ra in production, we use nginx, using apache2 is also possible.

* nginx setup
    sudo apt-get install nginx 

  add this to local_settings.py:
    XACCELREDIRECT = True

  setup nginx according to etc/nginx/vhost.in

* apache2 setup
    apt-get install apache2-mpm-prefork libapache2-mod-xsendfile

  add this to local_settings.py:
    XSENDFILE = True

  setup apache according to etc/apache2/vhost.in