#!/bin/bash DEBUG=false # true set -e [ "$DEBUG" == 'true' ] && set -x if [ -z "$URL" ]; then echo "URL env variable must be set"; exit 1; fi if [ -z "$RESPONSIBLE_EMAIL" ]; then echo "RESPONSIBLE_EMAIL env variable must be set"; exit 1; fi echo " * Install dependencies" apt install git nginx uwsgi uwsgi-plugin-python3 postgresql apg sed apt install python3 python3-pip python3-psycopg2 python3-pygments apt install -t stretch-backports python3-django # buster: apt install python3-django pip3 install scrapy==1.7 tldextract==2.2 # buster: apt install python3-tldextract django-ajax-selects # bullseye: apt install python3-scrapy python3-tldextract django-ajax-selects PASSWORD=`apg -n 1 -a 1 -m 24 -M CLN` PWD=`pwd` DB_NAME=commonnet echo " * Creating conf files" mkdir -p /var/lib/uwsgi/run chown -R www-data:www-data /var/lib/uwsgi/run sed -s "s|#PASSWORD#|$PASSWORD|g;\ s|RESPONSIBLE_EMAIL = None|RESPONSIBLE_EMAIL = '$RESPONSIBLE_EMAIL'|;" \ commonnet/local_settings.py.sample > conf/local_settings.py ln -s "$PWD"/conf/local_settings.py commonnet/ sed -s "s|#URL#|$URL|g;" conf/uwsgi.ini.template > \ conf/uwsgi.ini ln -s "$PWD"/conf/uwsgi.ini /etc/uwsgi/apps-enabled/ sed -s "s|#URL#|$URL|g;" conf/nginx.conf.template > \ conf/nginx.conf ln -s "$PWD"/conf/nginx.conf /etc/nginx/sites-enabled/ echo " * Checking database $DB_NAME" if ! psql -l | grep -qs "$DB_NAME"; then echo " - not present, creating" createuser --echo --adduser --createdb --encrypted $DB_NAME psql --command "ALTER USER \""$DB_NAME"\" with password '"$PASSWORD"';" else echo " - already present" fi make update python3 manage.py createsuperuser systemctl restart uwsgi nginx