Advertisement
Guest User

Untitled

a guest
Oct 9th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.82 KB | None | 0 0
  1. set -e
  2. sudo add-apt-repository universe
  3. sudo apt-get update
  4. sudo apt-get install -y python3-virtualenv build-essential python3-dev libevent-dev libpq-dev libjpeg8 libjpeg-dev libfreetype6 libfreetype6-dev postgresql postgresql-contrib postgis
  5. # make sure directory $1 doesn't exist
  6. if [[ -d $1 ]]; then
  7.     echo "Directory $1 exits already. Use a different name"
  8.     exit 1
  9. fi
  10. # make sure database $1 doesn't exist
  11. if sudo -i -u postgres psql -lqt | cut -d \| -f 1 | grep -qw $1; then
  12.     echo "Database $1 exits already. Use a different name"
  13.     exit 1
  14. fi
  15. VENV=venv-$1
  16. python3.6 -m virtualenv -p python3.6 $VENV
  17. $VENV/bin/pip install "Django>=1.11,<2.0"
  18. DB_USER=$1
  19. DB_PASS=$1
  20. DB_NAME=$1
  21. sudo -i -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
  22. sudo -i -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'UTF8';"
  23. sudo -i -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
  24. sudo -i -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER;"
  25. sudo -i -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
  26. sudo -i -u postgres psql -d $DB_NAME -c "CREATE EXTENSION postgis;"
  27. sudo -i -u postgres psql -d $DB_NAME -c "CREATE EXTENSION postgis_topology;"
  28. sudo -i -u postgres psql -d $DB_NAME -c "CREATE EXTENSION fuzzystrmatch;"
  29. sudo -i -u postgres psql -d $DB_NAME -c "CREATE EXTENSION postgis_tiger_geocoder;"
  30. sudo -i -u postgres psql -d $DB_NAME -c "CREATE EXTENSION pg_stat_statements;"
  31. $VENV/bin/django-admin.py startproject --template=https://github.com/tendenci/tendenci-project-template/archive/master.zip $1
  32. cd $1
  33. mkdir themes/tendenci2018
  34. ../$VENV/bin/pip install psycopg2
  35. ../$VENV/bin/pip install --no-binary psycopg2 -r requirements/dev.txt --upgrade
  36. _SECRET_KEY=`../$VENV/bin/python -c 'from django.core.management import utils; print(utils.get_random_secret_key())'`
  37. _SITE_SETTINGS_KEY=`../$VENV/bin/python -c 'from django.core.management import utils; print(utils.get_random_secret_key())'`
  38. sed -i "s/^SECRET_KEY = ''$/SECRET_KEY = '$_SECRET_KEY'/g" conf/settings.py
  39. sed -i "s/^SITE_SETTINGS_KEY = ''$/SITE_SETTINGS_KEY = '$_SITE_SETTINGS_KEY'/g" conf/settings.py
  40. sed -i "s/^#DATABASES\['default'\]\['USER'\] = 'tendenci'$/DATABASES['default']['USER'] = '$1'/g" conf/settings.py
  41. sed -i "s/^#DATABASES\['default'\]\['PASSWORD'\] = 'tendenci'$/DATABASES['default']['PASSWORD'] = '$1'/g" conf/settings.py
  42. sed -i "s/^#DATABASES\['default'\]\['NAME'\] = 'tendenci'$/DATABASES['default']['NAME'] = '$1'/g" conf/settings.py
  43. sed -i "s|^TIME_ZONE = 'US/Central'$|TIME_ZONE = 'US/Eastern'|g" conf/settings.py
  44. sed -i "s/^#DEBUG = True$/DEBUG = True/g" conf/settings.py
  45. sed -i "s|^#set_app_log_filename('/var/log/mysite/app.log')$|set_app_log_filename('app.log')|g" conf/settings.py
  46. sed -i "s|^#set_debug_log_filename('/var/log/mysite/debug.log')$|set_debug_log_filename('debug.log')|g" conf/settings.py
  47. sed -i "s/^#enable_console_log()$/enable_console_log()/g" conf/settings.py
  48. sed -i "s/^#set_console_log_level('INFO')$/set_console_log_level('DEBUG')/g" conf/settings.py  #if error comment it
  49. cp -r ../$VENV/lib/python3.6/site-packages/tendenci/themes/t7-tendenci2018/* themes/tendenci2018
  50. ../$VENV/bin/python manage.py initial_migrate
  51. ../$VENV/bin/python manage.py deploy
  52. ../$VENV/bin/python manage.py update_dashboard_stats
  53. chmod -R -x+X media
  54. # XXX: remove?
  55. ../$VENV/bin/python manage.py load_tendenci2018_defaults #no needed
  56. ../$VENV/bin/python manage.py set_setting site global siteurl 'https://www.example.com'
  57. ../$VENV/bin/python manage.py createsuperuser --noinput --username=admin --email=admin@example.com
  58. ../$VENV/bin/python manage.py shell -c "from django.contrib.auth.models import User; superuser = User.objects.get(username='admin'); superuser.set_password('admin'); superuser.save()"
  59. ../$VENV/bin/python manage.py runserver
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement