diff --git a/docker/idhub.entrypoint.sh b/docker/idhub.entrypoint.sh index ceb3895..29000f9 100755 --- a/docker/idhub.entrypoint.sh +++ b/docker/idhub.entrypoint.sh @@ -28,36 +28,42 @@ END } deployment_strategy() { - # detect if existing deployment (TODO only works with sqlite) - if [ -f "${idhub_dir}/db.sqlite3" ]; then - echo "INFO: detected EXISTING deployment" - ./manage.py migrate + init_flagfile="${idhub_dir}/already_configured" + if [ ! -f "${init_flagfile}" ]; then + + echo "INFO: detected NEW deployment" + # this file helps all docker containers to guess number of hosts involved + # right now is only needed by new deployment for oidc + if [ -d "/sharedsecret" ]; then + touch /sharedsecret/${DOMAIN} + fi + + # move the migrate thing in docker entrypoint + # inspired by https://medium.com/analytics-vidhya/django-with-docker-and-docker-compose-python-part-2-8415976470cc + echo "INFO detected NEW deployment" + ./manage.py migrate + + if [ "${DEMO:-}" = 'true' ]; then + printf "This is DEVELOPMENT/PILOTS_EARLY DEPLOYMENT: including demo hardcoded data\n" >&2 + PREDEFINED_TOKEN="${PREDEFINED_TOKEN:-}" + ./manage.py demo_data "${PREDEFINED_TOKEN}" + fi + + if [ "${OIDC_ORGS:-}" ]; then + config_oidc4vp + else + echo "Note: skipping oidc4vp config" + fi + + # remain next command as the last operation for this if conditional + touch "${init_flagfile}" + + else + echo "INFO: detected PREVIOUS deployment" + ./manage.py migrate # warn admin that it should re-enter password to keep the service working ./manage.py send_mail_admins - else - # this file helps all docker containers to guess number of hosts involved - # right now is only needed by new deployment for oidc - if [ -d "/sharedsecret" ]; then - touch /sharedsecret/${DOMAIN} - fi - - # move the migrate thing in docker entrypoint - # inspired by https://medium.com/analytics-vidhya/django-with-docker-and-docker-compose-python-part-2-8415976470cc - echo "INFO detected NEW deployment" - ./manage.py migrate - - if [ "${DEMO:-}" = 'true' ]; then - printf "This is DEVELOPMENT/PILOTS_EARLY DEPLOYMENT: including demo hardcoded data\n" >&2 - PREDEFINED_TOKEN="${PREDEFINED_TOKEN:-}" - ./manage.py demo_data "${PREDEFINED_TOKEN}" - fi - - if [ "${OIDC_ORGS:-}" ]; then - config_oidc4vp - else - echo "Note: skipping oidc4vp config" - fi fi }