-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
167 lines (127 loc) · 5.01 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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 12.04,
but other distributions should also work.
The instructions below are for Ubuntu 12.04.
All commans given expect that you are root.
To run pan.do/ra you need to install and setup:
python
postgres
nginx (or apache2)
additinal video packages
* Installing required packages
1) add pandora ppa to get all packages in the required version
apt-get install python-software-properties
add-apt-repository ppa:j/pandora
apt-get update
2) install all required packages
apt-get install bzr git subversion mercurial \
python-setuptools python-pip python-virtualenv ipython \
python-dev python-imaging python-numpy python-psycopg2 \
python-geoip python-html5lib python-lxml \
python-gst0.10 gstreamer0.10-plugins-good gstreamer0.10-plugins-bad \
postgresql postgresql-contrib rabbitmq-server \
ffmpeg2theora libav-tools libavcodec-extra-53 \
python-ox oxframe imagemagick
* 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
Important: "use_your_own" is a password and you have to use the same value here and below for BROKER_PASSWORD
rabbitmqctl add_user pandora use_your_own
rabbitmqctl add_vhost /pandora
rabbitmqctl set_permissions -p /pandora pandora ".*" ".*" ".*"
* Install Pan.do/ra
1) Get code from bazzar
cd /srv/
bzr branch http://code.0x2620.org/pandora pandora
cd pandora
virtualenv --system-site-packages .
./bin/pip install -r requirements.txt
cd static
bzr branch http://code.0x2620.org/oxjs
cd /srv
chown -R pandora.pandora pandora
2) create local_settings.py and config.jsonc
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_PASSWORD = "use_your_own"
#with apache x-sendfile or lighttpd set this to True
XSENDFILE = False
#with nginx X-Accel-Redirect set this to True
XACCELREDIRECT = True
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.
3) initialize database
su pandora
cd /srv/pandora/pandora
./manage.py syncdb --noinput
./manage.py migrate
./manage.py sqlfindindex
./manage.py sync_itemsort
./manage.py collectstatic -l --noinput
./manage.py update_static
./manage.py compile_pyc
4) install init scripts and start daemons
cp /srv/pandora/etc/init/*.conf /etc/init/
/srv/pandora/ctl start
5) 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
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 a pandora installation get the latest version from bzr by running
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 tables, use
su pandora
cd /srv/pandora/pandora
./manage.py sqldiff -a
to check if there are changes and
./manage.py sqldiff -a | ./manage.py dbshell
to apply them.
=== Development ===
in one terminal:
./manage.py runserver
and background task in another:
./manage.py celeryd -B -Q celery,default,encoding
now you can access your local pandora instace at http://127.0.0.1:8000/
we use virtual machines for development, you can get a vm from our site
or use the script in vm/build.sh to create one.