diff --git a/common/borgbackup/tasks/main.yml b/common/borgbackup/tasks/main.yml
index ff7735c2bd9eb31b23037aa1565d7477a83be043..4f57ddaf2961c1dd9db6707b8b28433ef729b58f 100644
--- a/common/borgbackup/tasks/main.yml
+++ b/common/borgbackup/tasks/main.yml
@@ -9,24 +9,52 @@
     - borgbackup
     - logrotate
     - moreutils
+    - openssl
+
+- name: create directory
+  file: 
+    path: "/srv/borgbackup/"
+    state: "directory"
+
+- name: create directories
+  file: 
+    path: "/srv/borgbackup/{{ item }}"
+    state: "directory"
+  with_items: "{{ borgbackup_repos }}"
+
+- name: generate new repo_passphrase (check)
+  stat:
+    path: /srv/borgbackup/repo_passphrase 
+  register: repo_passphrase 
+
+- name: generate new repo_passphrase (generate)
+  command: openssl rand -base64 -out /srv/borgbackup/repo_passphrase 24 
+  when: repo_passphrase.stat.exists == False 
+
+- name: generate new repo_sshkey (check)
+  stat:
+    path: /srv/borgbackup/repo_sshkey 
+  register: repo_sshkey 
+
+- name: generate new repo_sshkey (generate)
+  command: ssh-keygen -N '' -t ed25519 -f /srv/borgbackup/repo_sshkey
+  when: repo_sshkey.stat.exists == False 
 
 - name: get secrets from server 1
   slurp: src={{ item }}
   with_items:
     - /srv/borgbackup/repo_passphrase 
-    - /srv/borgbackup/repo_url 
   register: borgbackup_secrets
 
 - name: get secrets from server 2
   set_fact: 
     repo_passphrase: "{{ borgbackup_secrets.results | selectattr('item', 'equalto', '/srv/borgbackup/repo_passphrase') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}" 
-    repo_url: "{{ borgbackup_secrets.results | selectattr('item', 'equalto', '/srv/borgbackup/repo_url') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}" 
 
 
 # BorgBackup Scripte erstellen 
 
-- name: BorgBackup Script erstellen 
-  template: src={{ item }} dest=/opt/{{ item }} mode=o+x
+- name: BorgBackup Scripte erstellen 
+  template: src={{ item }} dest=/srv/borgbackup/{{ item }} mode=o+x
   with_items:
     - "borgbackup-check.sh"
     - "borgbackup-create.sh"
@@ -35,6 +63,7 @@
     - "borgbackup-init.sh"
     - "borgbackup-list.sh"
     - "borgbackup-mount.sh"
+    - "borgbackup-prometheus.sh"
 
 - name: BorgBackup log folder erstellen 
   file: 
@@ -42,7 +71,18 @@
     state: "directory"
 
 - name: BorgBackup LogRotate config erstellen 
-  template: src=logrotate dest=/etc/logrotate.d/borgbackup
+  template: 
+    src: logrotate 
+    dest: /etc/logrotate.d/borgbackup
+
+- name: Alten cronjob entfernen falls vorhanden  
+  cron: 
+    name: "borgbackup" 
+    state: absent
+
+- name: Cronjob für BorgBackup Backup 
+  cron: name="borgbackup-create" weekday="{{borgbackup_weekday}}" hour="{{borgbackup_hour}}" minute="{{borgbackup_minute}}" job="/srv/borgbackup/borgbackup-create.sh 2>&1 | ts '[\\%Y-\\%m-\\%d \\%H:\\%M:\\%S]' >> /var/log/borgbackup/borgbackup.log"
 
-- name: Cronjob für BorgBackup
-  cron: name="borgbackup" weekday="{{borgbackup_weekday}}" hour="{{borgbackup_hour}}" minute="{{borgbackup_minute}}" job="/opt/borgbackup-create.sh 2>&1 | ts '[%Y-%m-%d %H:%M:%S]' >> /var/log/borgbackup/borgbackup.log"
\ No newline at end of file
+- name: Cronjob für BorgBackup Prometheus export  
+  cron: name="borgbackup-prom" weekday="*" hour="*" minute="0" job="/srv/borgbackup/borgbackup-prometheus.sh 2>&1 | ts '[\\%Y-\\%m-\\%d \\%H:\%M:\\%S]' >> /var/log/borgbackup/borgbackup.log"
+  
diff --git a/common/borgbackup/templates/borgbackup-check.sh b/common/borgbackup/templates/borgbackup-check.sh
index dbdfd2f0f1837bbb3f98e79838d5d6f928ec810f..bf0ac7237f2daa2f960cdce77dac054e13658fd4 100644
--- a/common/borgbackup/templates/borgbackup-check.sh
+++ b/common/borgbackup/templates/borgbackup-check.sh
@@ -1,6 +1,14 @@
 #!/bin/bash
 
+# Überprüfung der Backup Archive 
+
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
+
+
+{% for repo_url in borgbackup_repos %}
+
+echo "===[ Check Repo: {{repo_url}} ]============================================================"
+borg check $1 $2 $3 --info --show-rc --remote-path borg1 {{repo_url}}
 
-# Überprüfung des Archives 
-borg check $1 $2 $3 --info --show-rc {{repo_url}}
+{% endfor %}
\ No newline at end of file
diff --git a/common/borgbackup/templates/borgbackup-create.sh b/common/borgbackup/templates/borgbackup-create.sh
index 9185d6decb0e5688139511393ec972a8da3385bd..4351531da5eb21c45a782d0828a6b4971a23435d 100644
--- a/common/borgbackup/templates/borgbackup-create.sh
+++ b/common/borgbackup/templates/borgbackup-create.sh
@@ -1,12 +1,18 @@
 #!/bin/bash
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
+export BACKUP_DATE=`date +%Y-%m-%d_%H_%M`
 
-# Ausführung des Backups
+# Ausführung der Backups
 # anschließend Bereinigung 
 # abschließend Integritätscheck 
 
-borg create $1 $2 $3 --info --show-rc --stats --compression lzma,2 {{repo_url}}::`date +%Y-%m-%d_%H_%M` \
+{% for repo_url in borgbackup_repos %}
+
+echo "===[ Create Backup: {{repo_url}} ]============================================================"
+
+borg create $1 $2 $3 --info --show-rc --remote-path borg1 --stats --compression lzma,2 {{repo_url}}::$BACKUP_DATE \
 {% for directory in borgbackup_directories %}
 {{ directory }} \
 {% endfor %}
@@ -17,3 +23,5 @@ borg prune $1 $2 $3 --info --show-rc --list {{repo_url}} \
 {% endfor %}
 && \
 borg check $1 $2 $3 --info --show-rc {{repo_url}}
+
+{% endfor %}
diff --git a/common/borgbackup/templates/borgbackup-delete.sh b/common/borgbackup/templates/borgbackup-delete.sh
index 12d0e11f87abd265ead9e048b0305a83ad01fcdd..b42369dd757ac0b56c38e350837759ef546235d3 100644
--- a/common/borgbackup/templates/borgbackup-delete.sh
+++ b/common/borgbackup/templates/borgbackup-delete.sh
@@ -1,12 +1,24 @@
 #!/bin/bash
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
 
 # Löschen eines Backups
 
-borg list $1 $2 $3 --info --show-rc {{repo_url}}
+echo "Available Repos: "
+
+{% for repo_url in borgbackup_repos %}
+echo "{{repo_url}}"
+{% endfor %}
+
+echo "RepoName, followed by [ENTER]:"
+read repo_url
+
+echo "Available Backups: "
+
+borg list $1 $2 $3 --info --show-rc --remote-path borg1 $repo_url
 
 echo "BackupName, followed by [ENTER]:"
 read target
 
-borg delete $1 $2 $3 --info --show-rc {{repo_url}}::$target
+borg delete $1 $2 $3 --info --show-rc --remote-path borg1 $repo_url::$target
diff --git a/common/borgbackup/templates/borgbackup-info.sh b/common/borgbackup/templates/borgbackup-info.sh
index a311726275efcc8edca20e0d32da11057c0f3447..d0d14f2db512af7a434cf04f2390a80c81028839 100644
--- a/common/borgbackup/templates/borgbackup-info.sh
+++ b/common/borgbackup/templates/borgbackup-info.sh
@@ -1,12 +1,29 @@
 #!/bin/bash
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
 
-#  Anzeige des Inhaltes im Borg Backup Archiv
+#  Anzeige des Inhaltes in den Borg Backup Archiven
 
-borg list $1 $2 $3 --info --show-rc {{repo_url}}
+{% for repo_url in borgbackup_repos %}
 
-echo "BackupName, followed by [ENTER]:"
-read target
+BACKUPS=$(borg list $1 $2 $3 --info --show-rc --remote-path borg1 {{repo_url}})
+
+echo "============================================="
+echo "Backups List "
+echo "$BACKUPS"
+
+BACKUPS_LIST=$(echo "$BACKUPS" | awk '{print $1}')
+
+for BACKUP in $BACKUPS_LIST; do
+
+  echo "============================================="
+
+  borg info $1 $2 $3 --info --show-rc --remote-path borg1 {{repo_url}}::$BACKUP
+
+done
+
+echo "============================================="
+
+{% endfor %}
 
-borg info $1 $2 $3 --info --show-rc {{repo_url}}::$target
diff --git a/common/borgbackup/templates/borgbackup-init.sh b/common/borgbackup/templates/borgbackup-init.sh
index 8e97c70ce30ff94f43354423c50c5d3a31ce4e24..7d12e5b75e98c156f2bb41854769db1cabe5a431 100644
--- a/common/borgbackup/templates/borgbackup-init.sh
+++ b/common/borgbackup/templates/borgbackup-init.sh
@@ -1,7 +1,23 @@
 #!/bin/bash
 
-# Initialisierung des Borg Backup Archives
+# Initialisierung der Borg Backup Archives
+# Der SSH key aus /srv/borgbackup/repo_sshkey muss vorher auf den Backupserver übertragen werden 
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
 
-borg init $1 $2 $3 --info --show-rc --encryption=repokey {{repo_url}} 
+{% for repo_url in borgbackup_repos %}
+
+if [ ! -e "{{repo_url}}.initialized" ]; then
+
+  echo "Initialize Repo: {{repo_url}}"
+  date > "{{repo_url}}.initialized"
+
+  borg init $1 $2 $3 --info --show-rc --remote-path borg1 --encryption=repokey {{repo_url}} 
+else
+  
+  echo "Repo already initialized: {{repo_url}}"
+
+fi
+
+{% endfor %}
diff --git a/common/borgbackup/templates/borgbackup-list.sh b/common/borgbackup/templates/borgbackup-list.sh
index 07bd9086ce2f8169532fd9c2d59c3ec68524544f..6d0fe73938e2fd2f58706ba058d4ff0e45d2ec41 100644
--- a/common/borgbackup/templates/borgbackup-list.sh
+++ b/common/borgbackup/templates/borgbackup-list.sh
@@ -1,7 +1,14 @@
 #!/bin/bash
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
 
-# Anzeige des Inhaltes im Borg Backup Archiv
+# Anzeige des Inhaltes in den Borg Backup Archiven
+
+{% for repo_url in borgbackup_repos %}
+
+echo "===[ List Repo: {{repo_url}} ]============================================================"
+borg list $1 $2 $3 --info --show-rc --remote-path borg1 {{repo_url}} 
+
+{% endfor %}
 
-borg list $1 $2 $3 --info --show-rc {{repo_url}} 
diff --git a/common/borgbackup/templates/borgbackup-mount.sh b/common/borgbackup/templates/borgbackup-mount.sh
index 7b79b686c1594d9c1013c599a797bce7c3f62a38..86e2e0e973e2544b69e2df1929da34f12410e85a 100644
--- a/common/borgbackup/templates/borgbackup-mount.sh
+++ b/common/borgbackup/templates/borgbackup-mount.sh
@@ -1,8 +1,21 @@
 #!/bin/bash
 
 export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
 
-# Einhängen eines Backups nach /mnt/
+# Einhängen der Repos in /mnt/
+
+echo "Available Repos: "
+
+{% for repo_url in borgbackup_repos %}
+echo "{{repo_url}}"
+{% endfor %}
+
+echo "RepoName, followed by [ENTER]:"
+read repo_url
+
+echo -n 'Mounting to: /mnt'
+
+mkdir /mnt/
+borg mount $1 $2 $3 --info --show-rc --remote-path borg1 $repo_url /mnt/
 
-echo -n 'Mounting to: /mnt/borbbackupmount'
-borg mount $1 $2 $3 --info --show-rc {{repo_url}} /mnt/borbbackupmount
diff --git a/common/borgbackup/templates/borgbackup-prometheus.sh b/common/borgbackup/templates/borgbackup-prometheus.sh
new file mode 100644
index 0000000000000000000000000000000000000000..c5c4cd9f0b83b946a402399afae4c55352c1cae6
--- /dev/null
+++ b/common/borgbackup/templates/borgbackup-prometheus.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+export BORG_PASSPHRASE="{{repo_passphrase}}"
+export BORG_RSH="ssh -i /srv/borgbackup/repo_sshkey"
+
+# Metrics output file in the prometheus node-exporter directory 
+PROM_FILE="/var/lib/prometheus/node-exporter/borgbackup.prom"
+
+#  Borgbackup statistiken für Prometheus erstellen 
+
+function calc_bytes {
+	NUM=$1
+	UNIT=$2
+	
+	case "$UNIT" in
+		kB)
+			echo $NUM | awk '{ print $1 * 1024 }'
+			;;
+		MB)
+			echo $NUM | awk '{ print $1 * 1024 * 1024 }'
+			;;
+		GB)
+			echo $NUM | awk '{ print $1 * 1024 * 1024 * 1024 }'
+			;;
+		TB)
+			echo $NUM | awk '{ print $1 * 1024 * 1024 * 1024 * 1024 }'
+			;;
+	esac
+}
+
+echo "borgbackup_repos_count {{borgbackup_repos|length}}" > $TMP_FILE
+
+{% for repo_url in borgbackup_repos %}
+
+BACKUPS=$(borg list --remote-path borg1 {{repo_url}})
+BACKUPS_LIST=$(echo "$BACKUPS" | awk '{print $1}')
+COUNTER=0
+
+for BACKUP in $BACKUPS_LIST; do
+
+  COUNTER=$((COUNTER+1))
+
+done
+
+BORG_INFO=$(borg info --remote-path borg1 {{repo_url}}::$BACKUP)
+
+# create temp file 
+TMP_FILE=$(mktemp)
+
+echo "borgbackup_count{repo="{{ repo_url }}"} $COUNTER" > $TMP_FILE
+echo "borgbackup_files{repo="{{ repo_url }}"} $(echo "$BORG_INFO" | grep "Number of files" | awk '{print $4}')" >> $TMP_FILE
+echo "borgbackup_chunks_unique{repo="{{ repo_url }}"} $(echo "$BORG_INFO" | grep "Chunk index" | awk '{print $3}')" >> $TMP_FILE
+echo "borgbackup_chunks_total{repo="{{ repo_url }}"} $(echo "$BORG_INFO" | grep "Chunk index" | awk '{print $4}')" >> $TMP_FILE
+
+# byte size calculation 
+LAST_SIZE=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $3}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $4}'))
+LAST_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $5}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $6}'))
+LAST_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $7}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $8}'))
+TOTAL_SIZE=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $3}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $4}'))
+TOTAL_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $5}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $6}'))
+TOTAL_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $7}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $8}'))
+
+echo "borgbackup_last_size{repo="{{ repo_url }}"} $LAST_SIZE" >> $TMP_FILE
+echo "borgbackup_last_size_compressed{repo="{{ repo_url }}"} $LAST_SIZE_COMPRESSED" >> $TMP_FILE
+echo "borgbackup_last_size_dedup{repo="{{ repo_url }}"} $LAST_SIZE_DEDUP" >> $TMP_FILE
+echo "borgbackup_total_size{repo="{{ repo_url }}"} $TOTAL_SIZE" >> $TMP_FILE
+echo "borgbackup_total_size_compressed{repo="{{ repo_url }}"} $TOTAL_SIZE_COMPRESSED" >> $TMP_FILE
+echo "borgbackup_total_size_dedup{repo="{{ repo_url }}"} $TOTAL_SIZE_DEDUP" >> $TMP_FILE
+
+{% endfor %}
+
+# move temp file to output file 
+mv $TMP_FILE $PROM_FILE
+chown prometheus:prometheus $PROM_FILE
+ 
+echo "created BorgBackup statistic for $COUNTER backups in $PROM_FILE"
+