diff --git a/check_couchdb b/check_couchdb
new file mode 100755
index 0000000000000000000000000000000000000000..a829276e85a505cb90f60daa6930cb86a5003766
--- /dev/null
+++ b/check_couchdb
@@ -0,0 +1,93 @@
+#!/bin/bash
+# ======================================================================
+#
+# Icinga/ Nagios Check
+# COUCHDB
+#
+# ----------------------------------------------------------------------
+#
+# REQUIREMENTS:
+#   - curl 
+#
+# SYNTAX:
+#   - check_couchdb [-h] [-t FILE] -m MODE
+#
+# ----------------------------------------------------------------------
+# 2023-08-28  v0.1  <axel.hahn@unibe.ch>
+# ======================================================================
+
+. $(dirname $0)/inc_pluginfunctions
+
+export self_APPVERSION=0.1
+
+function showHelp(){
+    local _self; _self=$(basename $0)
+    cat <<EOF
+$( ph.showImlHelpHeader )
+
+Show couchdb status.
+
+SYNTAX:
+$_self [-h] [-t FILE] -m MODE
+
+OPTIONS:
+    -h or --help   show this help.
+    -m MODE        test a value; for debugging purposes
+    -t FILE        take couchdb auth from Telegraph config
+                   add file like /etc/telegraf/telegraf.conf
+
+EXAMPLE:
+$_self -m up
+    Check if couchdb is up and running
+
+EOF
+}
+
+# --- check param -h
+case "$1" in
+    "--help"|"-h")
+        showHelp
+        exit 0
+        ;;
+    *)
+esac
+
+sTelegraph=$(ph.getValueWithParam "" "t" "$@")
+sMode=$(ph.getValueWithParam '' "m" "$@")
+
+if [ -n "$sTelegraph" ]; then
+        if [ ! -r "${sTelegraph}" ]; then
+                echo "ERROR: Telegraph config file [${sTelegraph}] cannot be read."
+                showHelp
+                ph.abort
+        fi
+        _user=$( grep "basic_username = " "${sTelegraph}" | cut -f 2 -d '"' )
+        _pw=$(   grep "basic_password = " "${sTelegraph}" | cut -f 2 -d '"' )
+        export COUCH_URL=http://${_user}:${_pw}@localhost:5984
+fi
+
+if [ -z "$COUCH_URL" ]; then
+    echo "ERROR: I have no couchdb url + autentication yet."
+    echo "Maybe you need to add -t /etc/telegraf/telegraf.conf."
+    ph.abort
+fi
+
+case "${sMode}" in
+    "up")
+        response=$( curl -s "${COUCH_URL}/_up" )
+        _status=$( jq '.status' <<< "${response}" | tr -d '"')
+        if ! echo "$_status" | grep "ok" >/dev/null; then
+                ph.setStatus critical
+        fi
+        ph.status "Couchdb status (value in /_up is '$_status')"
+        echo "Reponse: "; echo "${response}" | jq
+        _status=$( jq '.status' <<< "${response}" | tr -d '"')
+        ;;
+    *)
+        echo "ERRROR: [${sMode}] is an INVALID mode"
+        showHelp
+        ph.abort
+
+esac
+
+ph.exit