mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-09-13 23:17:00 +08:00
Compare commits
30 Commits
1.15.0-bet
...
1.15.0
Author | SHA1 | Date | |
---|---|---|---|
|
751924b335 | ||
|
edec1024b5 | ||
|
5f9f29f527 | ||
|
13a3dd91bb | ||
|
d9c5a7812c | ||
|
484d4a20ab | ||
|
3582e99770 | ||
|
2197b98444 | ||
|
e6a1719ab4 | ||
|
7d5e7a577d | ||
|
630bb03d9c | ||
|
f1c83bb838 | ||
|
303a226ab7 | ||
|
d3f0bdb440 | ||
|
e56ac7b03b | ||
|
aafcbaf098 | ||
|
4d4d04adbd | ||
|
f8c9472ea2 | ||
|
4e28ad4ac2 | ||
|
06f326e49e | ||
|
07c0801ad5 | ||
|
8cefc96c78 | ||
|
b326a69838 | ||
|
a391576285 | ||
|
e0966e55c8 | ||
|
59d9891105 | ||
|
f8f19d8dc5 | ||
|
a3d79a93e9 | ||
|
bdc23a3f57 | ||
|
18925293fb |
@@ -40,9 +40,9 @@ module.exports = {
|
||||
SwitchCase: 1,
|
||||
},
|
||||
],
|
||||
quotes: [ "warn", "double" ],
|
||||
quotes: [ "error", "double" ],
|
||||
semi: "error",
|
||||
"vue/html-indent": [ "warn", 4 ], // default: 2
|
||||
"vue/html-indent": [ "error", 4 ], // default: 2
|
||||
"vue/max-attributes-per-line": "off",
|
||||
"vue/singleline-html-element-content-newline": "off",
|
||||
"vue/html-self-closing": "off",
|
||||
@@ -72,7 +72,7 @@ module.exports = {
|
||||
"keyword-spacing": "warn",
|
||||
"space-infix-ops": "warn",
|
||||
"arrow-spacing": "warn",
|
||||
"no-trailing-spaces": "warn",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-constant-condition": [ "error", {
|
||||
"checkLoops": false,
|
||||
}],
|
||||
|
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -20,6 +20,7 @@ Please delete any options that are not relevant.
|
||||
- [ ] I ran ESLint and other linters for modified files
|
||||
- [ ] I have performed a self-review of my own code and tested it
|
||||
- [ ] I have commented my code, particularly in hard-to-understand areas
|
||||
(including JSDoc for methods)
|
||||
- [ ] My changes generate no new warnings
|
||||
- [ ] My code needed automated testing. I have added them (this is optional task)
|
||||
|
||||
|
2
.github/workflows/auto-test.yml
vendored
2
.github/workflows/auto-test.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- run: git config --global core.autocrlf false # Mainly for Windows
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v2
|
||||
|
@@ -79,6 +79,7 @@ I personally do not like something need to learn so much and need to config so m
|
||||
- 4 spaces indentation
|
||||
- Follow `.editorconfig`
|
||||
- Follow ESLint
|
||||
- Methods and funtions should be documented with JSDoc
|
||||
|
||||
## Name convention
|
||||
|
||||
|
13
README.md
13
README.md
@@ -25,12 +25,15 @@ VPS is sponsored by Uptime Kuma sponsors on [Open Collective](https://opencollec
|
||||
|
||||
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server.
|
||||
* Fancy, Reactive, Fast UI/UX.
|
||||
* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [70+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications).
|
||||
* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [90+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications).
|
||||
* 20 second intervals.
|
||||
* [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages)
|
||||
* Simple Status Page
|
||||
* Multiple Status Pages
|
||||
* Map Status Page to Domain
|
||||
* Ping Chart
|
||||
* Certificate Info
|
||||
* Proxy Support
|
||||
* 2FA available
|
||||
|
||||
## 🔧 How to Install
|
||||
|
||||
@@ -154,17 +157,17 @@ https://www.reddit.com/r/UptimeKuma/
|
||||
|
||||
## Contribute
|
||||
|
||||
### Test Beta Version
|
||||
### Beta Version
|
||||
|
||||
Check out the latest beta release here: https://github.com/louislam/uptime-kuma/releases
|
||||
|
||||
### Bug Reports / Feature Requests
|
||||
If you want to report a bug or request a new feature. Free feel to open a [new issue](https://github.com/louislam/uptime-kuma/issues).
|
||||
|
||||
## Translations
|
||||
### Translations
|
||||
If you want to translate Uptime Kuma into your language, please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages
|
||||
|
||||
Feel free to correct my grammar in this README, source code, or wiki, as my mother language is not English and my grammar is not that great.
|
||||
|
||||
## Pull Requests
|
||||
### Pull Requests
|
||||
If you want to modify Uptime Kuma, this guideline may be useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md
|
||||
|
@@ -13,10 +13,7 @@ currently being supported with security updates.
|
||||
|
||||
### Uptime Kuma Versions
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 1.9.X | :white_check_mark: |
|
||||
| <= 1.8.X | ❌ |
|
||||
You should use or upgrade to the latest version of Uptime Kuma. All `1.X.X` versions are upgradable to the lastest version.
|
||||
|
||||
### Upgradable Docker Tags
|
||||
|
||||
@@ -24,8 +21,8 @@ currently being supported with security updates.
|
||||
| ------- | ------------------ |
|
||||
| 1 | :white_check_mark: |
|
||||
| 1-debian | :white_check_mark: |
|
||||
| 1-alpine | :white_check_mark: |
|
||||
| latest | :white_check_mark: |
|
||||
| debian | :white_check_mark: |
|
||||
| alpine | :white_check_mark: |
|
||||
| 1-alpine | ⚠️ Deprecated |
|
||||
| alpine | ⚠️ Deprecated |
|
||||
| All other tags | ❌ |
|
||||
|
@@ -4,5 +4,5 @@ WORKDIR /app
|
||||
|
||||
# Install apprise, iputils for non-root ping, setpriv
|
||||
RUN apk add --no-cache iputils setpriv dumb-init python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \
|
||||
pip3 --no-cache-dir install apprise==0.9.7 && \
|
||||
pip3 --no-cache-dir install apprise==0.9.8 && \
|
||||
rm -rf /root/.cache
|
||||
|
@@ -11,7 +11,7 @@ WORKDIR /app
|
||||
RUN apt update && \
|
||||
apt --yes --no-install-recommends install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
|
||||
sqlite3 iputils-ping util-linux dumb-init && \
|
||||
pip3 --no-cache-dir install apprise==0.9.7 && \
|
||||
pip3 --no-cache-dir install apprise==0.9.8 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install cloudflared
|
||||
|
@@ -20,6 +20,10 @@ if (! exists) {
|
||||
// Process package.json
|
||||
pkg.version = version;
|
||||
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
|
||||
|
||||
// Also update package-lock.json
|
||||
childProcess.spawnSync("npm", [ "install" ]);
|
||||
|
||||
commit(version);
|
||||
tag(version);
|
||||
|
||||
|
@@ -25,6 +25,9 @@ if (! exists) {
|
||||
pkg.scripts.setup = pkg.scripts.setup.replace(/(git checkout )([^\s]+)/, `$1${newVersion}`);
|
||||
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
|
||||
|
||||
// Also update package-lock.json
|
||||
childProcess.spawnSync("npm", [ "install" ]);
|
||||
|
||||
commit(newVersion);
|
||||
tag(newVersion);
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "uptime-kuma",
|
||||
"version": "1.15.0-beta.1",
|
||||
"version": "1.15.0",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -37,7 +37,7 @@
|
||||
"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 VERSION --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain",
|
||||
"setup": "git checkout 1.14.1 && npm ci --production && npm run download-dist",
|
||||
"setup": "git checkout 1.15.0 && npm ci --production && npm run download-dist",
|
||||
"download-dist": "node extra/download-dist.js",
|
||||
"mark-as-nightly": "node extra/mark-as-nightly.js",
|
||||
"reset-password": "node extra/reset-password.js",
|
||||
|
@@ -321,6 +321,8 @@ export default {
|
||||
// Set it to empty if done
|
||||
this.saveSettings(() => {
|
||||
this.password.currentPassword = "";
|
||||
this.$root.username = null;
|
||||
this.$root.socket.token = "autoLogin";
|
||||
}, this.password.currentPassword);
|
||||
},
|
||||
|
||||
|
@@ -371,12 +371,12 @@ export default {
|
||||
alertaAlertState: "Състояние на тревога",
|
||||
alertaRecoverState: "Състояние на възстановяване",
|
||||
deleteStatusPageMsg: "Сигурни ли сте, че желаете да изтриете тази статус страница?",
|
||||
Proxies: "Проксита",
|
||||
Proxies: "Прокси",
|
||||
default: "По подразбиране",
|
||||
enabled: "Включено",
|
||||
setAsDefault: "Зададен по подразбиране",
|
||||
deleteProxyMsg: "Сигурни ли сте, че желаете да изтриете това прокси за всички монитори?",
|
||||
proxyDescription: "Прокситата трябва да бъдат зададени към монитор за да функционират.",
|
||||
proxyDescription: "За да функционират трябва да бъдат зададени към монитор.",
|
||||
enableProxyDescription: "Това прокси няма да има ефект върху заявките за мониторинг, докато не бъде активирано. Може да контролирате временното деактивиране на проксито от всички монитори чрез статуса на активиране.",
|
||||
setAsDefaultProxyDescription: "Това проки ще бъде включено по подразбиране за новите монитори. Може да го изключите по отделно за всеки един монитор.",
|
||||
"Certificate Chain": "Верига на сертификата",
|
||||
@@ -442,4 +442,26 @@ export default {
|
||||
"Issuer:": "Издател:",
|
||||
"Fingerprint:": "Пръстов отпечатък:",
|
||||
"No status pages": "Няма статус страници",
|
||||
topic: "Тема",
|
||||
topicExplanation: "MQTT тема за мониториране",
|
||||
successMessage: "Съобщение при успех",
|
||||
successMessageExplanation: "MQTT съобщение, което ще бъде считано за успех",
|
||||
Customize: "Персонализирай",
|
||||
"Custom Footer": "Персонализиран долен колонтитул",
|
||||
"Custom CSS": "Потребителски CSS",
|
||||
"Domain Name Expiry Notification": "Известяване при изтичащ домейн",
|
||||
Proxy: "Прокси",
|
||||
"Date Created": "Дата на създаване",
|
||||
onebotHttpAddress: "OneBot HTTP адрес",
|
||||
onebotMessageType: "OneBot тип съобщение",
|
||||
onebotGroupMessage: "Група",
|
||||
onebotPrivateMessage: "Лично",
|
||||
onebotUserOrGroupId: "Група/Потребител ID",
|
||||
onebotSafetyTips: "С цел безопасност трябва да зададете токен код за достъп",
|
||||
"PushDeer Key": "PushDeer ключ",
|
||||
"Footer Text": "Текст долен колонтитул",
|
||||
"Show Powered By": "Покажи \"Създадено чрез\"",
|
||||
"Domain Names": "Домейни",
|
||||
signedInDisp: "Вписан като {0}",
|
||||
signedInDispDisabled: "Удостоверяването е изключено.",
|
||||
};
|
||||
|
@@ -424,7 +424,7 @@ export default {
|
||||
"Add New Status Page": "Add New Status Page",
|
||||
Slug: "Slug",
|
||||
"Accept characters:": "Accept characters:",
|
||||
"startOrEndWithOnly": "Start or end with {0} only",
|
||||
startOrEndWithOnly: "Start or end with {0} only",
|
||||
"No consecutive dashes": "No consecutive dashes",
|
||||
Next: "Next",
|
||||
"The slug is already taken. Please choose another slug.": "The slug is already taken. Please choose another slug.",
|
||||
@@ -450,7 +450,7 @@ export default {
|
||||
"Fingerprint:": "Fingerprint:",
|
||||
"No status pages": "No status pages",
|
||||
"Domain Name Expiry Notification": "Domain Name Expiry Notification",
|
||||
"Proxy": "Proxy",
|
||||
Proxy: "Proxy",
|
||||
"Date Created": "Date Created",
|
||||
onebotHttpAddress: "OneBot HTTP Address",
|
||||
onebotMessageType: "OneBot Message Type",
|
||||
@@ -459,4 +459,9 @@ export default {
|
||||
onebotUserOrGroupId: "Group/User ID",
|
||||
onebotSafetyTips: "For safety, must set access token",
|
||||
"PushDeer Key": "PushDeer Key",
|
||||
"Footer Text": "Footer Text",
|
||||
"Show Powered By": "Show Powered By",
|
||||
"Domain Names": "Domain Names",
|
||||
signedInDisp: "Signed in as {0}",
|
||||
signedInDispDisabled: "Auth Disabled.",
|
||||
};
|
||||
|
@@ -171,7 +171,7 @@ export default {
|
||||
"Avg. Response": "Gemiddelde Response",
|
||||
"Entry Page": "Entry Page",
|
||||
statusPageNothing: "Niets hier, voeg een groep of monitor toe.",
|
||||
"No Services": "No Services",
|
||||
"No Services": "Geen diensten",
|
||||
"All Systems Operational": "Alle systemen operationeel",
|
||||
"Partially Degraded Service": "Gedeeltelijk verminderde prestaties",
|
||||
"Degraded Service": "Verminderde prestaties",
|
||||
@@ -205,4 +205,262 @@ export default {
|
||||
PushUrl: "Push URL",
|
||||
HeadersInvalidFormat: "The request headers is geen geldige JSON: ",
|
||||
BodyInvalidFormat: "De request body is geen geldige JSON: ",
|
||||
"Primary Base URL": "Hoofd Basis URL",
|
||||
"Push URL": "Push URL",
|
||||
needPushEvery: "Je moet deze URL elke {0} seconden aanroepen.",
|
||||
pushOptionalParams: "Optionele parameters: {0}",
|
||||
defaultNotificationName: "Mijn {notification} Alert ({number})",
|
||||
here: "hier",
|
||||
Required: "Verplicht",
|
||||
"Bot Token": "Bot Token",
|
||||
wayToGetTelegramToken: "Je kunt een token krijgen van {0}.",
|
||||
"Chat ID": "Chat ID",
|
||||
supportTelegramChatID: "Ondersteuning Directe Chat / Groep / Kanaal Chat ID",
|
||||
wayToGetTelegramChatID: "Je kunt je CHAT ID krijgen door een bericht te sturen naar de bot en naar deze URL te gaan om het chat_id te bekijken:",
|
||||
"YOUR BOT TOKEN HERE": "DE BOT TOKEN HIER",
|
||||
chatIDNotFound: "Chat ID is niet gevonden; stuur eerst een bericht naar de bot",
|
||||
"Post URL": "Post URL",
|
||||
"Content Type": "Content Type",
|
||||
webhookJsonDesc: "{0} is goed voor een moderne HTTP server zoals Express.js",
|
||||
webhookFormDataDesc: "{multipart} is goed voor PHP. De JSON moet worden ontleed met {decodeFunction}",
|
||||
secureOptionNone: "Geen / STARTTLS (25, 587)",
|
||||
secureOptionTLS: "TLS (465)",
|
||||
"Ignore TLS Error": "Negeer TLS Error",
|
||||
"From Email": "Van Email",
|
||||
emailCustomSubject: "Aangepast Onderwerp",
|
||||
"To Email": "Naar Email",
|
||||
smtpCC: "CC",
|
||||
smtpBCC: "BCC",
|
||||
"Discord Webhook URL": "Discord Webhook URL",
|
||||
wayToGetDiscordURL: "Je kunt dit krijgen door te gaan naar Server Instellingen -> Integraties -> Creëer Webhook",
|
||||
"Bot Display Name": "Bot Weergave Naam",
|
||||
"Prefix Custom Message": "Prefix Aangepast Bericht",
|
||||
"Hello @everyone is...": "Hallo {'@'}iedereen is...",
|
||||
"Webhook URL": "Webhook URL",
|
||||
wayToGetTeamsURL: "Je kunt hier leren hoe je een webhook URL kunt maken {0}.",
|
||||
Number: "Nummer",
|
||||
Recipients: "Ontvangers",
|
||||
needSignalAPI: "Je moet een signal client met REST API hebben.",
|
||||
wayToCheckSignalURL: "Je kunt op deze URL zien hoe je een kunt instellen:",
|
||||
signalImportant: "BELANGRIJK: Je kunt groepen en nummers niet mengen in ontvangers!",
|
||||
"Application Token": "Applicatie Token",
|
||||
"Server URL": "Server URL",
|
||||
Priority: "Prioriteit",
|
||||
"Icon Emoji": "Icoon Emoji",
|
||||
"Channel Name": "Kanaal Naam",
|
||||
"Uptime Kuma URL": "Uptime Kuma URL",
|
||||
aboutWebhooks: "Meer info over Webhooks op: {0}",
|
||||
aboutChannelName: "Voer de kanaal naam in op {0} Kannaal Naam veld als je het Webhook kanaal wilt omzeilen. Bv: #other-channel",
|
||||
aboutKumaURL: "Als je de Uptime Kuma URL veld leeg laat, wordt standaard het GitHub project pagina weergegeven.",
|
||||
emojiCheatSheet: "Emoji cheat sheet: {0}",
|
||||
PushByTechulus: "Push door Techulus",
|
||||
clicksendsms: "ClickSend SMS",
|
||||
GoogleChat: "Google Chat (Google Workspace alleen)",
|
||||
"User Key": "Gebruikers sleutel",
|
||||
Device: "Apparaat",
|
||||
"Message Title": "Bericht Titel",
|
||||
"Notification Sound": "Notificatie Geluid",
|
||||
"More info on:": "Meer info op: {0}",
|
||||
pushoverDesc1: "Nood prioriteit (2) heeft standaard een 30 seconden timeout tussen pogingen en verloopt na 1 uur.",
|
||||
pushoverDesc2: "Vul het appraat veld in als je notificaties naar andere apparaten wilt versturen.",
|
||||
"SMS Type": "SMS Type",
|
||||
octopushTypePremium: "Premium (Snel - aangeraden voor te alarmeren)",
|
||||
octopushTypeLowCost: "Low Cost (Langzaam - wordt soms geblokkeerd door operator)",
|
||||
checkPrice: "Controleer {0} prijzen:",
|
||||
apiCredentials: "API referenties",
|
||||
octopushLegacyHint: "Wil je de legacy versie van Octopush (2011-2020) gebruiken of de nieuwe versie?",
|
||||
"Check octopush prices": "Controleer Octopush prijzen {0}.",
|
||||
octopushPhoneNumber: "Telefoon nummer (Int. formaat, eg : +33612345678) ",
|
||||
octopushSMSSender: "SMS zender naam : 3-11 alfanumerieke karakters en spatie (a-zA-Z0-9)",
|
||||
"LunaSea Device ID": "LunaSea Apparaat ID",
|
||||
"Apprise URL": "Apprise URL",
|
||||
"Example:": "Voorbeeld: {0}",
|
||||
"Read more:": "Lees meer: {0}",
|
||||
"Status:": "Status: {0}",
|
||||
"Read more": "Lees meer",
|
||||
appriseInstalled: "Apprise is geïnstalleerd.",
|
||||
appriseNotInstalled: "Apprise is niet geïnstalleerd. {0}",
|
||||
"Access Token": "Access Token",
|
||||
"Channel access token": "Kanaal access token",
|
||||
"Line Developers Console": "Line Developers Console",
|
||||
lineDevConsoleTo: "Line Developers Console - {0}",
|
||||
"Basic Settings": "Basis Instellingen",
|
||||
"User ID": "Gebruiker ID",
|
||||
"Messaging API": "Berichten API",
|
||||
wayToGetLineChannelToken: "Begin met {0} te openen, creëer een provider en kanaal (Messaging API), dan kun je de kanaal access token en gebruikers ID van de hierboven genoemde menu items krijgen.",
|
||||
"Icon URL": "Icoon URL",
|
||||
aboutIconURL: "Je kunt een link om de standaard profiel afbeelding te overschrijving in \"Icoon URL\" meegeven. Dit wordt niet gebruikt als Icon Emoji is ingesteld.",
|
||||
aboutMattermostChannelName: "Je kunt het standaard kanaal dat de Webhook plaatst overschijven door de kanaal naam in te vullen in het \"Channel Name\" veld. Dit moet worden ingeschakeld in de Mattermost Webhook instellingen. Bv. #ander-kanaal",
|
||||
matrix: "Matrix",
|
||||
promosmsTypeEco: "SMS ECO - Goedkoop maar langzaam en vaak overbelast. Gelimiteerd tot Poolse ontvangers.",
|
||||
promosmsTypeFlash: "SMS FLASH - Berichten worden automatisch weergegeven op het apparaat van de ontvanger. Gelimiteerd tot Poolse ontvangers.",
|
||||
promosmsTypeFull: "SMS FULL - Premium tier van SMS, je kunt de ontvanger naam gebruiken (Je moet eerst de naam registreren). Betrouwbaar voor alarmeringen.",
|
||||
promosmsTypeSpeed: "SMS SPEED - Hoogste prioriteit in systeem. Is veel sneller en betrouwbaarder maar kost meer (ongeveer twee keer zoveel als volle SMS prijs).",
|
||||
promosmsPhoneNumber: "Telefoon nummer (voor Poolse ontvangers. Je kunt gebieds codes overslaan)",
|
||||
promosmsSMSSender: "SMS Ontvanger naam : Voor geregistreerde naam of een van de standaarden: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
|
||||
"Feishu WebHookUrl": "Feishu WebHookURL",
|
||||
matrixHomeserverURL: "Homeserver URL (met http(s):// en optioneel poort)",
|
||||
"Internal Room Id": "Interne Room ID",
|
||||
matrixDesc1: "Je kunt de interne room ID vinden door in de geavanceerde sectie van de room instellingen in je Matrix client te kijken. Het zou moeten uitzien als !QMdRCpUIfLwsfjxye6:home.server.",
|
||||
matrixDesc2: "Het wordt ten zeerste aanbevolen om een nieuwe gebruiker aan te maken en niet de access token van je account te gebruiken, aangezien dit volledige toegang geeft tot je account en alle kamers waar je lid van bent. Maak in plaats daarvan een nieuwe gebruiker aan en nodig deze alleen uit voor de ruimte waarin je de melding wilt ontvangen. Je kunt de access token krijgen door het volgende uit te voeren {0}",
|
||||
"Monitor History": "Monitor Geschiedenis",
|
||||
clearDataOlderThan: "Bewaar monitor geschiedenis voor {0} dagen.",
|
||||
PasswordsDoNotMatch: "Wachtwoorden komen niet overeen",
|
||||
records: "records",
|
||||
"One record": "Een record",
|
||||
steamApiKeyDescription: "Om een Steam Game Server te monitoren heb je een Steam Web-API key nodig. Je kunt hier je API key registreren: ",
|
||||
"Current User": "Huidge Gebruiker",
|
||||
topic: "Onderwerp",
|
||||
topicExplanation: "MQTT onderwerp om te monitoren",
|
||||
successMessage: "Succesbericht",
|
||||
successMessageExplanation: "MQTT bericht dat als succes wordt beschouwd.",
|
||||
recent: "Recent",
|
||||
Done: "Klaar",
|
||||
Info: "Info",
|
||||
Security: "Beveiliging",
|
||||
"Steam API Key": "Steam API Sleutel",
|
||||
"Shrink Database": "Verklein Database",
|
||||
"Pick a RR-Type...": "Kies een RR-Type...",
|
||||
"Pick Accepted Status Codes...": "Kies geaccepteerde Status Codes...",
|
||||
Default: "Standaard",
|
||||
"HTTP Options": "HTTP Opties",
|
||||
"Create Incident": "Creëer Incident",
|
||||
Title: "Titel",
|
||||
Content: "Content",
|
||||
Style: "Stijl",
|
||||
info: "info",
|
||||
warning: "waarschuwing",
|
||||
danger: "gevaar",
|
||||
primary: "primair",
|
||||
light: "licht",
|
||||
dark: "donker",
|
||||
Post: "Post",
|
||||
"Please input title and content": "Voer alstublieft titel en content in",
|
||||
Created: "Gemaakt",
|
||||
"Last Updated": "Laatst Bijgewerkt",
|
||||
Unpin: "Losmaken",
|
||||
"Switch to Light Theme": "Wissel naar Licht Thema",
|
||||
"Switch to Dark Theme": "Wissel naar Donker Thema",
|
||||
"Show Tags": "Toon Labels",
|
||||
"Hide Tags": "Verberg Labels",
|
||||
Description: "Beschrijving",
|
||||
"No monitors available.": "Geen monitors beschikbaar.",
|
||||
"Add one": "Voeg een toe",
|
||||
"No Monitors": "Geen Monitors",
|
||||
"Untitled Group": "Naamloze Groep",
|
||||
Services: "Diensten",
|
||||
Discard: "Weggooien",
|
||||
Cancel: "Annuleren",
|
||||
"Powered by": "Mogelijk gemaakt door",
|
||||
shrinkDatabaseDescription: "Trigger database VACUUM voor SQLite. Als de database na 1.10.0 gemaakt is, dan is AUTO_VACUUM al aangezet en deze actie niet nodig.",
|
||||
serwersms: "SerwerSMS.pl",
|
||||
serwersmsAPIUser: "API Gebruikersnaam (incl. webapi_ prefix)",
|
||||
serwersmsAPIPassword: "API Wachtwoord",
|
||||
serwersmsPhoneNumber: "Telefoon nummer",
|
||||
serwersmsSenderName: "SMS Zender Naam (geregistreerd via klant portaal)",
|
||||
stackfield: "Stackfield",
|
||||
Customize: "Aanpassen",
|
||||
"Custom Footer": "Aangepaste Footer",
|
||||
"Custom CSS": "Aangepaste CSS",
|
||||
smtpDkimSettings: "DKIM Instellingen",
|
||||
smtpDkimDesc: "Refereer alsjeblieft naar Nodemailer DKIM {0} voor gebruik.",
|
||||
documentation: "documentatie",
|
||||
smtpDkimDomain: "Domein Naam",
|
||||
smtpDkimKeySelector: "Sleutel Kiezer",
|
||||
smtpDkimPrivateKey: "Prive Sleutel",
|
||||
smtpDkimHashAlgo: "Hash Algoritme (Optioneel)",
|
||||
smtpDkimheaderFieldNames: "Header sleutels om te ondertekenen (Optioneel)",
|
||||
smtpDkimskipFields: "Header sleutels niet om te ondertekenen (Optioneel)",
|
||||
gorush: "Gorush",
|
||||
alerta: "Alerta",
|
||||
alertaApiEndpoint: "API Eindpunt",
|
||||
alertaEnvironment: "Omgeving",
|
||||
alertaApiKey: "API Sleutel",
|
||||
alertaAlertState: "Alert Staat",
|
||||
alertaRecoverState: "Herstel Staat",
|
||||
deleteStatusPageMsg: "Weet je zeker je deze status pagina wilt verwijderen?",
|
||||
Proxies: "Proxies",
|
||||
default: "Standaard",
|
||||
enabled: "Ingeschakeld",
|
||||
setAsDefault: "Stel in als standaard",
|
||||
deleteProxyMsg: "Weet je zeker dat je deze proxy wilt verwijderen voor alle monitors?",
|
||||
proxyDescription: "Proxies moeten worden toegewezen aan een monitor om te functioneren.",
|
||||
enableProxyDescription: "Deze proxy heeft geen effect op monitor verzoeken totdat het is geactiveerd. Je kunt tijdelijk de proxy uitschakelen voor alle monitors voor activatie status.",
|
||||
setAsDefaultProxyDescription: "Deze proxy wordt standaard aangezet voor alle nieuwe monitors. Je kunt nog steeds de proxy apart uitschakelen voor elke monitor.",
|
||||
"Certificate Chain": "Certificaat Chain",
|
||||
Valid: "Geldig",
|
||||
Invalid: "Ongeldig",
|
||||
AccessKeyId: "AccessKey ID",
|
||||
SecretAccessKey: "AccessKey Secret",
|
||||
PhoneNumbers: "TelefoonNummers",
|
||||
TemplateCode: "TemplateCode",
|
||||
SignName: "SignName",
|
||||
"Sms template must contain parameters: ": "Sms sjabloon moet de volgende parameters bevatten: ",
|
||||
"Bark Endpoint": "Bark Endpoint",
|
||||
WebHookUrl: "WebHookUrl",
|
||||
SecretKey: "SecretKey",
|
||||
"For safety, must use secret key": "Voor de veiligheid moet je de secret key gebruiken",
|
||||
"Device Token": "Apparaat Token",
|
||||
Platform: "Platform",
|
||||
iOS: "iOS",
|
||||
Android: "Android",
|
||||
Huawei: "Huawei",
|
||||
High: "Hoog",
|
||||
Retry: "Opnieuw",
|
||||
Topic: "Onderwerp",
|
||||
"WeCom Bot Key": "WeCom Bot Sleutel",
|
||||
"Setup Proxy": "Proxy instellen",
|
||||
"Proxy Protocol": "Proxy Protocol",
|
||||
"Proxy Server": "Proxy Server",
|
||||
"Proxy server has authentication": "Proxy server heeft authenticatie",
|
||||
User: "Gebruiker",
|
||||
Installed: "Geïnstalleerd",
|
||||
"Not installed": "Niet geïnstalleerd",
|
||||
Running: "Actief",
|
||||
"Not running": "Niet actief",
|
||||
"Remove Token": "Verwijder Token",
|
||||
Start: "Start",
|
||||
Stop: "Stop",
|
||||
"Uptime Kuma": "Uptime Kuma",
|
||||
"Add New Status Page": "Voeg nieuwe status pagina toe",
|
||||
Slug: "Slug",
|
||||
"Accept characters:": "Geaccepteerde tekens:",
|
||||
startOrEndWithOnly: "Start of eindig alleen met {0}",
|
||||
"No consecutive dashes": "Geen opeenvolgende streepjes",
|
||||
Next: "Volgende",
|
||||
"The slug is already taken. Please choose another slug.": "De slug is al in gebruik. Kies een andere slug.",
|
||||
"No Proxy": "Geen Proxy",
|
||||
"HTTP Basic Auth": "HTTP Basic Auth",
|
||||
"New Status Page": "Nieuwe Status Pagina",
|
||||
"Page Not Found": "Pagina Niet gevonden",
|
||||
"Reverse Proxy": "Reverse Proxy",
|
||||
Backup: "Backup",
|
||||
About: "Over",
|
||||
wayToGetCloudflaredURL: "(Download cloudflared van {0})",
|
||||
cloudflareWebsite: "Cloudflare Website",
|
||||
"Message:": "Bericht:",
|
||||
"Don't know how to get the token? Please read the guide:": "Lees de uitleg als je niet weet hoe je een token krijgt:",
|
||||
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "De huidge verbinding kan worden verbroken als je momenteel bent verbonden met Cloudflare Tunnel. Weet je zeker dat je het wilt stoppen? Typ je huidige wachtwoord om het te bevestigen.",
|
||||
"Other Software": "Andere Software",
|
||||
"For example: nginx, Apache and Traefik.": "Bijvoorbeeld: nginx, Apache and Traefik.",
|
||||
"Please read": "Lees alstublieft",
|
||||
"Subject:": "Onderwerp:",
|
||||
"Valid To:": "Geldig Tot:",
|
||||
"Days Remaining:": "Dagen Resterend:",
|
||||
"Issuer:": "Uitgever:",
|
||||
"Fingerprint:": "Vingerafruk:",
|
||||
"No status pages": "Geen status pagina's",
|
||||
"Domain Name Expiry Notification": "Domein Naam Verloop Notificatie",
|
||||
Proxy: "Proxy",
|
||||
"Date Created": "Datum Aangemaakt",
|
||||
onebotHttpAddress: "OneBot HTTP Adres",
|
||||
onebotMessageType: "OneBot Bericht Type",
|
||||
onebotGroupMessage: "Groep",
|
||||
onebotPrivateMessage: "Privé",
|
||||
onebotUserOrGroupId: "Groep/Gebruiker ID",
|
||||
onebotSafetyTips: "Voor de veiligheid moet een toegangssleutel worden ingesteld",
|
||||
"PushDeer Key": "PushDeer Key",
|
||||
"Footer Text": "Footer Tekst",
|
||||
"Show Powered By": "Laat 'Mogeljik gemaakt door' zien",
|
||||
"Domain Names": "Domein Namen",
|
||||
};
|
||||
|
@@ -434,7 +434,7 @@ export default {
|
||||
"Add New Status Page": "添加新的状态页",
|
||||
Slug: "路径",
|
||||
"Accept characters:": "可接受的字符:",
|
||||
"startOrEndWithOnly": "开头和结尾必须为 {0}",
|
||||
startOrEndWithOnly: "开头和结尾必须为 {0}",
|
||||
"No consecutive dashes": "不能有连续的破折号",
|
||||
Next: "下一步",
|
||||
"The slug is already taken. Please choose another slug.": "该路径已被使用。请选择其他路径。",
|
||||
@@ -450,12 +450,23 @@ export default {
|
||||
"Fingerprint:": "指纹:",
|
||||
"No status pages": "无状态页",
|
||||
"Domain Name Expiry Notification": "域名到期时通知",
|
||||
"Proxy": "代理",
|
||||
Proxy: "代理",
|
||||
"Date Created": "创建于",
|
||||
onebotHttpAddress: "OneBot HTTP 地址",
|
||||
onebotMessageType: "OneBot 消息类型",
|
||||
onebotGroupMessage: "群聊",
|
||||
onebotPrivateMessage: "私聊",
|
||||
onebotUserOrGroupId: "群组/用户ID",
|
||||
onebotSafetyTips: "出于安全原因,请务必设置AccessToken",
|
||||
onebotSafetyTips: "出于安全原因,请务必设置 AccessToken",
|
||||
topic: "Topic",
|
||||
topicExplanation: "MQTT 传递给监控的 Topic",
|
||||
successMessage: "成功时消息",
|
||||
successMessageExplanation: "MQTT 成功时所传递的消息",
|
||||
Customize: "自定义",
|
||||
"Custom Footer": "自定义底部",
|
||||
"Custom CSS": "自定义 CSS",
|
||||
"PushDeer Key": "PushDeer Key",
|
||||
"Footer Text": "底部自定义文本",
|
||||
"Show Powered By": "显示 Powered By",
|
||||
"Domain Names": "域名",
|
||||
};
|
||||
|
@@ -33,7 +33,7 @@ export default {
|
||||
Appearance: "外觀",
|
||||
Theme: "主題",
|
||||
General: "一般",
|
||||
"Primary Base URL": "主要基底 URL",
|
||||
"Primary Base URL": "主要基底網址",
|
||||
Version: "版本",
|
||||
"Check Update On GitHub": "在 GitHub 檢查更新",
|
||||
List: "清單",
|
||||
@@ -307,9 +307,12 @@ export default {
|
||||
PasswordsDoNotMatch: "密碼不相符。",
|
||||
records: "記錄",
|
||||
"One record": "一項記錄",
|
||||
"Showing {from} to {to} of {count} records": "正在顯示 {count} 項記錄中的 {from} 至 {to} 項",
|
||||
steamApiKeyDescription: "若要監測 Steam 遊戲伺服器,您將需要 Steam Web-API 金鑰。您可以在此註冊您的 API 金鑰:",
|
||||
"Current User": "目前使用者",
|
||||
topic: "Topic",
|
||||
topicExplanation: "要監測的 MQTT Topic",
|
||||
successMessage: "成功訊息",
|
||||
successMessageExplanation: "視為成功的 MQTT 訊息",
|
||||
recent: "最近",
|
||||
Done: "完成",
|
||||
Info: "資訊",
|
||||
@@ -355,6 +358,9 @@ export default {
|
||||
serwersmsPhoneNumber: "電話號碼",
|
||||
serwersmsSenderName: "SMS 寄件人名稱 (由客戶入口網站註冊)",
|
||||
stackfield: "Stackfield",
|
||||
Customize: "自訂",
|
||||
"Custom Footer": "自訂頁尾",
|
||||
"Custom CSS": "自訂 CSS",
|
||||
smtpDkimSettings: "DKIM 設定",
|
||||
smtpDkimDesc: "請參考 Nodemailer DKIM {0} 使用方式。",
|
||||
documentation: "文件",
|
||||
@@ -366,7 +372,7 @@ export default {
|
||||
smtpDkimskipFields: "不簽署的郵件標頭 (選填)",
|
||||
gorush: "Gorush",
|
||||
alerta: "Alerta",
|
||||
alertaApiEndpoint: "API Endpoint",
|
||||
alertaApiEndpoint: "API 端點",
|
||||
alertaEnvironment: "環境",
|
||||
alertaApiKey: "API 金鑰",
|
||||
alertaAlertState: "警示狀態",
|
||||
@@ -380,4 +386,80 @@ export default {
|
||||
proxyDescription: "必須將代理伺服器指派給監測器才能運作。",
|
||||
enableProxyDescription: "此代理伺服器在啟用前不會在監測器上生效,您可以藉由控制啟用狀態來暫時對所有的監測器停用代理伺服器。",
|
||||
setAsDefaultProxyDescription: "預設情況下,新監測器將啟用此代理伺服器。您仍可分別停用各監測器的代理伺服器。",
|
||||
"Certificate Chain": "憑證鏈結",
|
||||
Valid: "有效",
|
||||
Invalid: "無效",
|
||||
AccessKeyId: "AccessKey ID",
|
||||
SecretAccessKey: "AccessKey 密碼",
|
||||
PhoneNumbers: "PhoneNumbers",
|
||||
TemplateCode: "TemplateCode",
|
||||
SignName: "SignName",
|
||||
"Sms template must contain parameters: ": "Sms 範本必須包含參數:",
|
||||
"Bark Endpoint": "Bark 端點",
|
||||
WebHookUrl: "WebHookUrl",
|
||||
SecretKey: "SecretKey",
|
||||
"For safety, must use secret key": "為了安全起見,必須使用秘密金鑰",
|
||||
"Device Token": "裝置權杖",
|
||||
Platform: "平台",
|
||||
iOS: "iOS",
|
||||
Android: "Android",
|
||||
Huawei: "華為",
|
||||
High: "高",
|
||||
Retry: "重試",
|
||||
Topic: "Topic",
|
||||
"WeCom Bot Key": "WeCom 機器人金鑰",
|
||||
"Setup Proxy": "設置 Proxy",
|
||||
"Proxy Protocol": "Proxy 通訊協定",
|
||||
"Proxy Server": "Proxy 伺服器",
|
||||
"Proxy server has authentication": "Proxy 伺服器啟用了驗證功能",
|
||||
User: "使用者",
|
||||
Installed: "已安裝",
|
||||
"Not installed": "未安裝",
|
||||
Running: "執行中",
|
||||
"Not running": "未執行",
|
||||
"Remove Token": "移除權杖",
|
||||
Start: "開始",
|
||||
Stop: "停止",
|
||||
"Uptime Kuma": "Uptime Kuma",
|
||||
"Add New Status Page": "新增狀態頁",
|
||||
Slug: "Slug",
|
||||
"Accept characters:": "可用字元:",
|
||||
startOrEndWithOnly: "僅能使用 {0} 開頭或結尾",
|
||||
"No consecutive dashes": "不得連續使用破折號",
|
||||
Next: "下一步",
|
||||
"The slug is already taken. Please choose another slug.": "此 slug 已被使用。請選擇其他 slug。",
|
||||
"No Proxy": "無 Proxy",
|
||||
"HTTP Basic Auth": "HTTP 基本驗證",
|
||||
"New Status Page": "新狀態頁",
|
||||
"Page Not Found": "找不到頁面",
|
||||
"Reverse Proxy": "反向代理",
|
||||
Backup: "備份",
|
||||
About: "關於",
|
||||
wayToGetCloudflaredURL: "(從 {0} 下載 cloudflared)",
|
||||
cloudflareWebsite: "Cloudflare 網站",
|
||||
"Message:": "訊息:",
|
||||
"Don't know how to get the token? Please read the guide:": "不知道如何取得權杖嗎?請閱讀指南:",
|
||||
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "如果您目前正透過 Cloudflare Tunnel 連線,可能會導致連線中斷。您確定要停止嗎?請輸入密碼以確認。",
|
||||
"Other Software": "其他軟體",
|
||||
"For example: nginx, Apache and Traefik.": "例如 nginx、Apache 和 Traefik。",
|
||||
"Please read": "請閱覽",
|
||||
"Subject:": "簽發給:",
|
||||
"Valid To:": "有效期限:",
|
||||
"Days Remaining:": "剩餘天數:",
|
||||
"Issuer:": "簽發者:",
|
||||
"Fingerprint:": "指紋:",
|
||||
"No status pages": "無狀態頁",
|
||||
"Domain Name Expiry Notification": "網域名稱到期通知",
|
||||
Proxy: "Proxy",
|
||||
"Date Created": "建立日期",
|
||||
onebotHttpAddress: "OneBot HTTP 位址",
|
||||
onebotMessageType: "OneBot 訊息類型",
|
||||
onebotGroupMessage: "群組",
|
||||
onebotPrivateMessage: "私人",
|
||||
onebotUserOrGroupId: "群組/使用者 ID",
|
||||
onebotSafetyTips: "為了安全起見,必須設置存取權杖",
|
||||
"PushDeer Key": "PushDeer 金鑰",
|
||||
"Footer Text": "頁尾文字",
|
||||
"Show Powered By": "顯示技術支援文字",
|
||||
"Domain Names": "網域名稱",
|
||||
};
|
||||
|
@@ -38,14 +38,19 @@
|
||||
<font-awesome-icon icon="angle-down" />
|
||||
</div>
|
||||
<ul class="dropdown-menu">
|
||||
<li><span class="dropdown-item-text">Signed in as <strong>{{ $root.username }}</strong></span></li>
|
||||
<li>
|
||||
<i18n-t v-if="$root.username != null" tag="span" keypath="signedInDisp" class="dropdown-item-text">
|
||||
<strong>{{ $root.username }}</strong>
|
||||
</i18n-t>
|
||||
<span v-if="$root.username == null" class="dropdown-item-text">{{ $t("signedInDispDisabled") }}</span>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li>
|
||||
<router-link to="/settings" class="dropdown-item" :class="{ active: $route.path.includes('settings') }">
|
||||
<font-awesome-icon icon="cog" /> {{ $t("Settings") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="$root.loggedIn && $root.storage().token !== 'autoLogin'">
|
||||
<li v-if="$root.loggedIn && $root.socket.token !== 'autoLogin'">
|
||||
<button class="dropdown-item" @click="$root.logout">
|
||||
<font-awesome-icon icon="sign-out-alt" />
|
||||
{{ $t("Logout") }}
|
||||
@@ -230,8 +235,10 @@ main {
|
||||
.dropdown-menu {
|
||||
transition: all 0.2s;
|
||||
padding-left: 0;
|
||||
padding-bottom: 0;
|
||||
margin-top: 8px !important;
|
||||
border-radius: 20px;
|
||||
border-radius: 16px;
|
||||
overflow: hidden;
|
||||
|
||||
.dropdown-divider {
|
||||
margin: 0;
|
||||
|
@@ -103,8 +103,8 @@ export default {
|
||||
|
||||
socket.on("autoLogin", (monitorID, data) => {
|
||||
this.loggedIn = true;
|
||||
this.username = "No Auth";
|
||||
this.storage().token = "autoLogin";
|
||||
this.socket.token = "autoLogin";
|
||||
this.allowLoginDialog = false;
|
||||
});
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
</router-link>
|
||||
|
||||
<!-- Logout Button -->
|
||||
<a v-if="$root.isMobile && $root.loggedIn && $root.storage().token !== 'autoLogin'" class="logout" @click.prevent="$root.logout">
|
||||
<a v-if="$root.isMobile && $root.loggedIn && $root.socket.token !== 'autoLogin'" class="logout" @click.prevent="$root.logout">
|
||||
<div class="menu-item">
|
||||
<font-awesome-icon icon="sign-out-alt" />
|
||||
{{ $t("Logout") }}
|
||||
|
@@ -52,7 +52,7 @@
|
||||
<!-- Domain Name List -->
|
||||
<div class="my-3">
|
||||
<label class="form-label">
|
||||
Domain Names
|
||||
{{ $t("Domain Names") }}
|
||||
<font-awesome-icon icon="plus-circle" class="btn-add-domain action text-primary" @click="addDomainField" />
|
||||
</label>
|
||||
|
||||
@@ -707,7 +707,7 @@ export default {
|
||||
},
|
||||
|
||||
postIncident() {
|
||||
if (this.incident.title == "" || this.incident.content == "") {
|
||||
if (this.incident.title === "" || this.incident.content === "") {
|
||||
toast.error(this.$t("Please input title and content"));
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user