12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- # set -eu -o pipefail
- echo "=> local.py"
- sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" \
- -e "s/##MAIL_DOMAIN##/${MAIL_DOMAIN}/" \
- -e "s/##MAIL_FROM##/${MAIL_FROM}/" \
- -e "s/##MAIL_SMTP_SERVER##/${MAIL_SMTP_SERVER}/" \
- -e "s/##MAIL_SMTP_PORT##/${MAIL_SMTP_PORT}/" \
- -e "s/##MAIL_SMTP_USERNAME##/${MAIL_SMTP_USERNAME}/" \
- -e "s/##MAIL_SMTP_PASSWORD##/${MAIL_SMTP_PASSWORD}/" \
- -e "s/##POSTGRESQL_DATABASE##/${POSTGRESQL_DATABASE}/" \
- -e "s/##POSTGRESQL_USERNAME##/${POSTGRESQL_USERNAME}/" \
- -e "s/##POSTGRESQL_PASSWORD##/${POSTGRESQL_PASSWORD}/" \
- -e "s/##POSTGRESQL_HOST##/${POSTGRESQL_HOST}/" \
- -e "s/##POSTGRESQL_PORT##/${POSTGRESQL_PORT}/" \
- /app/code/local.py > /run/local.py
- if [[ -n "${LDAP_SERVER:-}" ]]; then
- echo "=> setup ldap"
- sed -e "s/##LDAP_SERVER##/${LDAP_SERVER}/" \
- -e "s/##LDAP_PORT##/${LDAP_PORT}/" \
- -e "s/##LDAP_USERS_BASE_DN##/${LDAP_USERS_BASE_DN}/" \
- /app/code/local_ldap.py >> /run/local.py
- fi
- if [[ -n "${LDAP_SERVER:-}" ]]; then
- echo "=> Update conf.json with LDAP"
- sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf_ldap.json > /run/conf.json
- else
- echo "=> Update conf.json"
- sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf.json > /run/conf.json
- fi
- echo "=> Update nginx.conf"
- sed -e "s,##APP_DOMAIN##,${APP_DOMAIN}," /app/code/nginx.conf > /run/nginx.conf
- echo "=> Setup taiga virtual env"
- source /app/code/taiga/bin/activate
- cd /app/code/taiga-back
- if [[ ! -d /app/data/media/user ]]; then
- echo "=> New installation create inital project templates"
- echo "=> Run migration scripts"
- mkdir -p /app/data/media/user
- python manage.py migrate --noinput
- python manage.py loaddata initial_project_templates
- else
- echo "=> Run migration scripts"
- python manage.py migrate --noinput
- fi
- # this is not done on new install path, since old taiga installations would not hit that
- if ! python manage.py shell -c 'from django.contrib.auth import get_user_model; u=get_user_model().objects.filter(is_superuser=True).first(); print(u)' | grep -v "None"; then
- echo "=> Create superadmin"
- python manage.py loaddata initial_user
- else
- echo "=> Superadmin already exists"
- fi
- echo "=> Make cloudron own /run"
- chown -R cloudron:cloudron /run
- chown -R cloudron:cloudron /app/data
- echo "=> Start nginx"
- nginx -c /run/nginx.conf &
- echo "=> Start taiga-back"
- PATH=/app/code/taiga/bin:$PATH
- HOME=/app/code
- PYTHONPATH=/app/code/taiga/lib/python3.6/site-packages
- cd /app/code/taiga-back
- memory_limit=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
- worker_count=$((memory_limit/1024/1024/150)) # 1 worker for 150M
- worker_count=$((worker_count > 8 ? 8 : worker_count )) # max of 8
- worker_count=$((worker_count < 1 ? 1 : worker_count )) # min of 1
- echo "Starting gunicorn with ${worker_count} workers"
- exec /usr/local/bin/gosu cloudron:cloudron gunicorn -w ${worker_count} -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
|