mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-12-28 18:01:03 -06:00
Merge branch 'master' into clear-monitor-data
This commit is contained in:
commit
ca8d4ab61b
@ -18,7 +18,7 @@ https://demo.uptime.kuma.pet
|
||||
|
||||
It is a 5 minutes live demo, all data will be deleted after that. The server is located at Tokyo, if you live far away from here, it may affact your experience. I suggest that you should install to try it.
|
||||
|
||||
VPS is sponsored by Uptime Kuma sponsors on Open Collective! Thank you so much!
|
||||
VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollective.com/uptime-kuma)! Thank you so much!
|
||||
|
||||
|
||||
## ⭐ Features
|
||||
|
28
dockerfile-debian
Normal file
28
dockerfile-debian
Normal file
@ -0,0 +1,28 @@
|
||||
# DON'T UPDATE TO alpine3.13, 1.14, see #41.
|
||||
FROM node:14-bullseye AS release
|
||||
WORKDIR /app
|
||||
|
||||
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
|
||||
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 . .
|
||||
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
|
@ -23,6 +23,8 @@ if (! exists) {
|
||||
pkg.version = newVersion;
|
||||
pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion);
|
||||
pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion);
|
||||
pkg.scripts["build-docker-alpine"] = pkg.scripts["build-docker-alpine"].replaceAll(oldVersion, newVersion);
|
||||
pkg.scripts["build-docker-debian"] = pkg.scripts["build-docker-debian"].replaceAll(oldVersion, newVersion);
|
||||
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
|
||||
|
||||
commit(newVersion);
|
||||
|
867
package-lock.json
generated
867
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "uptime-kuma",
|
||||
"version": "1.5.2",
|
||||
"version": "1.5.3",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -18,11 +18,12 @@
|
||||
"start-server": "node server/server.js",
|
||||
"build": "vite build",
|
||||
"vite-preview-dist": "vite preview --host",
|
||||
"build-docker": "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.2 --target release . --push",
|
||||
"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-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",
|
||||
"build-docker-1.5.0-debian": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:1.5.0-debian --target release . --push",
|
||||
"setup": "git checkout 1.5.2 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune",
|
||||
"setup": "git checkout 1.5.3 && npm install --legacy-peer-deps && node node_modules/esbuild/install.js && npm run build && npm prune",
|
||||
"update-version": "node extra/update-version.js",
|
||||
"mark-as-nightly": "node extra/mark-as-nightly.js",
|
||||
"reset-password": "node extra/reset-password.js",
|
||||
@ -64,7 +65,7 @@
|
||||
"sqlite3": "github:mapbox/node-sqlite3#593c9d",
|
||||
"tcp-ping": "^0.1.1",
|
||||
"v-pagination-3": "^0.1.6",
|
||||
"vue": "^3.2.6",
|
||||
"vue": "^3.2.8",
|
||||
"vue-chart-3": "^0.5.7",
|
||||
"vue-confirm-dialog": "^1.0.2",
|
||||
"vue-i18n": "^9.1.7",
|
||||
|
@ -31,7 +31,7 @@ export default {
|
||||
beatWidth: 10,
|
||||
beatHeight: 30,
|
||||
hoverScale: 1.5,
|
||||
beatMargin: 3, // Odd number only, even = blurry
|
||||
beatMargin: 4,
|
||||
move: false,
|
||||
maxBeat: -1,
|
||||
}
|
||||
@ -122,11 +122,26 @@ export default {
|
||||
this.$root.heartbeatList[this.monitorId] = [];
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
if (this.size === "small") {
|
||||
this.beatWidth = 5.6;
|
||||
this.beatMargin = 2.4;
|
||||
this.beatHeight = 16
|
||||
this.beatWidth = 5;
|
||||
this.beatHeight = 16;
|
||||
this.beatMargin = 2;
|
||||
}
|
||||
|
||||
// Suddenly, have an idea how to handle it universally.
|
||||
// If the pixel * ratio != Integer, then it causes render issue, round it to solve it!!
|
||||
const actualWidth = this.beatWidth * window.devicePixelRatio;
|
||||
const actualMargin = this.beatMargin * window.devicePixelRatio;
|
||||
|
||||
if (! Number.isInteger(actualWidth)) {
|
||||
this.beatWidth = Math.round(actualWidth) / window.devicePixelRatio;
|
||||
console.log(this.beatWidth);
|
||||
}
|
||||
|
||||
if (! Number.isInteger(actualMargin)) {
|
||||
this.beatMargin = Math.round(actualMargin) / window.devicePixelRatio;
|
||||
}
|
||||
|
||||
window.addEventListener("resize", this.resize);
|
||||
|
@ -8,5 +8,11 @@
|
||||
8. Import your language file in `src/main.js` and add it to `languageList` constant.
|
||||
9. Make a [pull request](https://github.com/louislam/uptime-kuma/pulls) when you have done.
|
||||
|
||||
|
||||
|
||||
One of good examples:
|
||||
https://github.com/louislam/uptime-kuma/pull/316/files
|
||||
|
||||
|
||||
If you do not have programming skills, let me know in [Issues section](https://github.com/louislam/uptime-kuma/issues). I will assist you. 😏
|
||||
|
||||
|
@ -70,7 +70,7 @@ export default {
|
||||
Timezone: "Zeitzone",
|
||||
"Search Engine Visibility": "Suchmaschinensichtbarkeit",
|
||||
"Allow indexing": "Indizierung zulassen",
|
||||
"Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Site ab",
|
||||
"Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab",
|
||||
"Change Password": "Passwort ändern",
|
||||
"Current Password": "Dezeitiges Passwort",
|
||||
"New Password": "Neues Passwort",
|
||||
@ -96,10 +96,10 @@ export default {
|
||||
Email: "E-Mail",
|
||||
Test: "Test",
|
||||
"Certificate Info": "Zertifikatsinfo",
|
||||
keywordDescription: "Suche nach einen Schlüsselwort in einer schlichten HTML oder JSON Ausgabe. Bitte beachte, es wird in der Groß-/Kleinschreibung unterschieden.",
|
||||
keywordDescription: "Suche nach einem Schlüsselwort in der HTML oder JSON Ausgabe. Bitte beachte, es wird in der Groß-/Kleinschreibung unterschieden.",
|
||||
deleteMonitorMsg: "Bist du sicher das du den Monitor löschen möchtest?",
|
||||
deleteNotificationMsg: "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?",
|
||||
resoverserverDescription: "Cloudflare ist der Standardserver, dieser kann jederzeit geändern werden.",
|
||||
resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.",
|
||||
"Resolver Server": "Auflösungsserver",
|
||||
rrtypeDescription: "Wähle den RR-Typ aus, welchen du überwachen möchtest.",
|
||||
"Last Result": "Letztes Ergebnis",
|
||||
@ -113,6 +113,6 @@ export default {
|
||||
"Create your admin account": "Erstelle dein Admin Konto",
|
||||
"Repeat Password": "Wiederhole das Passwort",
|
||||
"Resource Record Type": "Resource Record Type",
|
||||
respTime: "Resp. Time (ms)",
|
||||
respTime: "Antw. Zeit (ms)",
|
||||
notAvailableShort: "N/A"
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ export default {
|
||||
"Enable Auth": "인증 켜기",
|
||||
Logout: "로그아웃",
|
||||
Leave: "나가기",
|
||||
"I understand, please disable": "기능에 대해 이해했어요.",
|
||||
"I understand, please disable": "기능에 대해 이해했으니 꺼주세요.",
|
||||
Confirm: "확인",
|
||||
Yes: "확인",
|
||||
No: "취소",
|
||||
@ -107,6 +107,6 @@ export default {
|
||||
"Last Result": "최근 결과",
|
||||
"Create your admin account": "관리자 계정 만들기",
|
||||
"Repeat Password": "비밀번호 재입력",
|
||||
respTime: "Resp. Time (ms)",
|
||||
respTime: "응답 시간 (ms)",
|
||||
notAvailableShort: "N/A"
|
||||
}
|
||||
|
112
src/languages/nl-NL.js
Normal file
112
src/languages/nl-NL.js
Normal file
@ -0,0 +1,112 @@
|
||||
export default {
|
||||
languageName: "Nederlands",
|
||||
checkEverySecond: "Controleer elke {0} seconden.",
|
||||
"Avg.": "Gem. ",
|
||||
retriesDescription: "Maximum aantal nieuwe pogingen voordat de service wordt gemarkeerd als niet beschikbaar en er een melding wordt verzonden",
|
||||
ignoreTLSError: "Negeer TLS/SSL-fout voor HTTPS-websites",
|
||||
upsideDownModeDescription: "Draai de status om. Als de service bereikbaar is, is deze OFFLINE.",
|
||||
maxRedirectDescription: "Maximaal aantal te volgen omleidingen. Stel in op 0 om omleidingen uit te schakelen.",
|
||||
acceptedStatusCodesDescription: "Selecteer statuscodes die als een succesvol antwoord worden beschouwd.",
|
||||
passwordNotMatchMsg: "Het herhaalwachtwoord komt niet overeen.",
|
||||
notificationDescription: "Wijs a.u.b. een melding toe aan de monitor(s) om het te laten werken.",
|
||||
keywordDescription: "Zoek trefwoord in gewone html of JSON-response en het is hoofdlettergevoelig",
|
||||
pauseDashboardHome: "Gepauzeerd",
|
||||
deleteMonitorMsg: "Weet u zeker dat u deze monitor wilt verwijderen?",
|
||||
deleteNotificationMsg: "Weet u zeker dat u deze melding voor alle monitoren wilt verwijderen?",
|
||||
resoverserverDescription: "Cloudflare is de standaardserver, u kunt de resolver server op elk moment wijzigen.",
|
||||
rrtypeDescription: "Selecteer het RR-type dat u wilt monitoren",
|
||||
pauseMonitorMsg: "Weet je zeker dat je wilt pauzeren?",
|
||||
Settings: "Instellingen",
|
||||
Dashboard: "Dashboard",
|
||||
"New Update": "Nieuwe update",
|
||||
Language: "Taal",
|
||||
Appearance: "Weergave",
|
||||
Theme: "Thema",
|
||||
General: "Algemeen",
|
||||
Version: "Versie",
|
||||
"Check Update On GitHub": "Controleer voor updates op GitHub",
|
||||
List: "Lijst",
|
||||
Add: "Toevoegen",
|
||||
"Add New Monitor": "Nieuwe monitor toevoegen",
|
||||
"Quick Stats": "Snelle statistieken",
|
||||
Up: "Online",
|
||||
Down: "Offline",
|
||||
Pending: "In afwachting",
|
||||
Unknown: "Onbekend",
|
||||
Pause: "Pauze",
|
||||
Name: "Naam",
|
||||
Status: "Status",
|
||||
DateTime: "Datum Tijd",
|
||||
Message: "Bericht",
|
||||
"No important events": "Geen belangrijke gebeurtenissen",
|
||||
Resume: "Hervat",
|
||||
Edit: "Wijzigen",
|
||||
Delete: "Verwijderen",
|
||||
Current: "Huidig",
|
||||
Uptime: "Uptime",
|
||||
"Cert Exp.": "Cert. verl.",
|
||||
days: "dagen",
|
||||
day: "dag",
|
||||
"-day": "-dag",
|
||||
hour: "uur",
|
||||
"-hour": "-uur",
|
||||
Response: "Antwoord",
|
||||
Ping: "Ping",
|
||||
"Monitor Type": "Monitortype:",
|
||||
Keyword: "Trefwoord",
|
||||
"Friendly Name": "Vriendelijke naam",
|
||||
URL: "URL",
|
||||
Hostname: "Hostnaam",
|
||||
Port: "Poort",
|
||||
"Heartbeat Interval": "Hartslaginterval",
|
||||
Retries: "Pogingen",
|
||||
Advanced: "Geavanceerd",
|
||||
"Upside Down Mode": "Ondersteboven modus",
|
||||
"Max. Redirects": "Max. Omleidingen",
|
||||
"Accepted Status Codes": "Geaccepteerde statuscodes",
|
||||
Save: "Opslaan",
|
||||
Notifications: "Meldingen",
|
||||
"Not available, please setup.": "Niet beschikbaar, stel a.u.b. in.",
|
||||
"Setup Notification": "Melding instellen",
|
||||
Light: "Licht",
|
||||
Dark: "Donker",
|
||||
Auto: "Auto",
|
||||
"Theme - Heartbeat Bar": "Thema - Hartslagbalk",
|
||||
Normal: "Normaal",
|
||||
Bottom: "Onderkant",
|
||||
None: "Geen",
|
||||
Timezone: "Tijdzone",
|
||||
"Search Engine Visibility": "Zichtbaarheid voor zoekmachines",
|
||||
"Allow indexing": "Indexering toestaan",
|
||||
"Discourage search engines from indexing site": "Ontmoedig zoekmachines om de site te indexeren",
|
||||
"Change Password": "Verander wachtwoord",
|
||||
"Current Password": "Huidig wachtwoord",
|
||||
"New Password": "Nieuw wachtwoord",
|
||||
"Repeat New Password": "Herhaal nieuw wachtwoord",
|
||||
"Update Password": "Vernieuw wachtwoord",
|
||||
"Disable Auth": "Autorisatie uitschakelen",
|
||||
"Enable Auth": "Autorisatie inschakelen",
|
||||
Logout: "Uitloggen",
|
||||
Leave: "Vertrekken",
|
||||
"I understand, please disable": "Ik begrijp het, schakel a.u.b. uit",
|
||||
Confirm: "Bevestigen",
|
||||
Yes: "Ja",
|
||||
No: "Nee",
|
||||
Username: "Gebruikersnaam",
|
||||
Password: "Wachtwoord",
|
||||
"Remember me": "Wachtwoord onthouden",
|
||||
Login: "Inloggen",
|
||||
"No Monitors, please": "Geen monitoren, ",
|
||||
"add one": "voeg een toe",
|
||||
"Notification Type": "Melding type",
|
||||
Email: "E-mail",
|
||||
Test: "Testen",
|
||||
"Certificate Info": "Certificaat informatie",
|
||||
"Resolver Server": "Resolver Server",
|
||||
"Resource Record Type": "Type bronrecord",
|
||||
"Last Result": "Laatste resultaat",
|
||||
"Create your admin account": "Maak uw beheerdersaccount aan",
|
||||
"Repeat Password": "Herhaal wachtwoord",
|
||||
respTime: "resp. tijd (ms)",
|
||||
notAvailableShort: "N.v.t."
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
export default {
|
||||
languageName: "Swedish",
|
||||
languageName: "Svenska",
|
||||
checkEverySecond: "Uppdatera var {0} sekund.",
|
||||
"Avg.": "Genomsnitt ",
|
||||
"Avg.": "Genomsnittligt ",
|
||||
retriesDescription: "Max antal försök innan tjänsten markeras som nere och en notis skickas",
|
||||
ignoreTLSError: "Ignorera TLS/SSL-fel för webbsidor med HTTPS",
|
||||
upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.",
|
||||
maxRedirectDescription: "Max antal omdirigeringar att följa. Välj 0 för att avaktivera omdirigeringar.",
|
||||
acceptedStatusCodesDescription: "Välj statuskoder som räknas som lyckade.",
|
||||
passwordNotMatchMsg: "Det bekräftade lösenordet stämmer ej överens.",
|
||||
notificationDescription: "Vänligen lägg till en notistjänst till övervakaren.",
|
||||
notificationDescription: "Vänligen lägg till en notistjänst till dina övervakare.",
|
||||
keywordDescription: "Sök efter nyckelord i ren HTML eller JSON-svar. Sökningen är skiftkänslig.",
|
||||
pauseDashboardHome: "Pausa",
|
||||
deleteMonitorMsg: "Är du säker på att du vill ta bort den här övervakningen?",
|
||||
@ -33,10 +33,10 @@ export default {
|
||||
Down: "Nere",
|
||||
Pending: "Pågående",
|
||||
Unknown: "Okänt",
|
||||
Pause: "Paus",
|
||||
Pause: "Pausa",
|
||||
Name: "Namn",
|
||||
Status: "Status",
|
||||
DateTime: "DatumTid",
|
||||
DateTime: "Datum & Tid",
|
||||
Message: "Meddelande",
|
||||
"No important events": "Inga viktiga händelser",
|
||||
Resume: "Återuppta",
|
||||
@ -44,17 +44,17 @@ export default {
|
||||
Delete: "Ta bort",
|
||||
Current: "Nuvarande",
|
||||
Uptime: "Drifttid",
|
||||
"Cert Exp.": "Certifikatsutgång",
|
||||
"Cert Exp.": "Certifikat utgår",
|
||||
days: "dagar",
|
||||
day: "dag",
|
||||
"-day": "-dag",
|
||||
"-day": " dagar",
|
||||
hour: "timme",
|
||||
"-hour": "-timme",
|
||||
"-hour": " timmar",
|
||||
Response: "Svar",
|
||||
Ping: "Ping",
|
||||
"Monitor Type": "Övervakningstyp",
|
||||
Keyword: "Nyckelord",
|
||||
"Friendly Name": "Vänligt Namn",
|
||||
"Friendly Name": "Namn",
|
||||
URL: "URL",
|
||||
Hostname: "Värdnamn",
|
||||
Port: "Port",
|
||||
@ -67,14 +67,14 @@ export default {
|
||||
Save: "Spara",
|
||||
Notifications: "Notiser",
|
||||
"Not available, please setup.": "Ej tillgänglig, vänligen konfigurera.",
|
||||
"Setup Notification": "Konfigurera Notis",
|
||||
"Setup Notification": "Ny Notistjänst",
|
||||
Light: "Ljust",
|
||||
Dark: "Mörkt",
|
||||
Auto: "Automatisk",
|
||||
Auto: "Automatiskt",
|
||||
"Theme - Heartbeat Bar": "Tema - Heartbeat Bar",
|
||||
Normal: "Normal",
|
||||
Bottom: "Botten",
|
||||
None: "Ingen",
|
||||
None: "Tomt",
|
||||
Timezone: "Tidszon",
|
||||
"Search Engine Visibility": "Synlighet på Sökmotorer",
|
||||
"Allow indexing": "Tillåt indexering",
|
||||
@ -107,6 +107,6 @@ export default {
|
||||
"Last Result": "Senaste resultat",
|
||||
"Create your admin account": "Skapa ditt administratörskonto",
|
||||
"Repeat Password": "Upprepa Lösenord",
|
||||
respTime: "Resp. Time (ms)",
|
||||
notAvailableShort: "N/A"
|
||||
respTime: "Svarstid (ms)",
|
||||
notAvailableShort: "Ej Tillg."
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import { appName } from "./util.ts";
|
||||
import en from "./languages/en";
|
||||
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 ja from "./languages/ja";
|
||||
@ -102,6 +103,7 @@ const languageList = {
|
||||
en,
|
||||
"zh-HK": zhHK,
|
||||
"de-DE": deDE,
|
||||
"nl-NL": nlNL,
|
||||
"es-ES": esEs,
|
||||
"fr": fr,
|
||||
"ja": ja,
|
||||
|
@ -208,6 +208,12 @@
|
||||
<p>To je za <strong>one koji imaju dodatu autentifikaciju</strong> ispred Uptime Kuma kao na primer Cloudflare Access.</p>
|
||||
<p>Molim Vas koristite ovo sa pažnjom.</p>
|
||||
</template>
|
||||
|
||||
<template v-if="$i18n.locale === 'ko-KR' ">
|
||||
<p>정말로 <strong>인증 기능을 끌까요</strong>?</p>
|
||||
<p>이 기능은 <strong>Cloudflare Access와 같은 서드파티 인증</strong>을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.</p>
|
||||
<p>신중하게 사용하세요.</p>
|
||||
</template>
|
||||
</Confirm>
|
||||
|
||||
<Confirm ref="confirmClearStatistics" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="clearStatistics">
|
||||
|
Loading…
Reference in New Issue
Block a user