Merge branch 'master' into use_hideCount_option

pull/518/head^2
Louis Lam 3 years ago
commit 741ed548da

@ -1,5 +1,4 @@
/.idea
/dist
/node_modules
/data
/out

@ -62,8 +62,8 @@ body:
- type: checkboxes
id: no-duplicate-issues
attributes:
label: "👀 Have you spent some time to check if this question has been raised before?"
description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)"
label: "⚠️ Please verify that this question has NOT been raised before."
description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)"
options:
- label: "I checked and didn't find similar question"
required: true

@ -86,8 +86,8 @@ body:
- type: checkboxes
id: no-duplicate-issues
attributes:
label: "👀 Have you spent some time to check if this issue has been raised before?"
description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)"
label: "⚠️ Please verify that this bug has NOT been raised before."
description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)"
options:
- label: "I checked and didn't find similar issue"
required: true

@ -52,8 +52,8 @@ body:
- type: checkboxes
id: no-duplicate-issues
attributes:
label: "👀 Have you spent some time to check if this feature request has been raised before?"
description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)"
label: "⚠️ Please verify that this feature request has NOT been suggested before."
description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)"
options:
- label: "I checked and didn't find similar feature request"
required: true

@ -226,10 +226,11 @@ https://github.com/louislam/uptime-kuma/issues?q=sort%3Aupdated-desc
1. Draft a release note
1. Make sure the repo is cleared
1. `npm run update-version 1.X.X`
1. `npm run build`
1. `npm run build-docker`
1. git push
1. `git push`
1. Publish the release note as 1.X.X
1. npm run upload-artifacts
1. `npm run upload-artifacts`
1. SSH to demo site server and update to 1.X.X
Checking:

@ -4,9 +4,7 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY . .
RUN npm ci && \
npm run build && \
npm ci --production && \
RUN npm ci --production && \
chmod +x /app/extra/entrypoint.sh
@ -22,9 +20,11 @@ HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD nod
ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"]
CMD ["node", "server/server.js"]
FROM release AS nightly
RUN npm run mark-as-nightly
# Upload the artifact to Github
FROM louislam/uptime-kuma:base-debian AS upload-artifact
WORKDIR /

@ -4,9 +4,7 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY . .
RUN npm ci && \
npm run build && \
npm ci --production && \
RUN npm ci --production && \
chmod +x /app/extra/entrypoint.sh
@ -22,5 +20,6 @@ HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD nod
ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"]
CMD ["node", "server/server.js"]
FROM release AS nightly
RUN npm run mark-as-nightly

@ -1,6 +1,6 @@
{
"name": "uptime-kuma",
"version": "1.9.1",
"version": "1.9.2",
"license": "MIT",
"repository": {
"type": "git",
@ -30,13 +30,13 @@
"build-docker": "npm run build-docker-debian && npm run build-docker-alpine",
"build-docker-alpine-base": "docker buildx build -f docker/alpine-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-alpine . --push",
"build-docker-debian-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-debian . --push",
"build-docker-alpine": "docker buildx build -f docker/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.9.1-alpine --target release . --push",
"build-docker-debian": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.9.1 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.9.1-debian --target release . --push",
"build-docker-alpine": "docker buildx build -f docker/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.9.2-alpine --target release . --push",
"build-docker-debian": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.9.2 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.9.2-debian --target release . --push",
"build-docker-nightly": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push",
"build-docker-nightly-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly-alpine --target nightly . --push",
"build-docker-nightly-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain",
"upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain",
"setup": "git checkout 1.9.1 && npm ci --production && npm run download-dist",
"setup": "git checkout 1.9.2 && npm ci --production && npm run download-dist",
"download-dist": "node extra/download-dist.js",
"update-version": "node extra/update-version.js",
"mark-as-nightly": "node extra/mark-as-nightly.js",

@ -9,18 +9,17 @@ let interval;
exports.startInterval = () => {
let check = async () => {
try {
const res = await axios.get("https://raw.githubusercontent.com/louislam/uptime-kuma/master/package.json");
if (typeof res.data === "string") {
res.data = JSON.parse(res.data);
}
const res = await axios.get("https://uptime.kuma.pet/version");
// For debug
if (process.env.TEST_CHECK_VERSION === "1") {
res.data.version = "1000.0.0";
res.data.slow = "1000.0.0";
}
if (res.data.slow) {
exports.latestVersion = res.data.slow;
}
exports.latestVersion = res.data.version;
} catch (_) { }
};

@ -291,9 +291,8 @@ exports.entryPage = "dashboard";
let user = await login(data.username, data.password);
if (user) {
afterLogin(socket, user);
if (user.twofa_status == 0) {
afterLogin(socket, user);
callback({
ok: true,
token: jwt.sign({
@ -312,6 +311,7 @@ exports.entryPage = "dashboard";
let verify = notp.totp.verify(data.token, user.twofa_secret, twofa_verification_opts);
if (user.twofa_last_token !== data.token && verify) {
afterLogin(socket, user);
await R.exec("UPDATE `user` SET twofa_last_token = ? WHERE id = ? ", [
data.token,

@ -5,7 +5,7 @@ export default {
retriesDescription: "Broj ponovnih pokušaja prije nego će se servis označiti kao DOWN te poslati obavijest",
ignoreTLSError: "Ignoriraj TLS/SSL pogreške za HTTPS web stranice",
upsideDownModeDescription: "Preokreni logiku statusa. Ako je usluga dostupna, smatra se da je DOWN.",
maxRedirectDescription: "Maksimalan broj preusmjeravanja. Postaviti na 0 kako bi se preusmeravanja onemogućila.",
maxRedirectDescription: "Maksimalan broj preusmjeravanja. Postaviti na 0 kako bi se preusmjeravanja onemogućila.",
acceptedStatusCodesDescription: "Odaberite statusne kodove koji se smatraju uspješnim odgovorom.",
passwordNotMatchMsg: "Lozinke se ne poklapaju.",
notificationDescription: "Obavijesti će funkcionirati samo ako su dodijeljene monitoru.",
@ -20,7 +20,7 @@ export default {
clearEventsMsg: "Jeste li sigurni da želite izbrisati sve zapise o događajima za ovaj monitor?",
clearHeartbeatsMsg: "Jeste li sigurni da želite izbrisati sve zapise o provjerama za ovaj monitor?",
confirmClearStatisticsMsg: "Jeste li sigurni da želite izbrisati SVE statistike?",
importHandleDescription: "Odaberite opciju 'Preskoči postojeće' ako želite prekočiti uvoz već postojećih monitora i obavijesti. Opcija 'Prepiši' će izbrisati postojeće monitore i obavijesti.",
importHandleDescription: "Odaberite opciju \"Preskoči postojeće\" ako želite preskočiti uvoz postojećih monitora i obavijesti ako dođe do poklapanja u imenu. Opcija \"Prepiši\" će izbrisati postojeće monitore i obavijesti.",
confirmImportMsg: "Jeste li sigurni da želite pokrenuti uvoz? Provjerite jeste li odabrali ispravnu opciju uvoza.",
twoFAVerifyLabel: "Unesite svoj 2FA token:",
tokenValidSettingsMsg: "Token je važeći! Sada možete spremiti postavke dvofaktorske autentikacije.",
@ -44,7 +44,7 @@ export default {
Down: "Nedostupno",
Pending: "U tijeku",
Unknown: "Nepoznato",
Pause: "Pauziraj",
Pause: "Pauzirano",
Name: "Naziv monitora",
Status: "Status",
DateTime: "Vremenska oznaka",
@ -77,7 +77,7 @@ export default {
"Max. Redirects": "Maksimalan broj preusmjeravanja",
"Accepted Status Codes": "Prihvaćeni statusni kodovi",
"Push URL": "Push URL",
needPushEvery: "Potrebno je zvati ovaj URL svakih {0} sekundi.",
needPushEvery: "Potrebno je slati zahtjeve na URL svakih {0} sekundi.",
pushOptionalParams: "Neobavezni parametri: {0}",
Save: "Spremi",
Notifications: "Obavijesti",
@ -135,9 +135,9 @@ export default {
Events: "Events",
Heartbeats: "Provjere",
"Auto Get": "Automatski dohvat",
backupDescription: "Moguće je napraviti sigurnosnu kopiju svih monitora i obavijesti u JSON datoteku.",
backupDescription: "Moguće je napraviti sigurnosnu kopiju svih monitora i obavijesti koja će biti spremljena kao JSON datoteka.",
backupDescription2: "Napomena: povijest i podaci o događajima nisu uključeni u sigurnosnu kopiju.",
backupDescription3: "Osjetljivi podaci poput tokena za obavijesti jesu uključeni u izvozu; potrebno je čuvati izvoz na sigurnom mjestu.",
backupDescription3: "Osjetljivi podaci poput tokena za obavijesti jesu uključeni u sigurnosnu kopiju. Zato je potrebno čuvati izvoz na sigurnom mjestu.",
alertNoFile: "Datoteka za uvoz nije odabrana.",
alertWrongFileType: "Datoteka za uvoz nije u JSON formatu.",
"Clear all statistics": "Obriši sve statistike",
@ -197,14 +197,14 @@ export default {
webhook: "Webhook",
"Post URL": "Post URL",
"Content Type": "Tip sadržaja (Content Type)",
webhookJsonDesc: "{0} je moguća opcija za moderne HTTP poslužitelje poput Express.js-a",
webhookJsonDesc: "{0} je dobra opcija za moderne HTTP poslužitelje poput Express.js-a",
webhookFormDataDesc: "{multipart} je moguća alternativa za PHP, samo je potrebno parsirati JSON koristeći {decodeFunction}",
smtp: "E-pošta (SMTP)",
secureOptionNone: "Bez sigurnosti / STARTTLS (25, 587)",
secureOptionTLS: "TLS (465)",
"Ignore TLS Error": "Ignoriraj greške TLS-a",
"From Email": "Adresa za From polje",
emailCustomSubject: "Prilagođeno Subject polje",
"From Email": "Adresa za \"From\" polje",
emailCustomSubject: "Prilagođeno \"Subject\" polje",
"To Email": "Odredišne adrese e-pošte",
smtpCC: "Cc",
smtpBCC: "Bcc",
@ -233,7 +233,7 @@ export default {
"Uptime Kuma URL": "Uptime Kuma URL",
aboutWebhooks: "Dodatne informacije o webhookovima su dostupne na: {0}",
aboutChannelName: "Unesite ime {0} kanala u polju Naziv kanala ako želite zaobići webhook kanal. Primjerice: #neki-kanal",
aboutKumaURL: "Ako je polje Uptime Kuma URL prazno, koristi se zadana vrijednost koja vodi na GitHub stranicu projekta.",
aboutKumaURL: "Ako je polje \"Uptime Kuma URL\" prazno, koristi se zadana vrijednost koja vodi na GitHub stranicu projekta.",
emojiCheatSheet: "Popis emotikona: {0}",
"rocket.chat": "Rocket.Chat",
pushover: "Pushover",
@ -252,7 +252,7 @@ export default {
"Notification Sound": "Zvuk obavijesti",
"More info on:": "Više informacija na: {0}",
pushoverDesc1: "Hitni prioritet (2) ima zadani istek vremena od 30 sekundi između ponovnih pokušaja te će isteći nakon 1 sata.",
pushoverDesc2: "Ako želite slati obavijesti na više uređaja, ispunite polje Uređaji.",
pushoverDesc2: "Ako želite slati obavijesti na više uređaja, ispunite polje \"Uređaji\".",
"SMS Type": "Tip SMS-a",
octopushTypePremium: "Premium (Brzo - preporučeno za obavijesti)",
octopushTypeLowCost: "Low Cost (Sporo - mobilni operateri ponekad blokiraju ove poruke)",
@ -277,7 +277,7 @@ export default {
"Basic Settings": "Osnovne Postavke",
"User ID": "Korisnički ID",
"Messaging API": "API za razmjenu poruka",
wayToGetLineChannelToken: "Prvo, pristupite {0}, kreirajte create a pružatelja usluga te kanal (API za razmjenu poruka), zatim možete dobiti you can get the token za pristup kanalu te korisnički ID za polja iznad.",
wayToGetLineChannelToken: "Prvo, pristupite {0}, kreirajte pružatelja usluga te kanal (API za razmjenu poruka), zatim možete dobiti token za pristup kanalu te korisnički ID za polja iznad.",
"Icon URL": "URL slike",
aboutIconURL: "Možete postaviti poveznicu na sliku u polju \"URL slike\" kako biste spriječili korištenje zadane slike. Ovo se polje neće koristiti ako je postavljeno polje \"Emotikon\".",
aboutMattermostChannelName: "Možete promijeniti kanal u kojeg webhook šalje tako da ispunite polje \"Naziv kanala\". Ta opcija mora biti omogućena unutar Mattermost postavki za webhook. Primjerice: #neki-kanal",
@ -286,19 +286,19 @@ export default {
promosmsTypeFlash: "SMS FLASH - Poruka se automatski pojavljuje na uređaju primatelja. Ograničeno samo na primatelje unutar Poljske.",
promosmsTypeFull: "SMS FULL - Premium razina usluge, dozvoljava postavljanje naziva SMS pošiljatelja (Naziv mora biti registriran). Usluga pouzdana za obavijesti.",
promosmsTypeSpeed: "SMS SPEED - Usluga najvećeg prioriteta. Brza i pouzdana, ali skupa (otprilike dvostruko skuplja od cijene usluge SMS FULL).",
promosmsPhoneNumber: "Telefonski broj (za primitalje unutar Poljske nije potrebno navoditi pozivni broj države)",
promosmsPhoneNumber: "Telefonski broj (za primatelje unutar Poljske nije potrebno navoditi pozivni broj države)",
promosmsSMSSender: "Naziv SMS pošiljatelja: Registriran naziv ili jedan od zadanih: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu URL webhooka",
matrixHomeserverURL: "URL homeservera (uključujući http(s):// te port, ako je potrebno)",
matrixHomeserverURL: "URL Matrix homeservera (uključujući http(s):// te port, ako je potrebno)",
"Internal Room Id": "Interni ID sobe",
matrixDesc1: "Interni ID sobe se može pronaći u naprednim postavkama sobe unutar Matrix klijenta. ID sobe nalikuje idućem zapisu: !QMdRCpUIfLwsfjxye6:home.server.",
matrixDesc2: "Preporuča se stvaranje novog korisnika te suzdržavanje od korištenja pristupnog tokena vlastitog Matrix korisnika. Novog korisnika potrebno je dodati u sobe u kojima želite primati obavijesti. Pristupni token možete dobiti pokretanjem naredbe {0}",
matrixDesc2: "Preporučuje se stvaranje novog korisnika te suzdržavanje od korištenja pristupnog tokena vlastitog Matrix korisnika. Novog korisnika potrebno je dodati u sobe u kojima želite primati obavijesti. Pristupni token možete dobiti pokretanjem naredbe {0}",
Method: "Metoda",
Body: "Tijelo",
Headers: "Zaglavlja",
PushUrl: "Push URL",
HeadersInvalidFormat: "Zaglavlja nisu nije valjani JSON: ",
BodyInvalidFormat: "Tijelo zahjeva nije valjani JSON: ",
BodyInvalidFormat: "Tijelo zahtjeva nije valjani JSON: ",
"Monitor History": "Povijest monitora",
clearDataOlderThan: "Podaci o povijesti monitora čuvaju se {0} dana.",
PasswordsDoNotMatch: "Lozinke se ne poklapaju.",

@ -265,10 +265,10 @@ export default {
},
logout() {
socket.emit("logout", () => { });
this.storage().removeItem("token");
this.socket.token = null;
this.loggedIn = false;
this.clearData();
},

Loading…
Cancel
Save