forked from nbproject/nbproject
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
78 lines (65 loc) · 4.23 KB
/
INSTALL
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
Installation Procedure:
1-Dependencies:
On a typical debian-like (ubuntu etc...) distribution, NB requires the following packages: (note that packages in square brackets are optional)
* python (>= 2.6)
* postgresql (>= 8.4)
* imagemagick
* [pdfedit]
* [unison]
* postgresql-plpython-8.4
* python-pypdf
* mupdf-tools (for pdfdraw)
* context (for rich, i.e. annotated pdf generation)
To make sure you have these installed, you can run the following command:
sudo make prereqs_common
Then, NB can be deplyed as a django app, which requires the following:
- For the apache django version:
* apache (>= 2)
* python-psycopg2
* django (>=1.3.1).
* libapache2-mod-wsgi
To make sure you have these installed, you can run the following command:
sudo make prereqs_django
* python-openid (>= 2.2.0)
* python-django-openid-auth (for OpenId authentication)
Note about django_openid_auth: We've tested w/ the version downloadable from launchpad.net (0.4), not w/ the ubuntu package:
- Download the tarball from https://launchpad.net/django-openid-auth
- Untar and sudo python setup.py install
* django_facebook_oath, for example from this github fork: https://github.com/sachazyto/django_facebook_oauth
- download the zip and unzip
- sudo python setup.py install
-> make django
-> edit values in apps/settings_credentials.py
-> sudo make create_dirs #create root folder and some folders below that for nb data
-> make django #make Apache aware of Django framework
-> make apidev #Since there is alot of js, this improves performance
-> [optional]: If you want to use different slave servers for different parts of the app (i.e. one for serving images, one for handling the rpc calls, and one for handling file uploads for instance), edit params in content/ui/admin/conf.js: Tell which server(s) the client should use to fetch various pieces data. If you're going to use just one server for the whole app, you can safely ignore this. Note that this is unrelated to whether or not you're using localhost as your databse server, but if you do use several server, make sure they all use the same databse, for consistency.
2- Database Initialization:
* Log in as someone who has postgres create role and create database privileges, such as postgres (one way is to do 'su' and then 'su postgres')
* createuser nbadmin -P #important to setup as superuser since only superusers can create a language (used for plpythonu)
* Back to the regular user:
* createdb -U nbadmin -h localhost notabene
* cd apps
* ./manage.py syncdb #to actually create the tables.
* You may also have to allow remote connections
* sudo nano /etc/postgresql/8.4/main/pg_hba.conf
o host notabene nbadmin 127.0.0.1/0 password
* sudo nano /etc/postgresql/8.4/main/
* if you make a mistake:
o dropdb -U nbadmin -h localhost notabene
o createdb -U nbadmin -h localhost notabene
... at this point you can try your installation using the Django debug server (but never use this in production...):
from the apps directory: ./manage.py runserver
in your browser: http//localhost:8000
3- Extra stuff
- To be able to genereate annotated pdfs: Configure tex so that it allows mpost commands: make sure that 'mpost' is in shell_escape_commands (cf /tex/texmf/texmg.cnf)
4- Crontab setup
A sample crontab as part of the 'make django'. You just need to add it to your crontab for it to take effect
5- Backup
- Database: use the pg_dump command, for instance, if NB was installed on host nb.csail.mit.edu, that the DB belonged to postgres used nbadmin, and that the DB was called notabene, you'd use the following:
-pg_dump -U nbadmin -h nb.csail.mit.edu -Fc notabene > nb.backup.YYYYMMDD
- uploaded PDF files: Use your favorite file backup technique (tar, rdiff-backup, unison etc...) to backup the directory:
"%s%s" % (settings.HTTPD_MEDIA,settings.REPOSITORY_DIR) (cf your settings.py files for actual values).
6- Notes:
Note that at the time of this writing, ubuntu 10.04 and Debian 5.0.7 still hasn't the Django 1.3.1 version so it can be installed from the the Django website
Questions: [email protected]