diff --git a/Ansible/roles/debian_server/files/dvb.service b/Ansible/roles/debian_server/files/dvb.service
index 37617a3ea35fc2d5d5708cda417ab4c209799aa9..199fe302849b71e6c3008e75ae6c4eb2c93d3bb1 100644
--- a/Ansible/roles/debian_server/files/dvb.service
+++ b/Ansible/roles/debian_server/files/dvb.service
@@ -3,6 +3,7 @@
 Description=Docker volume backup (dvb)
 ConditionACPower=true
 After=local-fs.target
+OnFailure=failure-notify@%n.service
 
 [Service]
 Type=exec
diff --git a/Ansible/roles/debian_server/files/failure-handler@.service b/Ansible/roles/debian_server/files/failure-handler@.service
new file mode 100644
index 0000000000000000000000000000000000000000..76681ee7065a6fa482925b5245ca8ca798440d81
--- /dev/null
+++ b/Ansible/roles/debian_server/files/failure-handler@.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Failure handler for %i
+
+[Service]
+Type=oneshot
+ExecStart=curl "https://notify.shore.co.il/send?message=Service%20$ifailed%20on%20%H."
diff --git a/Ansible/roles/debian_server/files/failure-notify@.service b/Ansible/roles/debian_server/files/failure-notify@.service
new file mode 100644
index 0000000000000000000000000000000000000000..3853c3b37410f05949b13741e9a3cde71be7dd12
--- /dev/null
+++ b/Ansible/roles/debian_server/files/failure-notify@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Send failure notice for %i
+After=network-online.target
+
+[Service]
+Type=oneshot
+ExecStart=curl https://notify.shore.co.il/send?message=Service%%20%i%%20on%%20%q%%20failed.
+DynamicUser=yes
+PrivateDevices=yes
+ProtectSystem=strict
+ProtectHome=yes
+PrivateTmp=yes
+PrivateIPC=yes
+ProtectProc=invisible
+PrivateUsers=yes
diff --git a/Ansible/roles/debian_server/tasks/main.yml b/Ansible/roles/debian_server/tasks/main.yml
index a3a34e326797597949a2f627acfefe129359630b..19dc3870cd8a52d319a7379106643c4df1571d2f 100644
--- a/Ansible/roles/debian_server/tasks/main.yml
+++ b/Ansible/roles/debian_server/tasks/main.yml
@@ -148,3 +148,42 @@
         - toolbx
   tags:
     - always
+
+- name: Add the failure notify service
+  ansible.builtin.copy:
+    dest: /etc/systemd/system/
+    group: root
+    mode: preserve
+    owner: root
+    src: failure-notify@.service
+  tags: [notify]
+  notify:
+    - Systemd daemon reload
+
+- name: Create services drop-in directories for failure notifications
+  loop: &notify_failure_units
+    - containerd.service
+    - cron.service
+    - docker.service
+    - rsyslog.service
+    - ssh.service
+    - systemd-networkd.service
+    - systemd-timesyncd.service
+    - ufw.service
+  ansible.builtin.file:
+    path: /etc/systemd/system/{{ item }}.d
+    mode: 0o0755
+    state: directory
+  tags: [notify]
+
+- name: Add failure notification to services
+  loop: *notify_failure_units
+  ansible.builtin.copy:
+    content: |
+      [Unit]
+      OnFailure=failure-notify@%n.service
+    dest: /etc/systemd/system/{{ item }}.d/failure-notify.conf
+    mode: 0o0644
+  tags: [notify]
+  notify:
+    - Systemd daemon reload
diff --git a/Ansible/roles/debian_server/tasks/maintenance.yml b/Ansible/roles/debian_server/tasks/maintenance.yml
index ca0e82ab99bc93c8fd4dc6ea136e649b0838191c..47e722d6c76551c8e1adf60a91ade53a83469087 100644
--- a/Ansible/roles/debian_server/tasks/maintenance.yml
+++ b/Ansible/roles/debian_server/tasks/maintenance.yml
@@ -60,3 +60,9 @@
     name: '{{ item["name"] }}'
   notify:
     - Systemd daemon reload
+
+- name: Create the directory for service overrides
+  ansible.builtin.file:
+    mode: 0o0755
+    path: /etc/systemd/system/service.d
+    state: directory
diff --git a/Ansible/roles/debian_server/templates/btrfs_check.service.j2 b/Ansible/roles/debian_server/templates/btrfs_check.service.j2
index d7199892a5ca08e1134cd307965d45be45bc689d..7dd59b75d6b00262690dcb41644da854682c4e63 100644
--- a/Ansible/roles/debian_server/templates/btrfs_check.service.j2
+++ b/Ansible/roles/debian_server/templates/btrfs_check.service.j2
@@ -3,6 +3,7 @@
 Description=Check btrfs device {{ device }}
 After=local-fs.target
 After=network-online.target
+OnFailure=failure-notify@%n.service
 
 [Service]
 Type=exec
diff --git a/Ansible/roles/debian_server/templates/btrfs_scrub.service.j2 b/Ansible/roles/debian_server/templates/btrfs_scrub.service.j2
index 363628acf603a2c53f392f0cf969244d09893b8d..4278f5293896342464946206fc0d70406c8b12ee 100644
--- a/Ansible/roles/debian_server/templates/btrfs_scrub.service.j2
+++ b/Ansible/roles/debian_server/templates/btrfs_scrub.service.j2
@@ -3,6 +3,7 @@
 Description=Scrub btrfs device {{ device }}
 ConditionACPower=true
 After=local-fs.target
+OnFailure=failure-notify@%n.service
 
 [Service]
 Type=exec
diff --git a/Ansible/roles/debian_server/templates/maintenance-task.service.j2 b/Ansible/roles/debian_server/templates/maintenance-task.service.j2
index dc2c57cbc92b036d46dbca0f52ab4c9d50f56b26..109ea5e8930e0cffa86d49fc0af98fa3df053c33 100644
--- a/Ansible/roles/debian_server/templates/maintenance-task.service.j2
+++ b/Ansible/roles/debian_server/templates/maintenance-task.service.j2
@@ -4,6 +4,7 @@ Description={{ description|default(name) }}
 ConditionACPower=true
 After=local-fs.target
 After=network-online.target
+OnFailure=failure-notify@%n.service
 
 [Service]
 Type=exec