This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
idhub-docker/docker/musician.entrypoint.sh

63 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
set -e
# TODO fix the env so configures it to idp, then uncomment this checker
#set -u
# DEBUG
set -x
# this function is similar to the client_id part of config_oidc (devicehub)
oidc_config() {
# in DEVICEHUB_HOST we remove anything before ://
client_id_config="/shared/client_id_${SERVER_ID_HOST#*://}"
CLIENT_ID=
CLIENT_SECRET=
# wait that the file generated by the server_id is readable
while true; do
if [ -f "${client_id_config}" ]; then
CLIENT_ID="$(cat "${client_id_config}" | jq -r '.client_id')"
CLIENT_SECRET="$(cat "${client_id_config}" | jq -r '.client_secret')"
if [ "${CLIENT_ID}" ] && [ "${CLIENT_SECRET}" ]; then
break
fi
fi
sleep 1
done
}
populate_env() {
cat > .env <<END
SECRET_KEY="${SECRET_KEY}"
API_BASE_URL="${API_BASE_URL}"
ALLOWED_HOSTS="${ALLOWED_HOSTS:-.localhost,127.0.0.1}"
STATIC_ROOT="${STATIC_ROOT:-/static/}"
DEBUG="True"
CLIENT_ID="${CLIENT_ID}"
CLIENT_SECRET="${CLIENT_SECRET}"
SERVER_ID_HOST="${SERVER_ID_HOST}"
# path for goautentik idp (TODO)
#OIDC_PROVIDER="${SERVER_ID_HOST}/application/o/authorize"
# path for devicehub idp
OIDC_PROVIDER="${SERVER_ID_HOST}/oauth/authorize"
END
}
main() {
# go to the same path as the script
cd "$(dirname ${0})"
# TODO fix the env so configures it to idp, then uncomment this command:
#oidc_config
populate_env
# move the migrate thing in docker entrypoint
# inspired by https://medium.com/analytics-vidhya/django-with-docker-and-docker-compose-python-part-2-8415976470cc
./manage.py migrate
./manage.py runserver 0.0.0.0:8080
}
main "${@}"