| 
					
				 | 
			
			
				@@ -191,12 +191,12 @@ get_container_ip() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       sleep 0.5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       # get long container id for exact match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CONTAINER_ID=($(curl --silent --insecure https://dockerapi/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" | jq -rc "select( .name | tostring == \"${1}\") | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      CONTAINER_ID=($(curl --silent --insecure https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" | jq -rc "select( .name | tostring == \"${1}\") | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       # returned id can have multiple elements (if scaled), shuffle for random test 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       CONTAINER_ID=($(printf "%s\n" "${CONTAINER_ID[@]}" | shuf)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if [[ ! -z ${CONTAINER_ID} ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for matched_container in "${CONTAINER_ID[@]}"; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          CONTAINER_IPS=($(curl --silent --insecure https://dockerapi/containers/${matched_container}/json | jq -r '.NetworkSettings.Networks[].IPAddress')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          CONTAINER_IPS=($(curl --silent --insecure https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/${matched_container}/json | jq -r '.NetworkSettings.Networks[].IPAddress')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           for ip_match in "${CONTAINER_IPS[@]}"; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # grep will do nothing if one of these vars is empty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             [[ -z ${ip_match} ]] && continue 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -716,7 +716,7 @@ rspamd_checks() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 From: watchdog@localhost 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Empty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-' | usr/bin/curl --max-time 10 -s --data-binary @- --unix-socket /var/lib/rspamd/rspamd.sock http://rspamd/scan | jq -rc .default.required_score | sed 's/\..*//' ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+' | usr/bin/curl --max-time 10 -s --data-binary @- --unix-socket /var/lib/rspamd/rspamd.sock http://rspamd.${COMPOSE_PROJECT_NAME}_mailcow-network/scan | jq -rc .default.required_score | sed 's/\..*//' ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [[ ${SCORE} -ne 9999 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       echo "Rspamd settings check failed, score returned: ${SCORE}" 2>> /tmp/rspamd-mailcow 1>&2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       err_count=$(( ${err_count} + 1)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1095,12 +1095,12 @@ while true; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   elif [[ ${com_pipe_answer} =~ .+-mailcow ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     kill -STOP ${BACKGROUND_TASKS[*]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sleep 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CONTAINER_ID=$(curl --silent --insecure https://dockerapi/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" | jq -rc "select( .name | tostring | contains(\"${com_pipe_answer}\")) | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CONTAINER_ID=$(curl --silent --insecure https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" | jq -rc "select( .name | tostring | contains(\"${com_pipe_answer}\")) | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [[ ! -z ${CONTAINER_ID} ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if [[ "${com_pipe_answer}" == "php-fpm-mailcow" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        HAS_INITDB=$(curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/top | jq '.msg.Processes[] | contains(["php -c /usr/local/etc/php -f /web/inc/init_db.inc.php"])' | grep true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        HAS_INITDB=$(curl --silent --insecure -XPOST https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/${CONTAINER_ID}/top | jq '.msg.Processes[] | contains(["php -c /usr/local/etc/php -f /web/inc/init_db.inc.php"])' | grep true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      S_RUNNING=$(($(date +%s) - $(curl --silent --insecure https://dockerapi/containers/${CONTAINER_ID}/json | jq .State.StartedAt | xargs -n1 date +%s -d))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      S_RUNNING=$(($(date +%s) - $(curl --silent --insecure https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/${CONTAINER_ID}/json | jq .State.StartedAt | xargs -n1 date +%s -d))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if [ ${S_RUNNING} -lt 360 ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log_msg "Container is running for less than 360 seconds, skipping action..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       elif [[ ! -z ${HAS_INITDB} ]]; then 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1108,7 +1108,7 @@ while true; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sleep 60 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log_msg "Sending restart command to ${CONTAINER_ID}..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/restart 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        curl --silent --insecure -XPOST https://dockerapi.${COMPOSE_PROJECT_NAME}_mailcow-network/containers/${CONTAINER_ID}/restart 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         notify_error "${com_pipe_answer}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log_msg "Wait for restarted container to settle and continue watching..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sleep 35 
			 |