diff --git a/entrypoint.sh b/entrypoint.sh index a9efa14..3148fbb 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -11,10 +11,18 @@ DEBUG=0 SOURCE=$PROXY TARGET=$TARGET DOMAIN=$DOMAIN +LOCATION=$LOCATION PORT=$PORT PUBLIC_PROXY_PATH=$PUBLIC_PROXY_PATH SMARTHOST_PROXY_PATH=$SMARTHOST_PROXY_PATH +if [ ! -z "$LOCATION" ]; then + TEMPFILENAME=$(echo $LOCATION |cut -d '/' -f2- |sed 's#/#-#g' ); + FILENAME="$TEMPFILENAME-$DOMAIN"; +else + FILENAME="$DOMAIN"; +fi + # ADDITIONAL VARIABLES ROLES=$ROLES @@ -178,12 +186,19 @@ fi; # CHECKING WHETHER IS IT NEEDED TO USE PUBLIC PROXY SERVICE if [ "$PUBLIC_PROXY_PATH" != "" ]; then - +if # check domain config file exits - PUBLIC_DOMAIN=$(jq -r .DOMAIN $PUBLIC_PROXY_PATH/$DOMAIN 2>/dev/null) - PUBLIC_IP=$(jq -r .LOCAL_IP $PUBLIC_PROXY_PATH/$DOMAIN 2>/dev/null) - - if [[ -f "$PUBLIC_PROXY_PATH/$DOMAIN" && "$PUBLIC_DOMAIN" == "$DOMAIN" && "$PUBLIC_IP" == "$SOURCE_IP" ]]; then + LOCAL_NAME="LOCAL_IP"; + PUBLIC_DOMAIN=$(jq -r .DOMAIN $PUBLIC_PROXY_PATH/$FILENAME 2>/dev/null) + PUBLIC_IP=$(jq -r .LOCAL_IP $PUBLIC_PROXY_PATH/$FILENAME 2>/dev/null) + + if [ -z "$STRICK_CHECK" ]; then + LOCAL_NAME="LOCAL_NAME"; + SOURCE_IP=$SOURCE; + PUBLIC_IP=$(jq -r .LOCAL_NAME $PUBLIC_PROXY_PATH/$FILENAME 2>/dev/null) + fi; + + if [[ -f "$PUBLIC_PROXY_PATH/$FILENAME" && "$PUBLIC_DOMAIN" == "$DOMAIN" && "$PUBLIC_IP" == "$SOURCE_IP" && "$LOCATION" != "" ]]; then echo "Nothing to do." else @@ -194,44 +209,63 @@ if [ "$PUBLIC_PROXY_PATH" != "" ]; then "DOMAIN": "'$DOMAIN'", "ALIASES_HTTP": [ ], "ALIASES_HTTPS": [ ], - "LOCAL_IP": "'$SOURCE_IP'", + "'$LOCAL_NAME'": "'$SOURCE_IP'", "HTTP_PORT": "80", "HTTPS_PORT": "443", "ERROR_PAGE": "", "REDIRECT_HTTP": "", "REDIRECT_HTTPS": "" } - ' | jq -r . > $PUBLIC_PROXY_PATH/$DOMAIN + ' | jq -r . > $PUBLIC_PROXY_PATH/$FILENAME fi fi # CHECKING WHETHER IS IT NEEDED TO USE SMARTHOST PROXY SERVICE if [ "$SMARTHOST_PROXY_PATH" != "" ]; then - # check domain config file exits - SMARTHOST_DOMAIN=$(jq -r .DOMAIN $SMARTHOST_PROXY_PATH/$DOMAIN 2>/dev/null) - SMARTHOST_IP=$(jq -r .LOCAL_IP $SMARTHOST_PROXY_PATH/$DOMAIN 2>/dev/null) - SMARTHOST_PORT=$(jq -r .HTTP_PORT $SMARTHOST_PROXY_PATH/$DOMAIN 2>/dev/null) - if [[ -f "$SMARTHOST_PROXY_PATH/$DOMAIN" && "$SMARTHOST_DOMAIN" == "$DOMAIN" && "$SMARTHOST_IP" == "$TARGET_IP" && "$SMARTHOST_PORT" == "$PORT" ]]; then + # check domain config file exits + LOCAL_NAME="LOCAL_IP"; + SMARTHOST_DOMAIN=$(jq -r .DOMAIN $SMARTHOST_PROXY_PATH/$FILENAME 2>/dev/null) + SMARTHOST_IP=$(jq -r .LOCAL_IP $SMARTHOST_PROXY_PATH/$FILENAME 2>/dev/null) + SMARTHOST_PORT=$(jq -r .HTTP_PORT $SMARTHOST_PROXY_PATH/$FILENAME 2>/dev/null) + + if [ -z "$STRICK_CHECK" ]; then + LOCAL_NAME="LOCAL_NAME"; + TARGET_IP=$TARGET; + SMARTHOST_IP=$(jq -r .LOCAL_NAME $PUBLIC_PROXY_PATH/$FILENAME 2>/dev/null) + fi; + + if [[ -f "$SMARTHOST_PROXY_PATH/$FILENAME" && "$SMARTHOST_DOMAIN" == "$DOMAIN" && "$SMARTHOST_IP" == "$TARGET_IP" && "$SMARTHOST_PORT" == "$PORT" ]]; then echo "Nothing to do." else #Create public proxy domain file + if [ -n "$LOCATION" ]; then + LOCATION_LINE=', + "ALTERNATE_LOCATION_PATH": { + "LOCAL_PATH": "'$LOCATION'", + "LOCAL_NAME": "'$TARGET_IP'", + "LOCAL_PORT": "'$PORT'", + "LOCAL_ALLOWED_NETWORK": "" + } + '; + else + LOCATION_LINE=',"'$LOCAL_NAME'": "'$TARGET_IP'"'; + fi; echo ' { "DOMAIN": "'$DOMAIN'", "ALIASES_HTTP": [ ], "ALIASES_HTTPS": [ ], - "LOCAL_IP": "'$TARGET_IP'", "HTTP_PORT": "", "HTTPS_PORT": "'$PORT'", "ERROR_PAGE": "", - "REDIRECT_HTTP": "https://'$DOMAIN'", + "REDIRECT_HTTP": "https://'$DOMAIN''$LOCATION'", "REDIRECT_HTTPS": "", - "MAX_BODY_SIZE": "512M" + "MAX_BODY_SIZE": "512M"'$LOCATION_LINE' } - ' | jq -r . > $SMARTHOST_PROXY_PATH/$DOMAIN + ' | jq -r . > $SMARTHOST_PROXY_PATH/$FILENAME fi fi