-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·50 lines (33 loc) · 1.16 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
#!/bin/bash
# detect configuration
NAME="$(basename $(dirname $(realpath $0)))"
DJANGO_DIR="/django/$NAME"
DJANGO_USER="django-$NAME"
RO="$(ls -d $DJANGO_DIR/* | egrep -v /data$)"
RW="$DJANGO_DIR/data"
# add user and group
id >/dev/null -g $DJANGO_USER || addgroup $DJANGO_USER
id >/dev/null -u $DJANGO_USER || adduser --home $DJANGO_DIR --shell /bin/false --ingroup $DJANGO_USER $DJANGO_USER
# permissions
chown root:root $DJANGO_DIR
chmod 0755 $DJANGO_DIR
chown -R $DJANGO_USER:$DJANGO_USER $RW
chmod -R u=rwX,g=rX,o-rwx $RW
chown -R root:root $RO
chmod -R u=rwX,g=rX,o=rX $RO
# configs
if ! [ -e /etc/nginx/sites-enabled/${NAME}.conf ]; then
ln -s $DJANGO_DIR/conf/nginx/${NAME}.conf /etc/nginx/sites-enabled/
nginx -t && service nginx reload
fi
if ! [ -e /etc/uwsgi/apps-enabled/${NAME}.ini ]; then
ln -s $DJANGO_DIR/conf/uwsgi/${NAME}.ini /etc/uwsgi/apps-enabled/
service uwsgi restart
fi
# certificates
[ -d /srv/letsencrypt ] || git clone https://github.com/letsencrypt/letsencrypt /srv/letsencrypt
$DJANGO_DIR/letsencrypt
# sync db
$DJANGO_DIR/manage.py migrate --noinput
# collect static
$DJANGO_DIR/manage.py collectstatic --noinput