pan.do/ra is a free, open source media archive platform. https://pan.do/ra
Find a file
2019-07-06 18:12:32 +02:00
docker add docker build 2019-07-06 18:12:32 +02:00
etc remove unused robots.txt 2017-12-15 13:12:49 +00:00
pandora clip sort 2019-06-28 17:26:28 +02:00
scripts use .editorconfig 2018-06-19 08:33:26 +02:00
static remove unused resize code 2019-06-27 22:44:34 +02:00
vm buster release 2019-07-06 14:46:24 +02:00
.dockerignore add docker build 2019-07-06 18:12:32 +02:00
.editorconfig use .editorconfig 2018-06-19 08:33:26 +02:00
.gitignore add docker build 2019-07-06 18:12:32 +02:00
COPYING add gpl3 2012-11-26 17:46:14 +01:00
ctl use git branches to track stable release 2019-04-30 12:47:45 +02:00
docker-compose.yml add docker build 2019-07-06 18:12:32 +02:00
Dockerfile add docker build 2019-07-06 18:12:32 +02:00
README.md suggest to install stable by default 2019-04-30 12:55:09 +02:00
requirements.txt update youtube-dl 2019-04-30 15:04:39 +02:00
update.py filter some output of migrate 2019-06-24 13:42:22 +02:00

pan.do/ra - open media archive

for more information on pan.do/ra visit our website at https://pan.do/ra

SETUP

pan.do/ra is known to work with Ubuntu 16.04, but other distributions might also work.

The instructions below are for Ubuntu 16.04. All command given expect that you are root.

To run pan.do/ra you need to install and setup:

python 3.5
postgres
nginx (or apache2)
additional video packages

Installing required packages

  1. add pandora ppa to get all packages in the required version

    apt-get install software-properties-common add-apt-repository ppa:j/pandora apt-get update

  2. install all required packages

    apt-get install git
    python3-setuptools python3-pip python3-venv ipython3
    python3-dev python3-pil python3-numpy python3-psycopg2
    python3-pyinotify python3-simplejson
    python3-geoip python3-html5lib python3-lxml
    postgresql postgresql-contrib rabbitmq-server
    poppler-utils mkvtoolnix gpac imagemagick
    youtube-dl python3-ox oxframe ffmpeg

Prepare Environment

  1. add pandora user and set permissions

    adduser pandora --disabled-login --disabled-password

  2. Setup Database

    su postgres createuser pandora createdb -T template0 --locale=C --encoding=UTF8 -O pandora pandora echo "CREATE EXTENSION pg_trgm;" | psql pandora exit

  3. Setup RabbitMQ

You have to use the same password here and in BROKER_URL in local_settings.py

rabbitmqctl add_user pandora PASSWORD
rabbitmqctl add_vhost /pandora
rabbitmqctl set_permissions -p /pandora pandora ".*" ".*" ".*"

Install Pan.do/ra

  1. Get code from git

    cd /srv/ git clone -b stable https://git.0x2620.org/pandora.git pandora cd pandora ./ctl init

    cd /srv chown -R pandora.pandora pandora

  2. create local_settings.py and config.jsonc

2.1) create file /srv/pandora/pandora/local_settings.py with the following content:

DATABASES = {
    'default': {
        'NAME': 'pandora',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'pandora',
        'PASSWORD': '',
    }
}
DB_GIN_TRGM = True
BROKER_URL = 'amqp://pandora:PASSWORD@localhost:5672//pandora'

#with apache x-sendfile or lighttpd set this to True
XSENDFILE = False

#with nginx X-Accel-Redirect set this to True
XACCELREDIRECT = True

2.2) create config.jsonc

config.jsonc holds the configuration for your site. To start you can copy /srv/pandora/pandora/config.pandora.jsonc to /srv/pandora/pandora/config.jsonc but have a look at https://wiki.0x2620.org/wiki/pandora/configuration and config.0xdb.jsonc config.padma.jsonc for configuration options.

  1. initialize database

    su pandora cd /srv/pandora/pandora ./manage.py init_db

  2. install init scripts and start daemons

    /srv/pandora/ctl install /srv/pandora/ctl start

  3. Setup Webserver a) nginx (recommended)

    apt-get install nginx cp /srv/pandora/etc/nginx/pandora /etc/nginx/sites-available/pandora cd /etc/nginx/sites-enabled ln -s ../sites-available/pandora

    #read comments in /etc/nginx/sites-available/pandora for setting #your hostname and other required settings #make sure XACCELREDIRECT = True in /srv/pandora/pandora/local_settings.py

    service nginx reload

b) apache2 (if you need it for other sites on the same server)

apt-get install apache2-mpm-prefork libapache2-mod-xsendfile
a2enmod xsendfile
a2enmod proxy_http
a2enmod proxy_wstunnel
cp /srv/pandora/etc/apache2/pandora.conf /etc/apache2/sites-available/pandora.conf
a2ensite pandora

#read comments in /etc/apache2/sites-available/pandora.conf for setting
#your hostname and other required settings
#make sure XSENDFILE = True in /srv/pandora/pandora/local_settings.py

service apache2 reload

Now you can open pandora in your browser, the first user to sign up will become admin.

Updating

To update pandora to the latest version run this:

su pandora
cd /srv/pandora
./update.py

this will update pandora/oxjs/python-ox and list possible upgrades to the db

to update your database run:

su pandora
cd /srv/pandora
./update.py db

Development

in one terminal:

cd /srv/pandora/pandora
./manage.py runserver 2620

and background task in another:

cd /srv/pandora/pandora
./manage.py celeryd -B -Q celery,default,encoding -l INFO

now you can access your local pandora instace at http://127.0.0.1:8000/

we use virtual machines/lxc for development and deployment, more info on that in vm/LXC_README.md