diff --git a/README b/README index fb610f3..0acb11b 100644 --- a/README +++ b/README @@ -1,56 +1,67 @@ -To setup a local instance of pandora: +pan.do/ra - open media archive + +== DEVELOPMENT == +To setup a development instance of pan.do/ra, +you need python, bazaar, pip and virtualenv and several other python modules: + +* Packages + apt-get install python-setuptools python-pip python-virtualenv ipython + apt-get install python-dev python-imaging python-numpy python-psycopg2 python-pip python-vir 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 -you need python, bazaar, pip and virtualenv: +* Additional pandora tools: + You need current versions of mkvtoolnix, oxframe, oxtimeline installed. + For Ubuntu we provide these packages in a ppa: + sudo apt-get install python-software-properties + sudo add-apt-repository ppa:j/pandora + sudo add-apt-repository ppa:gstreamer-developers/ppa + sudo apt-get update + sudo apt-get install oxframe oxtimeline mkvtoolnix - apt-get install python-setuptools bzr - easy_install pip - pip install virtualenv - apt-get install python-dev python-imaging python-numpy +* Database + We use postgresql but other databases might also work + (make sure you have the python bindings installed). -also it uses system python moduels, so make sure you have - ipython, dbmodule(psycopg2, python-mysqldb,..) -installed via apt-get/pip/easy_install in your system path. + create a postgresql database and adjust settings in local_settings.py + and run python manage.py syncdb to populate the database + you might want to load example configurations from fixutes. -Install rabbitmq and carrot: +* 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) + set VIDEO_H264 = True in local_settings.py - update BROKER_* settings in local_settings.py: +Running developer environment: + in one terminal: + python manage.py runserver + and in another one: + python manage.py celeryd -Q default,encoding -get current oxjs - cd static - bzr branch http://code.0x2620.org/oxjs -Database: - with postresql install python-psycopg2 +== DEPLOYMENT == +To run pan.do/ra in production, we use nginx, using apache2 is also possible. -Development: - we are using django, http://docs.djangoproject.com/en/dev/ - -Nginx setup: +* nginx setup sudo apt-get install nginx -or if you use apache: +* apache2 setup + sudo apt-get install apache2-mpm-prefork sudo apt-get install libapache2-mod-xsendfile -add pandora repository: - sudo apt-get install python-software-properties - sudo add-apt-repository ppa:j/pandora - sudo add-apt-repository ppa:gstreamer-developers/ppa - sudo apt-get update - sudo apt-get install oxtools mkvtoolnix - -H264: - install ffmpeg with x264 enabled, install qt-faststart from (ffmpeg/tools) - set VIDEO_H264 = True in local_settings.py - diff --git a/apache/vhost.conf.in b/apache/vhost.conf.in index b484bab..17f3f20 100644 --- a/apache/vhost.conf.in +++ b/apache/vhost.conf.in @@ -14,16 +14,18 @@ Alias /.bzr __PREFIX__/.bzr - Alias /static __PREFIX__/pandora/static - Alias /favicon.ico __PREFIX__/pandora/static/favicon.ico - Alias /media __PREFIX__/pandora/media + Alias /static __PREFIX__/static + Alias /favicon.ico __PREFIX__/static/favicon.ico + Alias /data __PREFIX__/data Alias /admin/media __PREFIX__/src/django/django/contrib/admin/media Alias /static/js/jquery.js __PREFIX__/src/django/django/contrib/admin/media/js/jquery.min.js - WSGIScriptAlias / __PREFIX__/wsgi/django.wsgi - - WSGIDaemonProcess pandora user=pandora group=pandora threads=25 python-path=__PREFIX__/lib/python2.6/site-packages/ - WSGIProcessGroup pandora + RewriteEngine on + RewriteCond %{REQUEST_URI} !^/.bzr + RewriteCond %{REQUEST_URI} !^/static + RewriteCond %{REQUEST_URI} !^/data + RewriteCond %{REQUEST_URI} !^/admin/media + RewriteRule ^/(.*) http://127.0.0.1:2620/$1 [P] ServerSignature Off diff --git a/nginx_gunicorn/pandora.conf b/etc/init/pandora.conf similarity index 78% rename from nginx_gunicorn/pandora.conf rename to etc/init/pandora.conf index f25ac10..c9df964 100644 --- a/nginx_gunicorn/pandora.conf +++ b/etc/init/pandora.conf @@ -13,5 +13,5 @@ env USER=pandora script cd $VENV/pandora -exec sudo -u $USER $VENV/bin/gunicorn_django -b 127.0.0.1:8083 -w5 $VENV/pandora/settings.py +exec sudo -u $USER $VENV/bin/gunicorn_django -b 127.0.0.1:2620 -w5 $VENV/pandora/settings.py end script diff --git a/nginx_gunicorn/vhost.in b/nginx/vhost.in similarity index 78% rename from nginx_gunicorn/vhost.in rename to nginx/vhost.in index 96db625..b5a02c2 100644 --- a/nginx_gunicorn/vhost.in +++ b/nginx/vhost.in @@ -10,16 +10,16 @@ server { autoindex on; } location /favicon.ico { - root __PREFIX__/pandora/static; + root __PREFIX__/static; } - location /static { - root __PREFIX__/pandora; + location /static/ { + root __PREFIX__; autoindex on; } - location /media/ { + location /data/ { internal; - root __PREFIX__/pandora/; + root __PREFIX__; } location / { @@ -28,7 +28,7 @@ server { proxy_redirect off; if (!-f $request_filename) { - proxy_pass http://127.0.0.1:8083; + proxy_pass http://127.0.0.1:2620; break; } } @@ -44,6 +44,6 @@ server { # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location /50x.html { - root __PREFIX__/pandora/static; + root __PREFIX__/static; } } diff --git a/pandora/templates/index.html b/pandora/templates/index.html index 8309bd9..e4d212f 100644 --- a/pandora/templates/index.html +++ b/pandora/templates/index.html @@ -11,7 +11,8 @@ if(typeof(console)=='undefined') { console.log = function() {}; } - + +