diff --git a/status/fod-status.sh b/status/fod-status.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9658e32264898bf64125b9594a86fedb213a032d
--- /dev/null
+++ b/status/fod-status.sh
@@ -0,0 +1,144 @@
+#!/bin/bash
+
+arg1="$1"
+shift 1
+
+source ./venv/bin/activate
+
+##
+
+case "$arg1" in
+
+ -p|--process-status)
+ set -e
+ echo "# basic process status:"
+ ./manage.py fodinfo -s
+ ;;
+
+ -D|--database-access-status)
+ nopwds=1
+ if [ "$1" = "--with-passwords" ]; then
+ nopwds=0
+ shift 1
+ fi
+
+ set -e
+ echo "# database access status:"
+ ./manage.py diffsettings | grep -E "DATABASES" | if [ "$nopwds" = 1 ]; then
+ sed -E -e "s/('PASSWORD': *)'[^']+'/\\1'XXXXXX'/"
+ else
+ cat
+ fi
+ echo "SELECT 1" | ./manage.py dbshell
+ ;;
+
+
+ -H|--gunicorn-http-status)
+ set -e
+ port="$( ./manage.py fodinfo -P)"
+ echo "gunicorn http port=$port"
+ set +e
+ http_ret_code="$(curl -k --write-out "%{http_code}" --silent --output "/dev/null" "http://localhost:$port/altlogin/")"
+ echo "gunicorn http_ret_code=$http_ret_code"
+ [ "$http_ret_code" = "200" ]
+ ;;
+
+ -N|--netconf-access-status)
+ nopwds=1
+ if [ "$1" = "--with-passwords" ]; then
+ nopwds=0
+ shift 1
+ fi
+
+ set -e
+ echo "# NETCONF access status:"
+ ./manage.py diffsettings | grep -E "(NETCONF)|(SNMP_IP)" | if [ "$nopwds" = 1 ]; then
+ sed -E -e "s/(NETCONF_PASS\s*=\s*).*$/\1'XXXXXX'/" -e "s/('community': *)'[^']+'/\\1'XXXXXX'/"
+ else
+ cat
+ fi
+ env DJANGO_SETTINGS_MODULE=flowspy.settings python -c '
+from utils.proxy import *;
+proxy = Applier();
+xml = proxy.get_existing_config_xml();
+#print(xml);
+print("access to NETCONF seems to be working");
+' "$@" < /dev/null
+ ;;
+
+ --sensu-status)
+ "$0" --status
+ statusx="$?"
+ echo "status=$statusx"
+ if [ "$statusx" = 0 ]; then
+ echo "all basic checks passed: OK"
+ exit 0
+ else
+ echo "something went wrong during basic checks: ERROR"
+ exit 2
+ fi
+ ;;
+
+
+ -S|status-detailed)
+ #set -e
+
+ "$0" --process-status
+ pstatus="$?"
+ echo "process status=$pstatus"
+ echo
+
+ "$0" --database-access-status --with-passwords
+ dstatus="$?"
+ echo "database access status=$dstatus"
+ echo
+
+ "$0" --gunicorn-http-status
+ hstatus="$?"
+ echo "gunicorn http status=$hstatus"
+ echo
+
+ "$0" --netconf-access-status --with-passwords
+ nstatus="$?"
+ echo "NETCONF access status=$nstatus"
+ echo
+
+ all_status=$(( $pstatus | $dstatus | $hstatus | $nstatus ))
+ echo "all_status=$all_status"
+
+ exit "$all_status"
+ ;;
+
+ *|-s|--status)
+ #set -e
+
+ "$0" --process-status
+ pstatus="$?"
+ echo "process status=$pstatus"
+ echo
+
+ "$0" --database-access-status
+ dstatus="$?"
+ echo "database access status=$dstatus"
+ echo
+
+ "$0" --gunicorn-http-status
+ hstatus="$?"
+ echo "gunicorn http status=$hstatus"
+ echo
+
+ "$0" --netconf-access-status
+ nstatus="$?"
+ echo "NETCONF access status=$nstatus"
+ echo
+
+ all_status=$(( $pstatus | $dstatus | $hstatus | $nstatus ))
+ echo "all_status=$all_status (0=OK)"
+
+ exit "$all_status"
+
+ ;;
+
+
+esac
+