First version that works with Debian 9.. kind of
[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 #NNNlibgps-dev, postgresql, python (>= 2.5), python-serial, python-rrdtool, python-psycopg2, python3-cracklib, libjs-jquery, apache2, libapache2-mod-python, python-django, xz-utils, python-daemon, ntp, python-daemon
7  
8 libgps-dev postgresql python3-serial python3-psycopg2 python3-cracklib libjs-jquery apache2 xz-utils python3-certbot-apache libapache2-mod-wsgi-py3 python3-django python3-daemon ntp
9 #NNN libgps-dev
10 #NNN python3-rrdtool
11
12 python3-decoratedstr (from nirgal.com) 
13 python-htmlentities (from nirgal.com)
14
15
16 = File system setup
17 ===================
18 Disk will contain a lot of small files. It is recommanded to use "-T small" when creating the filesystem.
19 addgroup ais
20 mkdir --mode 2775 /var/lib/ais # mode g+ws
21 chown :ais /var/lib/ais
22 mkdir --mode 2775 /var/lib/ais/db
23 mkdir --mode 2775 /var/lib/ais/db/bydate
24 mkdir --mode 2775 /var/lib/ais/db/last
25 mkdir --mode 2775 /var/lib/ais/stats/
26 mkdir --mode 2775 /var/lib/ais/nmea/
27 mkdir --mode 2775 /var/lib/ais/areas/
28 mkdir --mode 2775 /var/lib/ais/cron/
29 mkdir --mode 2775 /var/lib/ais/cron/fleets/
30 mkdir --mode 2775 /var/lib/ais/jobs/
31 mkdir --mode 2775 /etc/ais
32 chown :ais /etc/ais
33 mkdir --mode 2775 /var/log/ais
34 chown :ais /var/log/ais
35
36 = Postgres setup
37 ================
38 createuser --no-superuser --no-createdb --no-createrole ais
39 psql -c '\password ais'
40 createdb ais -O ais
41 psql ais -h localhost -U ais -f structure.sql
42
43 = Config
44 ========
45 create your file in /etc/ais/config
46 chmod 660 /etc/ais/config
47 see etc/config.SAMPLE
48
49 create your file in /etc/ais/database
50 chmod 660 /etc/ais/database
51 see etc/database.SAMPLE
52
53 = Python module setup
54 =====================
55 ln -s /home/nirgal/ais/bin /usr/lib/python3/dist-packages/ais
56
57 = Kernel tuning
58 ===============
59
60 I suggest you add these lines to your /etc/sysctl.conf file:
61
62 # for postgres: a process may use up to 768MB of RAM
63 kernel.shmmax=805306368
64 # Udp recv queue max size. Note this is not the max size a default socket will
65 get. 256*1024-1 => doubled by kernel = 512KB
66 net.core.rmem_max=262143
67
68 = Autostart
69 ===========
70 ln -s /etc/ais/init.sh /etc/init.d/ais
71 update-rc.d ais defaults
72
73 = Apache setup
74 ==============
75 ln -s /etc/ais/httpd.conf /etc/apache2/site-available/ais.conf
76
77 mkdir /usr/lib/ais
78 ln -s /home/nirgal/ais/www_templates /usr/share/ais/
79 ln -s /home/nirgal/ais/kmz_icons /usr/share/ais/
80
81 ln -s /home/nirgal/ais/www /var/www/ais
82
83 adduser www-data ais
84
85 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.
86
87 a2enmod ssl headers rewrite
88 a2ensite ais
89
90
91 certbot certonly --authenticator webroot --installer apache --webroot-path /var/www/ais/ --cert-name ais -d ais.nirgal.com --register-unsafely-without-email