94 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
show_help() {
echo "Usage: ./start.sh"
echo ""
echo "-k or --keycloak if you want to use keycloak as identity provider"
echo "-d or --down delete all container"
echo "-hi or --host-ip set the host ip"
echo "-hp or --host-port set the host port. Default 8080"
echo "-w or --wait wait for backend. Default true"
echo "-h or --help"
}
set_keycloak(){
KEYCLOAK="true"
}
down(){
docker-compose down
exit 0
}
set_host_ip(){
SET_HOST_IP=$1
}
set_host_port(){
HOST_PORT=$1
}
set_wait(){
WAIT=$1
}
# Defaults
WAIT="true"
SET_HOST_IP=""
HOST_PORT="8080"
KEYCLOAK="false"
AIMS_PROPS=""
while [[ $1 == -* ]]; do
case "$1" in
-h|--help|-\?) show_help; exit 0;;
-k|--keycloak) set_keycloak; shift;;
-d|--down) down; shift;;
-w|--wait) set_wait $2; shift 2;;
-hi|--host-ip) set_host_ip $2; shift 2;;
-hp|--host-port) set_host_port $2; shift 2;;
-*) echo "invalid option: $1" 1>&2; show_help; exit 1;;
esac
done
if [ -n "${SET_HOST_IP}" ];then
export HOST_IP=${SET_HOST_IP}
else
echo "No HOST_IP set, try to figure out on its own ..."
export HOST_IP=$(ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1)
fi
echo "HOST_IP: ${HOST_IP}"
URL_FRAGMENT="content-app"
export APP_URL="http://${HOST_IP}:${HOST_PORT}/${URL_FRAGMENT}"
echo "Content Workspace: ${APP_URL}"
if [[ $KEYCLOAK == "true" ]]; then
export APP_CONFIG_AUTH_TYPE="OAUTH"
export APP_CONFIG_OAUTH2_HOST="http://${HOST_IP}:8085/auth/realms/alfresco"
echo "Realm: ${APP_CONFIG_OAUTH2_HOST}"
export APP_CONFIG_OAUTH2_CLIENTID="alfresco"
export APP_CONFIG_OAUTH2_IMPLICIT_FLOW=true
export APP_CONFIG_OAUTH2_SILENT_LOGIN=true
export APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI="${APP_URL}assets/silent-refresh.html"
export APP_CONFIG_OAUTH2_REDIRECT_LOGIN="/$URL_FRAGMENT/"
export APP_CONFIG_OAUTH2_REDIRECT_LOGOUT="/$URL_FRAGMENT/logout"
# export APP_BASE_SHARE_URL="${APP_URL}#/preview/s"
AIMS_PROPS="-Dauthentication.chain=identity-service1:identity-service,alfrescoNtlm1:alfrescoNtlm"
fi
echo "Start docker compose"
export AIMS_PROPS=${AIMS_PROPS}
docker-compose up -d --build
if [[ $WAIT == "true" ]]; then
echo "http://${HOST_IP:-localhost}:${HOST_PORT:-8080}/$URL_FRAGMENT/"
echo "Waiting for the app ..."
HOST_IP=$HOST_IP HOST_PORT=$HOST_PORT npm run wait:app
if [ $? == 1 ]; then
echo "Waiting failed -> exit 1"
exit 1
fi
fi