From 532ad3044cb3e0b7e7771863c2d871f45b1e22b5 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Thu, 2 Sep 2021 21:55:25 +0800
Subject: [PATCH 01/29] Add space to pushbullet and lunasea notifications
Start changes regarding standardization of notification messages
---
server/notification.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 472012af7..9417e733e 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -491,7 +491,7 @@ class Notification {
if (heartbeatJSON["status"] == 0) {
let downdata = {
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, downdata)
@@ -500,7 +500,7 @@ class Notification {
if (heartbeatJSON["status"] == 1) {
let updata = {
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, updata)
@@ -530,14 +530,14 @@ class Notification {
} else if (heartbeatJSON["status"] == 0) {
let downdata = {
"type": "note",
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
} else if (heartbeatJSON["status"] == 1) {
let updata = {
"type": "note",
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, updata, config)
From dca5c59982f35a2dc29b1e61f25da198f28cfb30 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:24:43 +0800
Subject: [PATCH 02/29] Update lunasea body content
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index 9417e733e..fb132cedb 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -492,7 +492,7 @@ class Notification {
if (heartbeatJSON["status"] == 0) {
let downdata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, downdata)
return okMsg;
From 3bf380c684a902b8c5f5d1f6a76536fa0ca5c98d Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:10 +0800
Subject: [PATCH 03/29] Update lunasea "up" body content
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index fb132cedb..274f99cb1 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -501,7 +501,7 @@ class Notification {
if (heartbeatJSON["status"] == 1) {
let updata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, updata)
return okMsg;
From d346afd33bb2e349c4f8f08fb3b6d201bab208e2 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:38 +0800
Subject: [PATCH 04/29] Update pushbullet up body
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index 274f99cb1..fecc639c1 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -538,7 +538,7 @@ class Notification {
let updata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, updata, config)
}
From 9c32adfb55bb629bf32b665afb1bece1c9e36da1 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:44 +0800
Subject: [PATCH 05/29] Update pushbullet down body
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index fecc639c1..b9eba5a01 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -531,7 +531,7 @@ class Notification {
let downdata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
} else if (heartbeatJSON["status"] == 1) {
From 6ae279c7f387ffe79a9341eaa9c11e9257d2989f Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:06:06 +0800
Subject: [PATCH 06/29] Move title generation to notification class
---
server/model/monitor.js | 11 +----------
server/notification.js | 14 +++++++++++++-
server/server.js | 2 +-
3 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/server/model/monitor.js b/server/model/monitor.js
index 19f21d924..126d59b1e 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -270,18 +270,9 @@ class Monitor extends BeanModel {
this.id,
])
- let text;
- if (bean.status === UP) {
- text = "✅ Up"
- } else {
- text = "🔴 Down"
- }
-
- let msg = `[${this.name}] [${text}] ${bean.msg}`;
-
for (let notification of notificationList) {
try {
- await Notification.send(JSON.parse(notification.config), msg, await this.toJSON(), bean.toJSON())
+ await Notification.send(JSON.parse(notification.config), this.name, await this.toJSON(), bean.toJSON())
} catch (e) {
console.error("Cannot send notification to " + notification.name);
console.log(e);
diff --git a/server/notification.js b/server/notification.js
index b9eba5a01..42c4627d8 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -15,9 +15,21 @@ class Notification {
* @returns {Promise} Successful msg
* Throw Error with fail msg
*/
- static async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+ static async send(notification, monitorName = null, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully. ";
+ let msg = `[${notification.name}] Testing`;
+ // heartbeatJSON is only defined if we're not testing
+ if(heartbeatJSON) {
+ let text;
+ if (heartbeatJSON["status"] === 1) {
+ text = "✅ Up"
+ } else {
+ text = "🔴 Down"
+ }
+ msg = `[${monitorName}] [${text}] ${heartbeatJSON["msg"]}`;
+ }
+
if (notification.type === "telegram") {
try {
await axios.get(`https://api.telegram.org/bot${notification.telegramBotToken}/sendMessage`, {
diff --git a/server/server.js b/server/server.js
index 39191de79..8f4516dc0 100644
--- a/server/server.js
+++ b/server/server.js
@@ -552,7 +552,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
try {
checkLogin(socket)
- let msg = await Notification.send(notification, notification.name + " Testing")
+ let msg = await Notification.send(notification)
callback({
ok: true,
From e9cd9be03abc36f0d6b03df38fcc726a7acfa057 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:09:34 +0800
Subject: [PATCH 07/29] Use constants for UP/DOWN through notifications class
---
server/notification.js | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 42c4627d8..520d78dd9 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -4,6 +4,8 @@ const FormData = require("form-data");
const nodemailer = require("nodemailer");
const child_process = require("child_process");
+const { UP, DOWN } = require("../src/util");
+
class Notification {
/**
@@ -22,7 +24,7 @@ class Notification {
// heartbeatJSON is only defined if we're not testing
if(heartbeatJSON) {
let text;
- if (heartbeatJSON["status"] === 1) {
+ if (heartbeatJSON["status"] === UP) {
text = "✅ Up"
} else {
text = "🔴 Down"
@@ -121,7 +123,7 @@ class Notification {
}
// If heartbeatJSON is not null, we go into the normal alerting loop.
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let discorddowndata = {
username: discordDisplayName,
embeds: [{
@@ -151,7 +153,7 @@ class Notification {
await axios.post(notification.discordWebhookUrl, discorddowndata)
return okMsg;
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let discordupdata = {
username: discordDisplayName,
embeds: [{
@@ -355,7 +357,7 @@ class Notification {
const mattermostIconEmoji = notification.mattermosticonemo;
const mattermostIconUrl = notification.mattermosticonurl;
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let mattermostdowndata = {
username: mattermostUserName,
text: "Uptime Kuma Alert",
@@ -399,7 +401,7 @@ class Notification {
mattermostdowndata
);
return okMsg;
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let mattermostupdata = {
username: mattermostUserName,
text: "Uptime Kuma Alert",
@@ -501,7 +503,7 @@ class Notification {
return okMsg;
}
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let downdata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
@@ -510,7 +512,7 @@ class Notification {
return okMsg;
}
- if (heartbeatJSON["status"] == 1) {
+ if (heartbeatJSON["status"] == UP) {
let updata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
@@ -539,14 +541,14 @@ class Notification {
"body": "Testing Successful.",
}
await axios.post(pushbulletUrl, testdata, config)
- } else if (heartbeatJSON["status"] == 0) {
+ } else if (heartbeatJSON["status"] == DOWN) {
let downdata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let updata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
@@ -578,7 +580,7 @@ class Notification {
]
}
await axios.post(lineAPIUrl, testMessage, config)
- } else if (heartbeatJSON["status"] == 0) {
+ } else if (heartbeatJSON["status"] == DOWN) {
let downMessage = {
"to": notification.lineUserID,
"messages": [
@@ -589,7 +591,7 @@ class Notification {
]
}
await axios.post(lineAPIUrl, downMessage, config)
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let upMessage = {
"to": notification.lineUserID,
"messages": [
From b0acda52f9b6b47aedb3ce1b05ea78d73c6b7be0 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:27:18 +0800
Subject: [PATCH 08/29] Add time to smtp body content
---
server/notification.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 520d78dd9..beb1ff9d0 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -94,7 +94,7 @@ class Notification {
}
} else if (notification.type === "smtp") {
- return await Notification.smtp(notification, msg)
+ return await Notification.smtp(notification, msg, heartbeatJSON)
} else if (notification.type === "discord") {
try {
@@ -648,7 +648,7 @@ class Notification {
await R.trash(bean)
}
- static async smtp(notification, msg) {
+ static async smtp(notification, msg, heartbeatJSON = null) {
const config = {
host: notification.smtpHost,
@@ -666,12 +666,17 @@ class Notification {
let transporter = nodemailer.createTransport(config);
+ let bodyTextContent = msg;
+ if(heartbeatJSON) {
+ bodyTextContent = `${msg}\nTime (UTC): ${heartbeatJSON["time"]}`;
+ }
+
// send mail with defined transport object
await transporter.sendMail({
from: `"Uptime Kuma" <${notification.smtpFrom}>`,
to: notification.smtpTo,
subject: msg,
- text: msg,
+ text: bodyTextContent,
});
return "Sent Successfully.";
From 41d32bb9dde554794613df002696841d6dceab1f Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 20:08:18 +0800
Subject: [PATCH 09/29] Undo parm changes
---
server/model/monitor.js | 11 ++++++++++-
server/notification.js | 14 +-------------
server/server.js | 2 +-
3 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/server/model/monitor.js b/server/model/monitor.js
index 126d59b1e..19f21d924 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -270,9 +270,18 @@ class Monitor extends BeanModel {
this.id,
])
+ let text;
+ if (bean.status === UP) {
+ text = "✅ Up"
+ } else {
+ text = "🔴 Down"
+ }
+
+ let msg = `[${this.name}] [${text}] ${bean.msg}`;
+
for (let notification of notificationList) {
try {
- await Notification.send(JSON.parse(notification.config), this.name, await this.toJSON(), bean.toJSON())
+ await Notification.send(JSON.parse(notification.config), msg, await this.toJSON(), bean.toJSON())
} catch (e) {
console.error("Cannot send notification to " + notification.name);
console.log(e);
diff --git a/server/notification.js b/server/notification.js
index beb1ff9d0..f78401d9b 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -17,21 +17,9 @@ class Notification {
* @returns {Promise} Successful msg
* Throw Error with fail msg
*/
- static async send(notification, monitorName = null, monitorJSON = null, heartbeatJSON = null) {
+ static async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully. ";
- let msg = `[${notification.name}] Testing`;
- // heartbeatJSON is only defined if we're not testing
- if(heartbeatJSON) {
- let text;
- if (heartbeatJSON["status"] === UP) {
- text = "✅ Up"
- } else {
- text = "🔴 Down"
- }
- msg = `[${monitorName}] [${text}] ${heartbeatJSON["msg"]}`;
- }
-
if (notification.type === "telegram") {
try {
await axios.get(`https://api.telegram.org/bot${notification.telegramBotToken}/sendMessage`, {
diff --git a/server/server.js b/server/server.js
index 8f4516dc0..39191de79 100644
--- a/server/server.js
+++ b/server/server.js
@@ -552,7 +552,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
try {
checkLogin(socket)
- let msg = await Notification.send(notification)
+ let msg = await Notification.send(notification, notification.name + " Testing")
callback({
ok: true,
From 5837c353b7689c573f03fe843ccc007f872e1335 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Sun, 5 Sep 2021 02:47:31 +0800
Subject: [PATCH 10/29] change the default theme to auto from light
---
src/mixins/theme.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mixins/theme.js b/src/mixins/theme.js
index 44e375327..b149e1113 100644
--- a/src/mixins/theme.js
+++ b/src/mixins/theme.js
@@ -11,7 +11,7 @@ export default {
mounted() {
// Default Light
if (! this.userTheme) {
- this.userTheme = "light";
+ this.userTheme = "auto";
}
// Default Heartbeat Bar
From 9952463350907aaf03ab9d944876145b4c96bc47 Mon Sep 17 00:00:00 2001
From: Misly <60405462+Misly16@users.noreply.github.com>
Date: Sat, 4 Sep 2021 20:38:53 +0000
Subject: [PATCH 11/29] Add Polish Locale
---
src/languages/pl.js | 112 +++++++++++++++++++++++++++++++++++++++++
src/main.js | 2 +
src/pages/Settings.vue | 5 ++
3 files changed, 119 insertions(+)
create mode 100644 src/languages/pl.js
diff --git a/src/languages/pl.js b/src/languages/pl.js
new file mode 100644
index 000000000..9e16011bc
--- /dev/null
+++ b/src/languages/pl.js
@@ -0,0 +1,112 @@
+export default {
+ languageName: "Polski",
+ checkEverySecond: "sprawdzaj co {0} sekund.",
+ "Avg.": "Średnia. ",
+ retriesDescription: "Maksymalna liczba ponownych prób, zanim usługa zostanie oznaczona jako offline i zostanie wysłane powiadomienie.",
+ ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS.",
+ upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest niedostępna.",
+ maxRedirectDescription: "Maksymalna liczba przekierowań do naśladowania. Ustaw na 0, aby wyłączyć przekierowania.",
+ acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.",
+ passwordNotMatchMsg: "Powtórzone hasło nie jest takie samo.",
+ notificationDescription: "Dodaj powiadomienie do monitorów, aby one działały.",
+ keywordDescription: "Wyszukaj słowo kluczowe w html lub JSON i wielkość liter ma znaczenie.",
+ pauseDashboardHome: "pauza",
+ deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?",
+ deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie ze wszystkich monitorów?",
+ resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w dowolnym momencie.",
+ rrtypeDescription: "Wybierz typ RR-Type który chcesz monitorować.",
+ pauseMonitorMsg: "Czy na pewno chcesz wstrzymać?",
+ Settings: "Ustawienia",
+ Dashboard: "Panel",
+ "New Update": "Nowa aktualizacja",
+ Language: "Język",
+ Appearance: "Wygląd",
+ Theme: "Motyw",
+ General: "Ogólne",
+ Version: "Versja",
+ "Check Update On GitHub": "Sprawdź aktualizację na GitHub.",
+ List: "Lista",
+ Add: "Dodaj",
+ "Add New Monitor": "Dodaj Nowy Monitor",
+ "Quick Stats": "Szybkie statystyki",
+ Up: "Online",
+ Down: "Offline",
+ Pending: "Oczekujący",
+ Unknown: "Nieznane",
+ Pause: "Pauza",
+ Name: "Nazwa",
+ Status: "Status",
+ DateTime: "Data i godzina",
+ Message: "Wiadomość",
+ "No important events": "Brak ważnych wydarzeń.",
+ Resume: "Wznów",
+ Edit: "Edytuj",
+ Delete: "Usuń",
+ Current: "aktualny",
+ Uptime: "czas pracy",
+ "Cert Exp.": "Wygaśnięcie certyfikatu.",
+ days: "dni",
+ day: "dzień",
+ "-day": "-dzień",
+ hour: "godzina",
+ "-hour": "-godzina",
+ Response: "odpowiedź",
+ Ping: "Ping",
+ "Monitor Type": "Typ monitora",
+ Keyword: "słowo kluczowe",
+ "Friendly Name": "Przyjazne imię",
+ URL: "URL",
+ Hostname: "Hostname",
+ Port: "Port",
+ "Heartbeat Interval": "Interwał bicia serca",
+ Retries: "Prób",
+ Advanced: "Zaawansowane",
+ "Upside Down Mode": "Tryb do góry nogami",
+ "Max. Redirects": "Maks. Przekierowania",
+ "Accepted Status Codes": "Akceptowane kody statusu",
+ Save: "Zapisz",
+ Notifications: "Powiadomienia",
+ "Not available, please setup.": "Niedostępne, proszę skonfigurować.",
+ "Setup Notification": "Powiadomienie konfiguracji",
+ Light: "Jasny",
+ Dark: "Ciemny",
+ Auto: "Automatyczny",
+ "Theme - Heartbeat Bar": "Motyw - pasek bicia serca",
+ Normal: "Normalne",
+ Bottom: "Na dole",
+ None: "Nic",
+ Timezone: "Strefa czasowa",
+ "Search Engine Visibility": "Widoczność w wyszukiwarce",
+ "Allow indexing": "Zezwól na indeksowanie",
+ "Discourage search engines from indexing site": "Zniechęcaj wyszukiwarki do indeksowania strony",
+ "Change Password": "Zmień hasło",
+ "Current Password": "Aktualne hasło",
+ "New Password": "Nowe hasło",
+ "Repeat New Password": "Powtórz nowe hasło",
+ "Update Password": "Zaktualizuj hasło",
+ "Disable Auth": "Wyłącz autoryzację",
+ "Enable Auth": "Włącz autoryzację ",
+ Logout: "Wyloguj się",
+ Leave: "Opuść",
+ "I understand, please disable": "Rozumiem, proszę wyłączyć",
+ Confirm: "Potwierdź",
+ Yes: "Tak",
+ No: "Nie",
+ Username: "Nazwa użytkownika",
+ Password: "Hasło",
+ "Remember me": "Zapamiętaj mnie",
+ Login: "Zaloguj sie",
+ "No Monitors, please": "Proszę bez monitorów",
+ "add one": "dodaj jeden",
+ "Notification Type": "Typ powiadomienia",
+ Email: "Email",
+ Test: "Test",
+ "Certificate Info": "Informacje o certyfikacie",
+ "Resolver Server": "Server resolver",
+ "Resource Record Type": "Typ rekordu zasobów",
+ "Last Result": "Ostatni rekord",
+ "Create your admin account": "Utwórz swoje konto administratora",
+ "Repeat Password": "Powtórz hasło",
+ respTime: "Odp. Czas (ms)",
+ notAvailableShort: "N/A"
+}
diff --git a/src/main.js b/src/main.js
index 8f5e0a916..7ad9db089 100644
--- a/src/main.js
+++ b/src/main.js
@@ -37,6 +37,7 @@ import svSE from "./languages/sv-SE";
import koKR from "./languages/ko-KR";
import ruRU from "./languages/ru-RU";
import zhCN from "./languages/zh-CN";
+import pl from "./languages/pl"
const routes = [
{
@@ -114,6 +115,7 @@ const languageList = {
"ko-KR": koKR,
"ru-RU": ruRU,
"zh-CN": zhCN,
+ "pl": pl,
};
const i18n = createI18n({
diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue
index 705642137..83384ca80 100644
--- a/src/pages/Settings.vue
+++ b/src/pages/Settings.vue
@@ -213,6 +213,11 @@
이 기능은 Cloudflare Access와 같은 서드파티 인증을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.
신중하게 사용하세요.
+
+ Czy na pewno chcesz wyłączyć autoryzację?
+ Jest przeznaczony dla kogoś, kto ma autoryzację zewnętrzną przed Uptime Kuma, taką jak Cloudflare Access.
+ Proszę używać ostrożnie.
+
From 1b8b33c4c3e585b002570bf903d883f6ca42cb1e Mon Sep 17 00:00:00 2001
From: Ponkhy
Date: Sun, 5 Sep 2021 15:40:35 +0200
Subject: [PATCH 12/29] Added set language to the Setup.vue
---
src/languages/de-DE.js | 3 ++-
src/languages/en.js | 3 ++-
src/pages/Setup.vue | 16 +++++++++++++++-
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index 76c355a3b..1f8eb055b 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -108,5 +108,6 @@ export default {
"Repeat Password": "Wiederhole das Passwort",
"Resource Record Type": "Resource Record Type",
respTime: "Antw. Zeit (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Erstellen",
}
diff --git a/src/languages/en.js b/src/languages/en.js
index f0e4ae969..6a4f5e2f3 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Create your admin account",
"Repeat Password": "Repeat Password",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create",
}
diff --git a/src/pages/Setup.vue b/src/pages/Setup.vue
index 756aff365..dbff86837 100644
--- a/src/pages/Setup.vue
+++ b/src/pages/Setup.vue
@@ -14,6 +14,15 @@
+
+
+
+
+
@@ -29,7 +38,7 @@
@@ -49,6 +58,11 @@ export default {
repeatPassword: "",
}
},
+ watch: {
+ "$i18n.locale"() {
+ localStorage.locale = this.$i18n.locale;
+ },
+ },
mounted() {
this.$root.getSocket().emit("needSetup", (needSetup) => {
if (! needSetup) {
From 899b33b3a966017a17cd5e3c45c5044fa4554015 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Mon, 6 Sep 2021 01:31:05 +0800
Subject: [PATCH 13/29] add language missing keys
---
src/languages/da-DK.js | 3 ++-
src/languages/es-ES.js | 3 ++-
src/languages/fr.js | 3 ++-
src/languages/ja.js | 3 ++-
src/languages/ko-KR.js | 3 ++-
src/languages/nl-NL.js | 3 ++-
src/languages/pl.js | 3 ++-
src/languages/ru-RU.js | 3 ++-
src/languages/sr-latn.js | 3 ++-
src/languages/sr.js | 3 ++-
src/languages/sv-SE.js | 3 ++-
src/languages/zh-CN.js | 3 ++-
src/languages/zh-HK.js | 3 ++-
13 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js
index 713eecfe2..050f31e40 100644
--- a/src/languages/da-DK.js
+++ b/src/languages/da-DK.js
@@ -108,5 +108,6 @@ export default {
"Repeat Password": "Gentag adgangskoden",
"Resource Record Type": "Resource Record Type",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js
index 96ce923ec..4079991ee 100644
--- a/src/languages/es-ES.js
+++ b/src/languages/es-ES.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Crea tu cuenta de administrador",
"Repeat Password": "Repetir contraseña",
respTime: "Tiempo de resp. (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/fr.js b/src/languages/fr.js
index e4f999dce..4019b74d3 100644
--- a/src/languages/fr.js
+++ b/src/languages/fr.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Créez votre compte administrateur",
"Repeat Password": "Répéter le mot de passe",
respTime: "Temps de réponse (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ja.js b/src/languages/ja.js
index 23de640cf..51181cdf4 100644
--- a/src/languages/ja.js
+++ b/src/languages/ja.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Create your admin account",
"Repeat Password": "Repeat Password",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js
index 8493193cb..49a510f69 100644
--- a/src/languages/ko-KR.js
+++ b/src/languages/ko-KR.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "관리자 계정 만들기",
"Repeat Password": "비밀번호 재입력",
respTime: "응답 시간 (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 60c5089c9..0ab73bb9f 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Maak uw beheerdersaccount aan",
"Repeat Password": "Herhaal wachtwoord",
respTime: "resp. tijd (ms)",
- notAvailableShort: "N.v.t."
+ notAvailableShort: "N.v.t.",
+ Create: "Create"
}
diff --git a/src/languages/pl.js b/src/languages/pl.js
index 9e16011bc..25f76430d 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Utwórz swoje konto administratora",
"Repeat Password": "Powtórz hasło",
respTime: "Odp. Czas (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
index f42f9c256..96f6efab8 100644
--- a/src/languages/ru-RU.js
+++ b/src/languages/ru-RU.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Создайте аккаунт администратора",
"Repeat Password": "Повторите пароль",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js
index aa7d95cf9..defc78211 100644
--- a/src/languages/sr-latn.js
+++ b/src/languages/sr-latn.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Naprivi administratorski nalog",
"Repeat Password": "Ponovite lozinku",
respTime: "Vreme odg. (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sr.js b/src/languages/sr.js
index 0bd084036..d333210f9 100644
--- a/src/languages/sr.js
+++ b/src/languages/sr.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Наприви администраторски налог",
"Repeat Password": "Поновите лозинку",
respTime: "Време одг. (мс)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 8aa4e155b..d0015432d 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Skapa ditt administratörskonto",
"Repeat Password": "Upprepa Lösenord",
respTime: "Svarstid (ms)",
- notAvailableShort: "Ej Tillg."
+ notAvailableShort: "Ej Tillg.",
+ Create: "Create"
}
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index d179a91af..e47bd70a7 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "创建管理员账号",
"Repeat Password": "重复密码",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index 4bcc5029e..6dfc726ea 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "製作你的管理員帳號",
"Repeat Password": "重複密碼",
respTime: "反應時間 (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "建立"
}
From d4ff5d8b325571ebf4fe518bc09b9ac30cd51a95 Mon Sep 17 00:00:00 2001
From: Adam Stachowicz
Date: Sun, 5 Sep 2021 20:55:25 +0200
Subject: [PATCH 14/29] [LANG] `pl` fixes
---
src/languages/pl.js | 66 ++++++++++++++++++++++-----------------------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/languages/pl.js b/src/languages/pl.js
index 25f76430d..c95a1d6bc 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -1,20 +1,20 @@
export default {
languageName: "Polski",
- checkEverySecond: "sprawdzaj co {0} sekund.",
- "Avg.": "Średnia. ",
- retriesDescription: "Maksymalna liczba ponownych prób, zanim usługa zostanie oznaczona jako offline i zostanie wysłane powiadomienie.",
- ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS.",
+ checkEverySecond: "Sprawdzaj co {0} sekund.",
+ "Avg.": "Średnia ",
+ retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona i zostanie wysłane powiadomienie",
+ ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS",
upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest niedostępna.",
- maxRedirectDescription: "Maksymalna liczba przekierowań do naśladowania. Ustaw na 0, aby wyłączyć przekierowania.",
+ maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. Ustaw na 0, aby wyłączyć przekierowania.",
acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.",
- passwordNotMatchMsg: "Powtórzone hasło nie jest takie samo.",
- notificationDescription: "Dodaj powiadomienie do monitorów, aby one działały.",
- keywordDescription: "Wyszukaj słowo kluczowe w html lub JSON i wielkość liter ma znaczenie.",
- pauseDashboardHome: "pauza",
+ passwordNotMatchMsg: "Powtórzone hasło nie pasuje.",
+ notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałał.",
+ keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. Wielkość liter ma znaczenie.",
+ pauseDashboardHome: "Pauza",
deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?",
- deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie ze wszystkich monitorów?",
- resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w dowolnym momencie.",
- rrtypeDescription: "Wybierz typ RR-Type który chcesz monitorować.",
+ deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie dla wszystkich monitorów?",
+ resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w każdej chwili.",
+ rrtypeDescription: "Wybierz RR-Type który chcesz monitorować",
pauseMonitorMsg: "Czy na pewno chcesz wstrzymać?",
Settings: "Ustawienia",
Dashboard: "Panel",
@@ -23,11 +23,11 @@ export default {
Appearance: "Wygląd",
Theme: "Motyw",
General: "Ogólne",
- Version: "Versja",
+ Version: "Wersja",
"Check Update On GitHub": "Sprawdź aktualizację na GitHub.",
List: "Lista",
Add: "Dodaj",
- "Add New Monitor": "Dodaj Nowy Monitor",
+ "Add New Monitor": "Dodaj nowy monitor",
"Quick Stats": "Szybkie statystyki",
Up: "Online",
Down: "Offline",
@@ -38,46 +38,46 @@ export default {
Status: "Status",
DateTime: "Data i godzina",
Message: "Wiadomość",
- "No important events": "Brak ważnych wydarzeń.",
+ "No important events": "Brak ważnych wydarzeń",
Resume: "Wznów",
Edit: "Edytuj",
Delete: "Usuń",
Current: "aktualny",
- Uptime: "czas pracy",
- "Cert Exp.": "Wygaśnięcie certyfikatu.",
+ Uptime: "Czas pracy",
+ "Cert Exp.": "Wygaśnięcie certyfikatu",
days: "dni",
day: "dzień",
- "-day": "-dzień",
+ "-day": " dni",
hour: "godzina",
- "-hour": "-godzina",
- Response: "odpowiedź",
+ "-hour": " godziny",
+ Response: "Odpowiedź",
Ping: "Ping",
"Monitor Type": "Typ monitora",
- Keyword: "słowo kluczowe",
- "Friendly Name": "Przyjazne imię",
+ Keyword: "Słowo kluczowe",
+ "Friendly Name": "Przyjazna nazwa",
URL: "URL",
- Hostname: "Hostname",
+ Hostname: "Nazwa hosta",
Port: "Port",
"Heartbeat Interval": "Interwał bicia serca",
Retries: "Prób",
Advanced: "Zaawansowane",
"Upside Down Mode": "Tryb do góry nogami",
- "Max. Redirects": "Maks. Przekierowania",
+ "Max. Redirects": "Maks. przekierowania",
"Accepted Status Codes": "Akceptowane kody statusu",
Save: "Zapisz",
Notifications: "Powiadomienia",
"Not available, please setup.": "Niedostępne, proszę skonfigurować.",
- "Setup Notification": "Powiadomienie konfiguracji",
+ "Setup Notification": "Konfiguracja powiadomień",
Light: "Jasny",
Dark: "Ciemny",
Auto: "Automatyczny",
"Theme - Heartbeat Bar": "Motyw - pasek bicia serca",
Normal: "Normalne",
Bottom: "Na dole",
- None: "Nic",
+ None: "Brak",
Timezone: "Strefa czasowa",
"Search Engine Visibility": "Widoczność w wyszukiwarce",
- "Allow indexing": "Zezwól na indeksowanie",
+ "Allow indexing": "Pozwól na indeksowanie",
"Discourage search engines from indexing site": "Zniechęcaj wyszukiwarki do indeksowania strony",
"Change Password": "Zmień hasło",
"Current Password": "Aktualne hasło",
@@ -87,7 +87,7 @@ export default {
"Disable Auth": "Wyłącz autoryzację",
"Enable Auth": "Włącz autoryzację ",
Logout: "Wyloguj się",
- Leave: "Opuść",
+ Leave: "Zostaw",
"I understand, please disable": "Rozumiem, proszę wyłączyć",
Confirm: "Potwierdź",
Yes: "Tak",
@@ -95,8 +95,8 @@ export default {
Username: "Nazwa użytkownika",
Password: "Hasło",
"Remember me": "Zapamiętaj mnie",
- Login: "Zaloguj sie",
- "No Monitors, please": "Proszę bez monitorów",
+ Login: "Zaloguj się",
+ "No Monitors, please": "Brak monitorów, proszę",
"add one": "dodaj jeden",
"Notification Type": "Typ powiadomienia",
Email: "Email",
@@ -104,10 +104,10 @@ export default {
"Certificate Info": "Informacje o certyfikacie",
"Resolver Server": "Server resolver",
"Resource Record Type": "Typ rekordu zasobów",
- "Last Result": "Ostatni rekord",
+ "Last Result": "Ostatni wynik",
"Create your admin account": "Utwórz swoje konto administratora",
"Repeat Password": "Powtórz hasło",
- respTime: "Odp. Czas (ms)",
+ respTime: "Czas odp. (ms)",
notAvailableShort: "N/A",
- Create: "Create"
+ Create: "Stwórz"
}
From 424f20f8e125dd3cdfdfba2da5eff6fb5e523958 Mon Sep 17 00:00:00 2001
From: Adam Stachowicz
Date: Sun, 5 Sep 2021 20:59:04 +0200
Subject: [PATCH 15/29] Better `upsideDownModeDescription`
---
src/languages/pl.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/languages/pl.js b/src/languages/pl.js
index c95a1d6bc..f416d5083 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -4,7 +4,7 @@ export default {
"Avg.": "Średnia ",
retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona i zostanie wysłane powiadomienie",
ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS",
- upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest niedostępna.",
+ upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest oznaczona jako niedostępna.",
maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. Ustaw na 0, aby wyłączyć przekierowania.",
acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.",
passwordNotMatchMsg: "Powtórzone hasło nie pasuje.",
From dcc77991083da699be4e5f8e7ea8d1a2f7c5f0ac Mon Sep 17 00:00:00 2001
From: Minvinea
Date: Sun, 5 Sep 2021 21:34:32 +0200
Subject: [PATCH 16/29] Update few words and name of file
https://prnt.sc/1rbosiy
---
src/languages/{fr.js => fr-FR.js} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename src/languages/{fr.js => fr-FR.js} (99%)
diff --git a/src/languages/fr.js b/src/languages/fr-FR.js
similarity index 99%
rename from src/languages/fr.js
rename to src/languages/fr-FR.js
index 4019b74d3..d49d0191d 100644
--- a/src/languages/fr.js
+++ b/src/languages/fr-FR.js
@@ -66,7 +66,7 @@ export default {
"Theme - Heartbeat Bar": "Voir les services surveillés",
Normal: "Général",
Bottom: "En dessous",
- None: "Non",
+ None: "Rien",
Timezone: "Fuseau Horaire",
"Search Engine Visibility": "Visibilité par les moteurs de recherche",
"Allow indexing": "Autoriser l'indexation par des moteurs de recherche",
@@ -109,5 +109,5 @@ export default {
"Repeat Password": "Répéter le mot de passe",
respTime: "Temps de réponse (ms)",
notAvailableShort: "N/A",
- Create: "Create"
+ Create: "Créer"
}
From e8b814733d4ec8a9e7dea1bf688d487d9ab16643 Mon Sep 17 00:00:00 2001
From: Adam Stachowicz
Date: Sun, 5 Sep 2021 23:14:56 +0200
Subject: [PATCH 17/29] Fix typo
---
src/languages/pl.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/languages/pl.js b/src/languages/pl.js
index f416d5083..cc625d6de 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -8,7 +8,7 @@ export default {
maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. Ustaw na 0, aby wyłączyć przekierowania.",
acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.",
passwordNotMatchMsg: "Powtórzone hasło nie pasuje.",
- notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałał.",
+ notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałało.",
keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. Wielkość liter ma znaczenie.",
pauseDashboardHome: "Pauza",
deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?",
From 1197cfa11e923c658902ddd0281fce2725bb3456 Mon Sep 17 00:00:00 2001
From: Minvinea
Date: Sun, 5 Sep 2021 23:37:26 +0200
Subject: [PATCH 18/29] Update file name
---
src/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main.js b/src/main.js
index 7ad9db089..e8bc92bfc 100644
--- a/src/main.js
+++ b/src/main.js
@@ -28,7 +28,7 @@ import zhHK from "./languages/zh-HK";
import deDE from "./languages/de-DE";
import nlNL from "./languages/nl-NL";
import esEs from "./languages/es-ES";
-import fr from "./languages/fr";
+import frFR from "./languages/fr-FR";
import ja from "./languages/ja";
import daDK from "./languages/da-DK";
import sr from "./languages/sr";
From 31648dc5e8cf322f76b18841652f0042787e0b73 Mon Sep 17 00:00:00 2001
From: Minvinea
Date: Sun, 5 Sep 2021 23:41:57 +0200
Subject: [PATCH 19/29] Update #2
---
src/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main.js b/src/main.js
index e8bc92bfc..f34e9c43d 100644
--- a/src/main.js
+++ b/src/main.js
@@ -106,7 +106,7 @@ const languageList = {
"de-DE": deDE,
"nl-NL": nlNL,
"es-ES": esEs,
- "fr": fr,
+ "fr-FR": frFR,
"ja": ja,
"da-DK": daDK,
"sr": sr,
From edfaacbb5f07232eca182136e13d08838d12feba Mon Sep 17 00:00:00 2001
From: Ponkhy
Date: Tue, 7 Sep 2021 02:24:02 +0200
Subject: [PATCH 20/29] Added component HiddenInput.vue
---
src/components/HiddenInput.vue | 59 ++++++++++++++++++++++++++++++++++
src/icon.js | 4 +--
2 files changed, 61 insertions(+), 2 deletions(-)
create mode 100644 src/components/HiddenInput.vue
diff --git a/src/components/HiddenInput.vue b/src/components/HiddenInput.vue
new file mode 100644
index 000000000..5b2b77aec
--- /dev/null
+++ b/src/components/HiddenInput.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/src/icon.js b/src/icon.js
index 960fa8c18..58583f0f8 100644
--- a/src/icon.js
+++ b/src/icon.js
@@ -1,10 +1,10 @@
import { library } from "@fortawesome/fontawesome-svg-core"
-import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp } from "@fortawesome/free-solid-svg-icons"
+import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons"
//import { fa } from '@fortawesome/free-regular-svg-icons'
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"
// Add Free Font Awesome Icons here
// https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
-library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp);
+library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash);
export { FontAwesomeIcon }
From 848296b77a0877dd71c2b06f1e5fa07dd5f1f6d1 Mon Sep 17 00:00:00 2001
From: Ponkhy
Date: Tue, 7 Sep 2021 02:30:53 +0200
Subject: [PATCH 21/29] Changed input for sensitive data to HiddenInput
---
src/components/NotificationDialog.vue | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue
index 2fdb8fe18..8a79dba58 100644
--- a/src/components/NotificationDialog.vue
+++ b/src/components/NotificationDialog.vue
@@ -40,7 +40,7 @@
-
+
@@ -130,7 +130,7 @@
-
+
@@ -195,7 +195,7 @@
-
+
@@ -306,13 +306,13 @@
-
+
@@ -323,7 +323,7 @@
-
+
@@ -354,9 +354,9 @@
-
+
-
+
@@ -442,7 +442,7 @@
-
+
@@ -453,7 +453,7 @@
-
+
Line Developers Console -
Basic Settings
@@ -497,11 +497,13 @@ import { ucfirst } from "../util.ts"
import axios from "axios";
import { useToast } from "vue-toastification"
import Confirm from "./Confirm.vue";
+import HiddenInput from "./HiddenInput.vue";
const toast = useToast()
export default {
components: {
Confirm,
+ HiddenInput,
},
props: {},
data() {
From 5fe8a0917ac11ba7e68f9e35c581793568f51c72 Mon Sep 17 00:00:00 2001
From: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Date: Mon, 6 Sep 2021 22:20:12 -0400
Subject: [PATCH 22/29] Refactor Debian Dockerfile
---
dockerfile-debian | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/dockerfile-debian b/dockerfile-debian
index 7e0f79890..ea195d142 100644
--- a/dockerfile-debian
+++ b/dockerfile-debian
@@ -1,22 +1,20 @@
-# DON'T UPDATE TO alpine3.13, 1.14, see #41.
-FROM node:14-bullseye AS release
+FROM node:14-bullseye-slim AS release
+
WORKDIR /app
+COPY . .
-RUN apt update
-RUN apt --yes install python3 python3-pip python3-dev git g++ make
-RUN ln -s /usr/bin/python3 /usr/bin/python
-
-# split the sqlite install here, so that it can caches the arm prebuilt
+# install dependencies and apprise
+RUN apt update && \
+ apt --yes --no-install-recommends install python3 python3-pip iputils-ping git && \
+ ln -s /usr/bin/python3 /usr/bin/python && \
+ pip3 --no-cache-dir install apprise && \
+ rm -rf /root/.cache && \
+ apt clean
+
+# sqlite install here, so that it can caches the arm prebuilt
RUN npm install mapbox/node-sqlite3#593c9d
-# Install apprise
-RUN apt --yes install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib
-RUN pip3 --no-cache-dir install apprise && \
- rm -rf /root/.cache
-
-RUN apt --yes install iputils-ping
-
-COPY . .
+# Install app
RUN npm install --legacy-peer-deps && npm run build && npm prune
EXPOSE 3001
@@ -24,5 +22,6 @@ VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
CMD ["node", "server/server.js"]
+# Release
FROM release AS nightly
RUN npm run mark-as-nightly
From 66b5f157eb6562727714765bfdcda5c50eafb8ac Mon Sep 17 00:00:00 2001
From: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Date: Tue, 7 Sep 2021 00:13:07 -0400
Subject: [PATCH 23/29] Update Dockerfile order to improve layer caching.
---
dockerfile-debian | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/dockerfile-debian b/dockerfile-debian
index ea195d142..1e340d719 100644
--- a/dockerfile-debian
+++ b/dockerfile-debian
@@ -1,9 +1,5 @@
FROM node:14-bullseye-slim AS release
-WORKDIR /app
-COPY . .
-
-# install dependencies and apprise
RUN apt update && \
apt --yes --no-install-recommends install python3 python3-pip iputils-ping git && \
ln -s /usr/bin/python3 /usr/bin/python && \
@@ -11,10 +7,12 @@ RUN apt update && \
rm -rf /root/.cache && \
apt clean
-# sqlite install here, so that it can caches the arm prebuilt
+# split the sqlite install here, so that it can caches the arm prebuilt
RUN npm install mapbox/node-sqlite3#593c9d
-# Install app
+# Install uptime-kuma
+WORKDIR /app
+COPY . .
RUN npm install --legacy-peer-deps && npm run build && npm prune
EXPOSE 3001
@@ -22,6 +20,5 @@ VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
CMD ["node", "server/server.js"]
-# Release
FROM release AS nightly
RUN npm run mark-as-nightly
From ce30ee74e9d97a9a8fa5cc85c36a5ab62d8ff0af Mon Sep 17 00:00:00 2001
From: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Date: Tue, 7 Sep 2021 01:26:42 -0400
Subject: [PATCH 24/29] Revert changes breaking ARM releases
---
dockerfile-debian | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/dockerfile-debian b/dockerfile-debian
index 1e340d719..ba6cdde45 100644
--- a/dockerfile-debian
+++ b/dockerfile-debian
@@ -1,17 +1,18 @@
FROM node:14-bullseye-slim AS release
+WORKDIR /app
+
+# install dependencies
+RUN apt update && apt --yes install python3 python3-pip python3-dev git g++ make iputils-ping
+RUN ln -s /usr/bin/python3 /usr/bin/python
-RUN apt update && \
- apt --yes --no-install-recommends install python3 python3-pip iputils-ping git && \
- ln -s /usr/bin/python3 /usr/bin/python && \
- pip3 --no-cache-dir install apprise && \
- rm -rf /root/.cache && \
- apt clean
-
# split the sqlite install here, so that it can caches the arm prebuilt
RUN npm install mapbox/node-sqlite3#593c9d
-# Install uptime-kuma
-WORKDIR /app
+# Install apprise
+RUN apt --yes install python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib
+RUN pip3 --no-cache-dir install apprise && \
+ rm -rf /root/.cache
+
COPY . .
RUN npm install --legacy-peer-deps && npm run build && npm prune
From f5c6d422d5291cc9f0fdad4355d1a54a66ea4876 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Tue, 7 Sep 2021 15:31:32 +0800
Subject: [PATCH 25/29] switch debian to be the main docker base
---
dockerfile | 17 ++++++++---------
dockerfile-alpine | 26 ++++++++++++++++++++++++++
dockerfile-debian | 25 -------------------------
package.json | 4 ++--
4 files changed, 36 insertions(+), 36 deletions(-)
create mode 100644 dockerfile-alpine
delete mode 100644 dockerfile-debian
diff --git a/dockerfile b/dockerfile
index 8674b9993..ba6cdde45 100644
--- a/dockerfile
+++ b/dockerfile
@@ -1,18 +1,17 @@
-# DON'T UPDATE TO alpine3.13, 1.14, see #41.
-FROM node:14-alpine3.12 AS release
+FROM node:14-bullseye-slim AS release
WORKDIR /app
+# install dependencies
+RUN apt update && apt --yes install python3 python3-pip python3-dev git g++ make iputils-ping
+RUN ln -s /usr/bin/python3 /usr/bin/python
+
# split the sqlite install here, so that it can caches the arm prebuilt
-RUN apk add --no-cache --virtual .build-deps make g++ python3 python3-dev git && \
- ln -s /usr/bin/python3 /usr/bin/python && \
- npm install mapbox/node-sqlite3#593c9d && \
- apk del .build-deps && \
- rm -f /usr/bin/python
+RUN npm install mapbox/node-sqlite3#593c9d
# Install apprise
-RUN apk add --no-cache python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib
+RUN apt --yes install python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib
RUN pip3 --no-cache-dir install apprise && \
- rm -rf /root/.cache
+ rm -rf /root/.cache
COPY . .
RUN npm install --legacy-peer-deps && npm run build && npm prune
diff --git a/dockerfile-alpine b/dockerfile-alpine
new file mode 100644
index 000000000..8674b9993
--- /dev/null
+++ b/dockerfile-alpine
@@ -0,0 +1,26 @@
+# DON'T UPDATE TO alpine3.13, 1.14, see #41.
+FROM node:14-alpine3.12 AS release
+WORKDIR /app
+
+# split the sqlite install here, so that it can caches the arm prebuilt
+RUN apk add --no-cache --virtual .build-deps make g++ python3 python3-dev git && \
+ ln -s /usr/bin/python3 /usr/bin/python && \
+ npm install mapbox/node-sqlite3#593c9d && \
+ apk del .build-deps && \
+ rm -f /usr/bin/python
+
+# Install apprise
+RUN apk add --no-cache python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib
+RUN pip3 --no-cache-dir install apprise && \
+ rm -rf /root/.cache
+
+COPY . .
+RUN npm install --legacy-peer-deps && npm run build && npm prune
+
+EXPOSE 3001
+VOLUME ["/app/data"]
+HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
+CMD ["node", "server/server.js"]
+
+FROM release AS nightly
+RUN npm run mark-as-nightly
diff --git a/dockerfile-debian b/dockerfile-debian
deleted file mode 100644
index ba6cdde45..000000000
--- a/dockerfile-debian
+++ /dev/null
@@ -1,25 +0,0 @@
-FROM node:14-bullseye-slim AS release
-WORKDIR /app
-
-# install dependencies
-RUN apt update && apt --yes install python3 python3-pip python3-dev git g++ make iputils-ping
-RUN ln -s /usr/bin/python3 /usr/bin/python
-
-# split the sqlite install here, so that it can caches the arm prebuilt
-RUN npm install mapbox/node-sqlite3#593c9d
-
-# Install apprise
-RUN apt --yes install python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib
-RUN pip3 --no-cache-dir install apprise && \
- rm -rf /root/.cache
-
-COPY . .
-RUN npm install --legacy-peer-deps && npm run build && npm prune
-
-EXPOSE 3001
-VOLUME ["/app/data"]
-HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
-CMD ["node", "server/server.js"]
-
-FROM release AS nightly
-RUN npm run mark-as-nightly
diff --git a/package.json b/package.json
index 8bb962904..c04be03f4 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,8 @@
"build": "vite build",
"vite-preview-dist": "vite preview --host",
"build-docker": "npm run build-docker-alpine && npm run build-docker-debian",
- "build-docker-alpine": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.3 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.3-alpine --target release . --push",
- "build-docker-debian": "docker buildx build -f dockerfile-debian --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.3-debian --target release . --push",
+ "build-docker-alpine": "docker buildx build -f dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.5.3-alpine --target release . --push",
+ "build-docker-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.5.3 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.5.3-debian --target release . --push",
"build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push",
"build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain",
"setup": "git checkout 1.5.3 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune",
From fb0fa2a84387dac58b2273a739ee7965ce932dff Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Tue, 7 Sep 2021 15:36:29 +0800
Subject: [PATCH 26/29] add sqlite cli to docker
---
dockerfile | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dockerfile b/dockerfile
index ba6cdde45..678f03d56 100644
--- a/dockerfile
+++ b/dockerfile
@@ -13,6 +13,12 @@ RUN apt --yes install python3-cryptography python3-six python3-yaml python3-clic
RUN pip3 --no-cache-dir install apprise && \
rm -rf /root/.cache
+# additional package should be added here, since we don't want to re-compile the arm prebuilt again
+
+# add sqlite3 cli for debugging in the future
+RUN apt --yes install sqlite3
+
+
COPY . .
RUN npm install --legacy-peer-deps && npm run build && npm prune
From ec8c1cad31483ba26c51d90e99e9981c1bbef7f9 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Tue, 7 Sep 2021 16:06:28 +0800
Subject: [PATCH 27/29] update healthcheck.js for changing ssl cert / hostname
/ port
---
dockerfile | 2 +-
dockerfile-alpine | 2 +-
extra/healthcheck.js | 28 ++++++++++++++++++++--------
3 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/dockerfile b/dockerfile
index 678f03d56..3dabf513e 100644
--- a/dockerfile
+++ b/dockerfile
@@ -24,7 +24,7 @@ RUN npm install --legacy-peer-deps && npm run build && npm prune
EXPOSE 3001
VOLUME ["/app/data"]
-HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
+HEALTHCHECK --interval=600s --timeout=130s --start-period=300s CMD node extra/healthcheck.js
CMD ["node", "server/server.js"]
FROM release AS nightly
diff --git a/dockerfile-alpine b/dockerfile-alpine
index 8674b9993..1dd6b6b53 100644
--- a/dockerfile-alpine
+++ b/dockerfile-alpine
@@ -19,7 +19,7 @@ RUN npm install --legacy-peer-deps && npm run build && npm prune
EXPOSE 3001
VOLUME ["/app/data"]
-HEALTHCHECK --interval=60s --timeout=30s --start-period=300s CMD node extra/healthcheck.js
+HEALTHCHECK --interval=600s --timeout=130s --start-period=300s CMD node extra/healthcheck.js
CMD ["node", "server/server.js"]
FROM release AS nightly
diff --git a/extra/healthcheck.js b/extra/healthcheck.js
index c0b33b6ec..6dfdb23f0 100644
--- a/extra/healthcheck.js
+++ b/extra/healthcheck.js
@@ -1,19 +1,31 @@
-let http = require("http");
+process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
+
+let client;
+
+if (process.env.SSL_KEY && process.env.SSL_CERT) {
+ client = require("https");
+} else {
+ client = require("http");
+}
+
let options = {
- host: "localhost",
- port: "3001",
- timeout: 2000,
+ host: process.env.HOST || "127.0.0.1",
+ port: parseInt(process.env.PORT) || 3001,
+ timeout: 120 * 100,
};
-let request = http.request(options, (res) => {
- console.log(`STATUS: ${res.statusCode}`);
- if (res.statusCode == 200) {
+
+let request = client.request(options, (res) => {
+ console.log(`Health Check OK [Res Code: ${res.statusCode}]`);
+ if (res.statusCode === 200) {
process.exit(0);
} else {
process.exit(1);
}
});
+
request.on("error", function (err) {
- console.log("ERROR");
+ console.error("Health Check ERROR");
process.exit(1);
});
+
request.end();
From 8a4a87716f9ff422f00feafb98f1b35f7e290f08 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Tue, 7 Sep 2021 16:46:42 +0800
Subject: [PATCH 28/29] disable chrome save password dialog
---
src/components/HiddenInput.vue | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/components/HiddenInput.vue b/src/components/HiddenInput.vue
index 5b2b77aec..0dfb4b5e7 100644
--- a/src/components/HiddenInput.vue
+++ b/src/components/HiddenInput.vue
@@ -1,6 +1,22 @@