]> wagnertech.de Git - projects.git/blob - debian/mdjango.postinst
mdjango improvements
[projects.git] / debian / mdjango.postinst
1 #!/bin/bash
2 set -e
3
4 # apache2 settings
5 a2ensite mysite
6 systemctl reload apache2
7 # set locale for UTF-8 handling
8 sed -i "s!^.*\. /etc/default/locale!\. /etc/default/locale!" /etc/apache2/envvars
9
10 # check addition to settings
11 if ! grep "### MDJANGO ###" /opt/mysite/mysite/settings.py >/dev/null
12 then
13         echo "add mdjango settings to settings.py"
14         echo "*** Attention ALLOWED_HOSTS is set to '*' ***"
15         cat << EOF >> /opt/mysite/mysite/settings.py
16 ### MDJANGO ###
17 DATABASES = {
18     'default': {
19         'ENGINE': 'django.db.backends.postgresql',
20         'NAME': 'mdjango',
21         'USER': 'mdjango',
22         'PASSWORD': 'MdjangO',
23         'HOST': 'localhost',
24         'PORT': '5432',
25     },
26 }
27 STATIC_ROOT = '/var/mysite/static'
28 STATIC_URL = '/mdjangostat/'
29 DEBUG = False
30 ALLOWED_HOSTS = ["*"]
31 ### MDJANGO-END ###
32 EOF
33 fi
34
35 # change admin to mdjangoad
36 sed -i "s/path('admin/path('mdjangoad/" /opt/mysite/mysite/settings.py
37
38
39 # check existence of /var/mysite
40 if [ ! -d /var/mysite ]
41 then
42         mkdir -p /var/mysite
43         chmod 777 /var/mysite
44         
45 fi
46
47 # collect statics
48 /opt/mysite/manage.py collectstatic --noinput
49
50 # check postgres user
51 if ! su postgres -c "psql -c '\du'" | grep mdjango >/dev/null
52 then
53         echo "No user named 'mdjango' found. It is now created."
54         su postgres -c "createuser -ds mdjango ; psql -c \"ALTER USER mdjango WITH PASSWORD 'MdjangO';\""
55 fi
56 main=$(ls -d /etc/postgresql/*/main/)
57 if ! grep mdjango $main/pg_hba.conf >/dev/null
58 then
59         echo "adding mdjango user access to $main/pg_hba.conf"
60         awk 'BEGIN {
61                         found=0; }
62                 /# "local/ {
63                         if (found == 0) {
64                                 print;
65                                 print "local   all   mdjango   md5";
66                                 found=1;
67                                 next;
68                         }}
69                 /^local.*all.*all/ {
70                         if (found == 0) {
71                                 print "local   all   mdjango   md5";
72                                 print;
73                                 found=1;
74                                 next;
75                         }}
76                 /^host/ {
77                         if (found == 0) {
78                                 print "local   all   mdjango   md5";
79                                 print;
80                                 found=1;
81                                 next;
82                         }}
83                 {print;}
84                 ' $main/pg_hba.conf > /tmp/pg_hba.conf
85         mv /tmp/pg_hba.conf $main/pg_hba.conf
86         chown postgres:postgres $main/pg_hba.conf
87         systemctl reload postgresql
88 fi
89
90 # check mdjango database
91 if ! su postgres -c "psql -c '\l'" | grep mdjango >/dev/null
92 then
93         echo "Create database mdjango."
94         su postgres -c "createdb mdjango -O mdjango"
95 fi
96
97 # migrate default db
98 /opt/mysite/manage.py migrate
99
100 # check existence of superuser
101 #if [ $(sqlite3 /var/mysite/default.sqlite3 'SELECT id FROM auth_user WHERE is_staff=1;' |wc -l) -eq 0 ]
102 #if [ $(su postgres -c "psql mdjango -c 'SELECT id FROM auth_user WHERE is_staff=t;' " |wc -l) -eq 0 ]
103 if [ $(su postgres -c "psql mdjango -c \"SELECT id FROM auth_user WHERE is_staff='t';\" " |wc -l) -eq 0 ]
104
105 then
106         echo "There is no django superuser in the system. Install one? (Y/n)"
107         read a
108         if [ "$a" != "n" ]
109         then
110                 /opt/mysite/manage.py createsuperuser
111         fi
112 fi