diff --git a/server/notification-providers/techulus-push.js b/server/notification-providers/techulus-push.js
new file mode 100644
index 00000000..b6919da5
--- /dev/null
+++ b/server/notification-providers/techulus-push.js
@@ -0,0 +1,23 @@
+const NotificationProvider = require("./notification-provider");
+const axios = require("axios");
+
+class TechulusPush extends NotificationProvider {
+
+ name = "PushByTechulus";
+
+ async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+ let okMsg = "Sent Successfully.";
+
+ try {
+ await axios.post(`https://push.techulus.com/api/v1/notify/${notification.pushAPIKey}`, {
+ "title": "Uptime-Kuma",
+ "body": msg
+ })
+ return okMsg;
+ } catch (error) {
+ this.throwGeneralAxiosError(error)
+ }
+ }
+}
+
+module.exports = TechulusPush;
diff --git a/server/notification.js b/server/notification.js
index 4d72c81c..c66f175d 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -12,6 +12,7 @@ const ClickSendSMS = require("./notification-providers/clicksendsms");
const Pushbullet = require("./notification-providers/pushbullet");
const Pushover = require("./notification-providers/pushover");
const Pushy = require("./notification-providers/pushy");
+const TechulusPush = require("./notification-providers/techulus-push");
const RocketChat = require("./notification-providers/rocket-chat");
const Signal = require("./notification-providers/signal");
const Slack = require("./notification-providers/slack");
@@ -55,6 +56,7 @@ class Notification {
new Pushbullet(),
new Pushover(),
new Pushy(),
+ new TechulusPush(),
new RocketChat(),
new Signal(),
new Slack(),
@@ -90,6 +92,7 @@ class Notification {
* Throw Error with fail msg
*/
static async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+ console.log("this.providerList[notification.type]", this.providerList[notification.type])
if (this.providerList[notification.type]) {
return this.providerList[notification.type].send(notification, msg, monitorJSON, heartbeatJSON);
} else {
diff --git a/src/components/notifications/TechulusPush.vue b/src/components/notifications/TechulusPush.vue
new file mode 100644
index 00000000..918f8be6
--- /dev/null
+++ b/src/components/notifications/TechulusPush.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ https://docs.push.techulus.com
+
+
+
+
diff --git a/src/components/notifications/index.js b/src/components/notifications/index.js
index 03945f90..da21ee3f 100644
--- a/src/components/notifications/index.js
+++ b/src/components/notifications/index.js
@@ -9,6 +9,7 @@ import RocketChat from "./RocketChat.vue";
import Teams from "./Teams.vue";
import Pushover from "./Pushover.vue";
import Pushy from "./Pushy.vue";
+import TechulusPush from "./TechulusPush.vue";
import Octopush from "./Octopush.vue";
import PromoSMS from "./PromoSMS.vue";
import ClickSendSMS from "./ClickSendSMS.vue";
@@ -44,6 +45,7 @@ const NotificationFormList = {
"rocket.chat": RocketChat,
"pushover": Pushover,
"pushy": Pushy,
+ "PushByTechulus": TechulusPush,
"octopush": Octopush,
"promosms": PromoSMS,
"clicksendsms": ClickSendSMS,
diff --git a/src/languages/en.js b/src/languages/en.js
index 47513466..4acc59fa 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -238,6 +238,7 @@ export default {
"rocket.chat": "Rocket.Chat",
pushover: "Pushover",
pushy: "Pushy",
+ PushByTechulus: "Push by Techulus",
octopush: "Octopush",
promosms: "PromoSMS",
clicksendsms: "ClickSend SMS",