diff --git a/check_couchdb b/check_couchdb
index a829276e85a505cb90f60daa6930cb86a5003766..150ceaa93b11fdf43880028ba31bae30fc5f19a8 100755
--- a/check_couchdb
+++ b/check_couchdb
@@ -10,16 +10,24 @@
 #   - curl 
 #
 # SYNTAX:
-#   - check_couchdb [-h] [-t FILE] -m MODE
+#   - check_couchdb [-h] [-c CFGFILE] -m MODE
 #
 # ----------------------------------------------------------------------
-# 2023-08-28  v0.1  <axel.hahn@unibe.ch>
+# 2023-08-28  v0.1  <axel.hahn@unibe.ch>  first lines
+# 2023-08-28  v0.2  <axel.hahn@unibe.ch>  first check "up"
 # ======================================================================
 
 . $(dirname $0)/inc_pluginfunctions
 
-export self_APPVERSION=0.1
+export self_APPVERSION=0.2
 
+cfgfile=/etc/icingaclient/.couchdb
+
+# ----------------------------------------------------------------------
+# FUNCTIONS
+# ----------------------------------------------------------------------
+
+# show help
 function showHelp(){
     local _self; _self=$(basename $0)
     cat <<EOF
@@ -32,9 +40,9 @@ $_self [-h] [-t FILE] -m MODE
 
 OPTIONS:
     -h or --help   show this help.
+    -c CFGFILE     set a custom config file
+                   default: ${cfgfile}
     -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
@@ -43,6 +51,10 @@ $_self -m up
 EOF
 }
 
+# ----------------------------------------------------------------------
+# MAIN
+# ----------------------------------------------------------------------
+
 # --- check param -h
 case "$1" in
     "--help"|"-h")
@@ -52,26 +64,24 @@ case "$1" in
     *)
 esac
 
-sTelegraph=$(ph.getValueWithParam "" "t" "$@")
 sMode=$(ph.getValueWithParam '' "m" "$@")
+cfgfile=$(ph.getValueWithParam "${cfgfile}" "c" "$@")
 
-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
+if [ ! -f "$cfgfile" ]; then
+    echo "ERROR: Config file [${cfgfile}] does not exist."
+    ph.abort
 fi
 
+. "$cfgfile" || exit 1
+
 if [ -z "$COUCH_URL" ]; then
-    echo "ERROR: I have no couchdb url + autentication yet."
+    echo "ERROR: I have no couchdb url + authentication 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" )
@@ -81,7 +91,6 @@ case "${sMode}" in
         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"
@@ -91,3 +100,5 @@ case "${sMode}" in
 esac
 
 ph.exit
+
+# ----------------------------------------------------------------------
diff --git a/docs/20_Checks/_index.md b/docs/20_Checks/_index.md
index ae0a7576f06259ba68855960bbd188bc3c72c092..c874e5f350c8cc2786e171dfc99fb9894abee22f 100644
--- a/docs/20_Checks/_index.md
+++ b/docs/20_Checks/_index.md
@@ -14,6 +14,7 @@ There is one include script used by all checks:
 * [check_ceph_osd](check_ceph_osd.md)
 * [check_ceph_status](check_ceph_status.md)
 * [check_clientbackup](check_clientbackup.md)
+* [check_couchdb](check_couchdb.md)
 * check_couchdb-lb
 * [check_cpu](check_cpu.md)
 * [check_cronstatus](check_cronstatus.md)
diff --git a/docs/20_Checks/check_couchdb.md b/docs/20_Checks/check_couchdb.md
new file mode 100644
index 0000000000000000000000000000000000000000..8698c95db4c07b13181809f2a2c704fdbfe361dd
--- /dev/null
+++ b/docs/20_Checks/check_couchdb.md
@@ -0,0 +1,89 @@
+# check_couchdb
+
+## Introduction
+
+Check couchdb status.
+
+### Requirements
+
+* a running couchdb service
+* authentication (see section Installation below)
+
+## Syntax
+
+```text
+> check_couchdb -h
+______________________________________________________________________
+
+CHECK_COUCHDB
+v0.2
+
+(c) Institute for Medical Education - University of Bern
+Licence: GNU GPL 3
+
+https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_couchdb.html
+______________________________________________________________________
+
+Show couchdb status.
+
+SYNTAX:
+check_couchdb [-h] [-t FILE] -m MODE
+
+OPTIONS:
+    -h or --help   show this help.
+    -c CFGFILE     set a custom config file
+                   default: /etc/icingaclient/.couchdb
+    -m MODE        test a value; for debugging purposes
+
+EXAMPLE:
+check_couchdb -m up
+    Check if couchdb is up and running
+
+```
+
+## Installation
+
+The check script by default sources a file ``/etc/icingaclient/.couchdb``.
+It is a shell script with read permissions for the icinga user.
+It contains a line with the url to couchdb
+
+```shell
+# ls -l /etc/icingaclient/.couchdb
+-r--------. 1 icingaclient icingaclient 110 Aug 29 09:53 /etc/icingaclient/.couchdb
+
+# cat /etc/icingaclient/.couchdb
+export COUCH_URL=http://USERNAME:PASSWORD@localhost:5984
+```
+
+The variable COUCH_URL will be used to request status information.
+
+With parameter ``-c CFGFILE`` can define another location where to find the variable COUCH_URL.
+
+## Checks
+
+With the parameter ``-m METHOD`` you define what kind of check to perform.
+
+### up
+
+Simple check if couchdb is up and running.
+`check_couchdb -m up` returns
+
+```txt
+OK: Couchdb status (value in /_up is 'ok')
+Reponse: 
+{
+  "status": "ok",
+  "seeds": {
+    "couchdb@192.168.25.172": {
+      "timestamp": "2023-08-28T07:27:54.938619Z",
+      "last_replication_status": "ok",
+      "pending_updates": {
+        "_nodes": 0,
+        "_dbs": 0,
+        "_users": 0
+      }
+    },
+    "couchdb@192.168.25.61": {}
+  }
+}
+ ```
diff --git a/docs/20_Checks/check_eol.md b/docs/20_Checks/check_eol.md
index ed065393371a84f3bda07de95de3d8185b5c4370..0436321b854b10ff57e4335f1e32cf27f30634fe 100644
--- a/docs/20_Checks/check_eol.md
+++ b/docs/20_Checks/check_eol.md
@@ -98,7 +98,7 @@ The check is build to be customizable. You can add
 
 The related files are in 2 subdirectories with check_eol prefix:
 
-```
+```txt
 > ls -1  check_eol-data/ check_eol-versiondetect/
 check_eol-data/:
 databases.cfg