mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
94 lines
2.4 KiB
Bash
Executable File
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
|