Added hint about re-writing except handlers
[ais.git] / INSTALL
1 This software is known to work on GNU/Debian 6.0 (squeeze).
2 It has been tested on architectures i386 and amd64.
3
4 = Required packages
5 ===================
6 libgps-dev
7 postgresql
8 python (>= 2.5)
9 python-serial
10 python-rrdtool
11 python-psycopg2
12 python-cracklib
13 libjs-jquery
14 apache2
15 libapache2-mod-python
16 python-django
17 xz-utils
18 python-daemon
19 ntp
20
21 python-decoratedstr (from nirgal.com)
22 python-htmlentities (from nirgal.com)
23
24
25 = File system setup
26 ===================
27 addgroup ais
28 mkdir --mode 2775 /var/lib/ais # mode g+ws
29 chown :ais /var/lib/ais
30 mkdir --mode 2775 /var/lib/ais/db
31 mkdir --mode 2775 /var/lib/ais/db/bydate
32 mkdir --mode 2775 /var/lib/ais/db/last
33 mkdir --mode 2775 /var/lib/ais/stats/
34 mkdir --mode 2775 /var/lib/ais/nmea/
35 mkdir --mode 2775 /var/lib/ais/areas/
36 mkdir --mode 2775 /var/lib/ais/cron/
37 mkdir --mode 2775 /var/lib/ais/cron/fleets/
38 mkdir --mode 2775 /var/lib/ais/jobs/
39 mkdir --mode 2775 /etc/ais
40 chown :ais /etc/ais
41 mkdir --mode 2775 /var/log/ais
42 chown :ais /var/log/ais
43 mkdir --mode 2775 /var/run/ais/
44 chown :ais /var/run/ais
45
46 = Postgres setup
47 ================
48 createuser --no-superuser --no-createdb --no-createrole ais
49 psql -c '\password ais'
50 createdb ais -O ais
51 psql ais -h localhost -U ais -f structure.sql
52
53 = Config
54 ========
55 create your file in /etc/ais/config
56 chmod 660 /etc/ais/config
57 see etc/config.SAMPLE
58
59 create your file in /etc/ais/database
60 chmod 660 /etc/ais/database
61 see etc/database.SAMPLE
62
63 = Python module setup
64 =====================
65 sudo deploy.sh
66 OR
67 ln -s /home/nirgal/kod/ais/bin /usr/lib/python2.6/ais
68 OR
69 ln -s /home/nirgal/kod/ais/bin /usr/share/pyshared/ais
70 find /usr/share/pyshared/ais/ -name *.py > /usr/share/python-support/ais.public
71 update-python-modules /usr/share/python-support/ais.public
72
73 = Real time acquisition
74 =======================
75 umask 002
76 python -m ais.inputs.run --db --background
77
78 = Job queue runner
79 ==================
80 umask 002
81 python -m ais.jobrunner --daemon
82
83 = Apache setup
84 ==============
85 adduser www-data ais
86
87 change apache umask in /etc/apache2/envvars from 022 to 002 so that new folders are group writables. If there is no such line, just add "umask 002" at the end of the file.
88
89 a2enmod ssl headers rewrite
90
91 = Kernel tuning
92 ===============
93
94 I suggest you add these lines to your /etc/sysctl.conf file:
95
96 # for postgres: a process may use up to 768MB of RAM
97 kernel.shmmax=805306368
98 # Udp recv queue max size. Note this is not the max size a default socket will
99 get. 256*1024-1 => doubled by kernel = 512KB
100 net.core.rmem_max=262143
101