-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlauncher.sh
executable file
·46 lines (39 loc) · 1.24 KB
/
launcher.sh
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
#!/bin/bash
set -euo pipefail
# Remove /var/run and /var/tmp because.
rm -rf /var/run
mkdir -p /var/run
rm -rf /var/tmp
mkdir -p /var/tmp
# Set up database.
mkdir -p /var/sqlite3
cd /opt/app/babybuddy
# Establish environment.
mkdir -p /var/env
if [ ! -f /var/env/secret ]; then
python3 -c 'import random; result = "".join([random.choice("abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)") for i in range(50)]); print(result);' > /var/env/secret
fi
export DJANGO_SETTINGS_MODULE="babybuddy.settings.sandstorm"
export SECRET_KEY="$(cat /var/env/secret)"
# Set up database.
pipenv run python manage.py migrate
pipenv run python manage.py createcachetable
# Add media folder for uploads
mkdir -p /var/media
# Set up uwsgi.
UWSGI_SOCKET_FILE=/var/run/uwsgi.sock
HOME=/var uwsgi \
--socket $UWSGI_SOCKET_FILE \
--plugin python3 \
--chdir /opt/app/babybuddy \
--virtualenv /opt/app/babybuddy/.venv \
--module babybuddy.wsgi:application \
--wsgi-file /opt/app/babybuddy/babybuddy/wsgi.py &
while [ ! -e $UWSGI_SOCKET_FILE ] ; do
echo "waiting for uwsgi to be available at $UWSGI_SOCKET_FILE"
sleep .2
done
# Set up nginx
mkdir -p /var/lib/nginx
mkdir -p /var/log/nginx
/usr/sbin/nginx -c /opt/app/.sandstorm/service-config/nginx.conf -g "daemon off;"