#!/bin/bash # Debug # set -x # Do Not Change these variables unless you know what you are doing export ESC=$ export DJANGO_SECRET_KEY=$(openssl rand -hex 32) # Default variables. These shall be overridden :-) export GUNICORN_WORKERS=${GUNICORN_WORKERS:-1} export SITE_URI=${SITE_URI:-http://example.com} export SITE_FQDN=$(echo $SITE_URI | sed -e "s/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/") [ "${SITE_URI::5}" == "https" ] && SITE_SCHEME="https" || SITE_SCHEME="http" export SITE_SCHEME [ ${PUBLIC_REGISTER,,} == "false" ] \ && { PUBLIC_REGISTER="False"; PUBLIC_REGISTER_JS="false"; } \ || { PUBLIC_REGISTER="True"; PUBLIC_REGISTER_JS="true"; } export PUBLIC_REGISTER PUBLIC_REGISTER_JS export ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com} export NOREPLY_EMAIL=${NOREPLY_EMAIL:-no-reply@example.com} export TAIGA_DB_HOST=${TAIGA_DB_HOST:-postgres} export TAIGA_DB_PORT=${TAIGA_DB_PORT:-5432} export TAIGA_DB_NAME=${TAIGA_DB_NAME:-taiga} export TAIGA_DB_USER=${TAIGA_DB_USER:-taiga} export TAIGA_DB_PASSWORD=${TAIGA_DB_PASSWORD:-mysecretpassword} # Generate configs based on the template seeds envsubst < /tmp/taiga.tmpl > /etc/nginx/sites-enabled/taiga envsubst < /tmp/circus.ini.tmpl > $DATA/circus.ini envsubst < /tmp/conf.json.tmpl > $DATA/taiga-front-dist/dist/conf.json envsubst < /tmp/local.py.tmpl > $DATA/taiga-back/settings/local.py # Keep sensitive information out of here unset DJANGO_SECRET_KEY TAIGA_DB_PASSWORD # Make sure the data is readable chown -Rh $USER:$GROUP $DATA # Allow a little delay on the first run # to make sure Database is set and ready [ -e "/tmp/taiga.firstrun" ] || ( echo "Waiting for 10 seconds to let the DB initialize" \ && sleep 10 ) # Upgrade DB schemas, etc... # This is important when Taiga's codebase gets updated su -s /bin/sh $USER -c '. $DATA/venvtaiga/bin/activate cd $DATA/taiga-back python manage.py migrate --noinput [ -e "/tmp/taiga.firstrun" ] || ( python manage.py loaddata initial_user \ && python manage.py loaddata initial_project_templates \ && python manage.py loaddata initial_role \ && echo "A new user admin with password 123123 has been created" ) python manage.py compilemessages python manage.py collectstatic --noinput deactivate' touch /tmp/taiga.firstrun # (Optional) Fill Taiga with the Sample data # su -s /bin/sh $USER -c '. $DATA/venvtaiga/bin/activate # cd $DATA/taiga-back # python manage.py sample_data # deactivate' # Launch the backend service nginx start su -s /bin/sh $USER -c '/usr/local/bin/circusd "$DATA/circus.ini"'