Merge branch 'louislam:master' into tags-on-status

This commit is contained in:
Jasper Miller-Waugh 2021-11-07 14:39:43 +13:00 committed by GitHub
commit e4506963d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 233 additions and 211 deletions

View file

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

View file

@ -1,8 +1,23 @@
name: "❓ Ask for help" name: "❓ Ask for help"
description: "Submit any question related to Uptime Kuma" description: "Submit any question related to Uptime Kuma"
title: "[Help]: <title>" #title: "[Help] "
labels: [help] labels: [help]
body: body:
- type: checkboxes
id: no-duplicate-issues
attributes:
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
- type: checkboxes
attributes:
label: "🛡️ Security Policy"
description: Please review the security policy before reporting security related issues/bugs.
options:
- label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
required: true
- type: textarea - type: textarea
id: steps-to-reproduce id: steps-to-reproduce
validations: validations:
@ -14,17 +29,17 @@ body:
- type: input - type: input
id: uptime-kuma-version id: uptime-kuma-version
attributes: attributes:
label: "🐻 Uptime-Kuma version" label: "🐻 Uptime-Kuma Version"
description: "Which version of Uptime-Kuma are you running?" description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1"
placeholder: "Ex. 1.9.x" placeholder: "Ex. 1.10.0"
validations: validations:
required: true required: true
- type: input - type: input
id: operating-system id: operating-system
attributes: attributes:
label: "💻 Operating System" label: "💻 Operating System and Arch"
description: "Which OS is your server/device running on?" description: "Which OS is your server/device running on?"
placeholder: "Ex. Ubuntu 20.04" placeholder: "Ex. Ubuntu 20.04 x86"
validations: validations:
required: true required: true
- type: input - type: input
@ -32,23 +47,15 @@ body:
attributes: attributes:
label: "🌐 Browser" label: "🌐 Browser"
description: "Which browser are you running on?" description: "Which browser are you running on?"
placeholder: "Ex. Firefox" placeholder: "Ex. Google Chrome 95.0.4638.69"
validations: validations:
required: true required: true
- type: input - type: input
id: docker-version id: docker-version
attributes: attributes:
label: "🐋 Docker" label: "🐋 Docker Version"
description: "If running with Docker, which version are you running?" description: "If running with Docker, which version are you running?"
placeholder: "Ex. 20.10.9" placeholder: "Ex. Docker 20.10.9 / K8S / Podman"
validations:
required: false
- type: input
id: docker-image-tag
attributes:
label: "🏷️ Docker Image Tag"
description: "Which Docker image tag are you using? If running '1' or 'latest', please specify image hash."
placeholder: "Ex. 1.9.1"
validations: validations:
required: false required: false
- type: input - type: input
@ -56,21 +63,6 @@ body:
attributes: attributes:
label: "🟩 NodeJS Version" label: "🟩 NodeJS Version"
description: "If running with Node.js? which version are you running?" description: "If running with Node.js? which version are you running?"
placeholder: "14.x" placeholder: "Ex. 14.18.0"
validations: validations:
required: false required: false
- 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=)"
options:
- label: "I checked and didn't find similar question"
required: true
- type: checkboxes
attributes:
label: "🛡️ Security Policy"
description: Please review the security policy before reporting security related issues/bugs.
options:
- label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
required: true

View file

@ -1,8 +1,30 @@
name: "🐛 Bug Report" name: "🐛 Bug Report"
description: "Submit a bug report to help us improve" description: "Submit a bug report to help us improve"
title: "[Bug]: <title>" #title: "[Bug] "
labels: [bug] labels: [bug]
body: body:
- type: checkboxes
id: no-duplicate-issues
attributes:
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
- type: checkboxes
attributes:
label: "🛡️ Security Policy"
description: Please review the security policy before reporting security related issues/bugs.
options:
- label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
required: true
- type: textarea
id: description
validations:
required: false
attributes:
label: "Description"
description: "You could also upload screenshots"
- type: textarea - type: textarea
id: steps-to-reproduce id: steps-to-reproduce
validations: validations:
@ -16,7 +38,7 @@ body:
validations: validations:
required: true required: true
attributes: attributes:
label: "👍 Expected behavior" label: "👀 Expected behavior"
description: "What did you think would happen?" description: "What did you think would happen?"
placeholder: "..." placeholder: "..."
- type: textarea - type: textarea
@ -24,23 +46,23 @@ body:
validations: validations:
required: true required: true
attributes: attributes:
label: "👎 Actual Behavior" label: "😓 Actual Behavior"
description: "What actually happen?" description: "What actually happen?"
placeholder: "..." placeholder: "..."
- type: input - type: input
id: uptime-kuma-version id: uptime-kuma-version
attributes: attributes:
label: "🐻 Uptime-Kuma version" label: "🐻 Uptime-Kuma Version"
description: "Which version of Uptime-Kuma are you running?" description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1"
placeholder: "Ex. 1.9.x" placeholder: "Ex. 1.10.0"
validations: validations:
required: true required: true
- type: input - type: input
id: operating-system id: operating-system
attributes: attributes:
label: "💻 Operating System" label: "💻 Operating System and Arch"
description: "Which OS is your server/device running on?" description: "Which OS is your server/device running on?"
placeholder: "Ex. Ubuntu 20.04" placeholder: "Ex. Ubuntu 20.04 x86"
validations: validations:
required: true required: true
- type: input - type: input
@ -48,23 +70,15 @@ body:
attributes: attributes:
label: "🌐 Browser" label: "🌐 Browser"
description: "Which browser are you running on?" description: "Which browser are you running on?"
placeholder: "Ex. Firefox" placeholder: "Ex. Google Chrome 95.0.4638.69"
validations: validations:
required: true required: true
- type: input - type: input
id: docker-version id: docker-version
attributes: attributes:
label: "🐋 Docker" label: "🐋 Docker Version"
description: "If running with Docker, which version are you running?" description: "If running with Docker, which version are you running?"
placeholder: "Ex. 20.10.9" placeholder: "Ex. Docker 20.10.9 / K8S / Podman"
validations:
required: false
- type: input
id: docker-image-tag
attributes:
label: "🏷️ Docker Image Tag"
description: "Which Docker image tag are you using? If running '1' or 'latest', please specify image hash."
placeholder: "Ex. 1.9.1"
validations: validations:
required: false required: false
- type: input - type: input
@ -72,7 +86,7 @@ body:
attributes: attributes:
label: "🟩 NodeJS Version" label: "🟩 NodeJS Version"
description: "If running with Node.js? which version are you running?" description: "If running with Node.js? which version are you running?"
placeholder: "14.x" placeholder: "Ex. 14.18.0"
validations: validations:
required: false required: false
- type: textarea - type: textarea
@ -83,18 +97,3 @@ body:
render: shell render: shell
validations: validations:
required: false required: false
- 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=)"
options:
- label: "I checked and didn't find similar issue"
required: true
- type: checkboxes
attributes:
label: "🛡️ Security Policy"
description: Please review the security policy before reporting security related issues/bugs.
options:
- label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
required: true

View file

@ -1,8 +1,16 @@
name: 🚀 Feature Request name: 🚀 Feature Request
description: "Submit a proposal for a new feature" description: "Submit a proposal for a new feature"
title: "[Feature]: <title>" #title: "[Feature] "
labels: [enhancement] labels: [enhancement]
body: body:
- type: checkboxes
id: no-duplicate-issues
attributes:
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
- type: dropdown - type: dropdown
id: feature-area id: feature-area
attributes: attributes:
@ -49,11 +57,3 @@ body:
label: "📝 Additional Context" label: "📝 Additional Context"
description: "Add any other context or screenshots about the feature request here." description: "Add any other context or screenshots about the feature request here."
placeholder: "..." placeholder: "..."
- 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=)"
options:
- label: "I checked and didn't find similar feature request"
required: true

View file

@ -24,3 +24,5 @@ Please delete options that are not relevant.
- [ ] My code needed automated testing. I have added them (this is optional task) - [ ] My code needed automated testing. I have added them (this is optional task)
## Screenshots (if any) ## Screenshots (if any)
Please do not use any external image service. Instead, just paste in or drag and drop the image here and it will be uploaded automatically.

View file

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

View file

@ -1,5 +1,11 @@
# Security Policy # Security Policy
## Reporting a Vulnerability
Please report security issues to uptime@kuma.pet.
Do not use the issue tracker or discuss it in the public as it will cause more damage.
## Supported Versions ## Supported Versions
Use this section to tell people about which versions of your project are Use this section to tell people about which versions of your project are
@ -23,9 +29,3 @@ currently being supported with security updates.
| debian | :white_check_mark: | | debian | :white_check_mark: |
| alpine | :white_check_mark: | | alpine | :white_check_mark: |
| All other tags | ❌ | | All other tags | ❌ |
## Reporting a Vulnerability
Please report security issues to uptime@kuma.pet.
Do not use the issue tracker or discuss it in the public as it will cause more damage.

View file

@ -4,9 +4,7 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY . . COPY . .
RUN npm ci && \ RUN npm ci --production && \
npm run build && \
npm ci --production && \
chmod +x /app/extra/entrypoint.sh 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"] ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"]
CMD ["node", "server/server.js"] CMD ["node", "server/server.js"]
FROM release AS nightly FROM release AS nightly
RUN npm run mark-as-nightly RUN npm run mark-as-nightly
# Upload the artifact to Github # Upload the artifact to Github
FROM louislam/uptime-kuma:base-debian AS upload-artifact FROM louislam/uptime-kuma:base-debian AS upload-artifact
WORKDIR / WORKDIR /

View file

@ -4,9 +4,7 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY . . COPY . .
RUN npm ci && \ RUN npm ci --production && \
npm run build && \
npm ci --production && \
chmod +x /app/extra/entrypoint.sh 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"] ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"]
CMD ["node", "server/server.js"] CMD ["node", "server/server.js"]
FROM release AS nightly FROM release AS nightly
RUN npm run mark-as-nightly RUN npm run mark-as-nightly

View file

@ -1,25 +1,41 @@
/* /*
* This script should be run after a period of time (180s), because the server may need some time to prepare. * This script should be run after a period of time (180s), because the server may need some time to prepare.
*/ */
const { FBSD } = require("../server/util-server");
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
let client; let client;
if (process.env.SSL_KEY && process.env.SSL_CERT) { const sslKey = process.env.UPTIME_KUMA_SSL_KEY || process.env.SSL_KEY || undefined;
const sslCert = process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || undefined;
if (sslKey && sslCert) {
client = require("https"); client = require("https");
} else { } else {
client = require("http"); client = require("http");
} }
// If host is omitted, the server will accept connections on the unspecified IPv6 address (::) when IPv6 is available and the unspecified IPv4 address (0.0.0.0) otherwise.
// Dual-stack support for (::)
let hostname = process.env.UPTIME_KUMA_HOST;
// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
if (!hostname && !FBSD) {
hostname = process.env.HOST;
}
const port = parseInt(process.env.UPTIME_KUMA_PORT || process.env.PORT || 3001);
let options = { let options = {
host: process.env.HOST || "127.0.0.1", host: hostname || "127.0.0.1",
port: parseInt(process.env.PORT) || 3001, port: port,
timeout: 28 * 1000, timeout: 28 * 1000,
}; };
let request = client.request(options, (res) => { let request = client.request(options, (res) => {
console.log(`Health Check OK [Res Code: ${res.statusCode}]`); console.log(`Health Check OK [Res Code: ${res.statusCode}]`);
if (res.statusCode === 200) { if (res.statusCode === 302) {
process.exit(0); process.exit(0);
} else { } else {
process.exit(1); process.exit(1);

View file

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/svg+xml" href="/icon.svg" /> <link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="manifest" href="manifest.json" /> <link rel="manifest" href="/manifest.json" />
<meta name="theme-color" id="theme-color" content="" /> <meta name="theme-color" id="theme-color" content="" />
<meta name="description" content="Uptime Kuma monitoring tool" /> <meta name="description" content="Uptime Kuma monitoring tool" />
<title>Uptime Kuma</title> <title>Uptime Kuma</title>

32
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "uptime-kuma", "name": "uptime-kuma",
"version": "1.9.1", "version": "1.9.2",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "uptime-kuma", "name": "uptime-kuma",
"version": "1.9.1", "version": "1.9.2",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "~1.2.36", "@fortawesome/fontawesome-svg-core": "~1.2.36",
@ -18,10 +18,10 @@
"args-parser": "~1.3.0", "args-parser": "~1.3.0",
"axios": "~0.21.4", "axios": "~0.21.4",
"bcryptjs": "~2.4.3", "bcryptjs": "~2.4.3",
"bootstrap": "~5.1.1", "bootstrap": "~5.1.3",
"bree": "~6.3.1", "bree": "~6.3.1",
"chardet": "^1.3.0", "chardet": "^1.3.0",
"chart.js": "~3.5.1", "chart.js": "~3.6.0",
"chartjs-adapter-dayjs": "~1.0.0", "chartjs-adapter-dayjs": "~1.0.0",
"check-password-strength": "^2.0.3", "check-password-strength": "^2.0.3",
"command-exists": "~1.2.9", "command-exists": "~1.2.9",
@ -50,9 +50,9 @@
"tcp-ping": "~0.1.1", "tcp-ping": "~0.1.1",
"thirty-two": "~1.0.2", "thirty-two": "~1.0.2",
"timezones-list": "~3.0.1", "timezones-list": "~3.0.1",
"v-pagination-3": "~0.1.6", "v-pagination-3": "~0.1.7",
"vue": "next", "vue": "next",
"vue-chart-3": "~0.5.8", "vue-chart-3": "~0.5.11",
"vue-confirm-dialog": "~1.0.2", "vue-confirm-dialog": "~1.0.2",
"vue-contenteditable": "~3.0.4", "vue-contenteditable": "~3.0.4",
"vue-i18n": "~9.1.9", "vue-i18n": "~9.1.9",
@ -67,9 +67,9 @@
"@babel/eslint-parser": "~7.15.7", "@babel/eslint-parser": "~7.15.7",
"@babel/preset-env": "^7.15.8", "@babel/preset-env": "^7.15.8",
"@types/bootstrap": "~5.1.6", "@types/bootstrap": "~5.1.6",
"@vitejs/plugin-legacy": "~1.6.1", "@vitejs/plugin-legacy": "~1.6.2",
"@vitejs/plugin-vue": "~1.9.2", "@vitejs/plugin-vue": "~1.9.4",
"@vue/compiler-sfc": "~3.2.19", "@vue/compiler-sfc": "~3.2.20",
"babel-plugin-rewire": "~1.2.0", "babel-plugin-rewire": "~1.2.0",
"core-js": "~3.18.1", "core-js": "~3.18.1",
"cross-env": "~7.0.3", "cross-env": "~7.0.3",
@ -83,7 +83,7 @@
"stylelint": "~13.13.1", "stylelint": "~13.13.1",
"stylelint-config-standard": "~22.0.0", "stylelint-config-standard": "~22.0.0",
"typescript": "~4.4.3", "typescript": "~4.4.3",
"vite": "~2.6.4" "vite": "~2.6.13"
}, },
"engines": { "engines": {
"node": "14.*" "node": "14.*"
@ -4259,9 +4259,9 @@
"integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A==" "integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A=="
}, },
"node_modules/chart.js": { "node_modules/chart.js": {
"version": "3.5.1", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz",
"integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ=="
}, },
"node_modules/chartjs-adapter-dayjs": { "node_modules/chartjs-adapter-dayjs": {
"version": "1.0.0", "version": "1.0.0",
@ -18000,9 +18000,9 @@
"integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A==" "integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A=="
}, },
"chart.js": { "chart.js": {
"version": "3.5.1", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz",
"integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ=="
}, },
"chartjs-adapter-dayjs": { "chartjs-adapter-dayjs": {
"version": "1.0.0", "version": "1.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "uptime-kuma", "name": "uptime-kuma",
"version": "1.9.2", "version": "1.10.0",
"license": "MIT", "license": "MIT",
"repository": { "repository": {
"type": "git", "type": "git",
@ -30,13 +30,13 @@
"build-docker": "npm run build-docker-debian && npm run build-docker-alpine", "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-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-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.2-alpine --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.10.0-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-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.10.0 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.10.0-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": "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-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", "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", "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.2 && npm ci --production && npm run download-dist", "setup": "git checkout 1.10.0 && npm ci --production && npm run download-dist",
"download-dist": "node extra/download-dist.js", "download-dist": "node extra/download-dist.js",
"update-version": "node extra/update-version.js", "update-version": "node extra/update-version.js",
"mark-as-nightly": "node extra/mark-as-nightly.js", "mark-as-nightly": "node extra/mark-as-nightly.js",
@ -61,10 +61,10 @@
"args-parser": "~1.3.0", "args-parser": "~1.3.0",
"axios": "~0.21.4", "axios": "~0.21.4",
"bcryptjs": "~2.4.3", "bcryptjs": "~2.4.3",
"bootstrap": "~5.1.1", "bootstrap": "5.1.3",
"bree": "~6.3.1", "bree": "~6.3.1",
"chardet": "^1.3.0", "chardet": "^1.3.0",
"chart.js": "~3.5.1", "chart.js": "~3.6.0",
"chartjs-adapter-dayjs": "~1.0.0", "chartjs-adapter-dayjs": "~1.0.0",
"check-password-strength": "^2.0.3", "check-password-strength": "^2.0.3",
"command-exists": "~1.2.9", "command-exists": "~1.2.9",
@ -93,9 +93,9 @@
"tcp-ping": "~0.1.1", "tcp-ping": "~0.1.1",
"thirty-two": "~1.0.2", "thirty-two": "~1.0.2",
"timezones-list": "~3.0.1", "timezones-list": "~3.0.1",
"v-pagination-3": "~0.1.6", "v-pagination-3": "~0.1.7",
"vue": "next", "vue": "next",
"vue-chart-3": "~0.5.8", "vue-chart-3": "~0.5.11",
"vue-confirm-dialog": "~1.0.2", "vue-confirm-dialog": "~1.0.2",
"vue-contenteditable": "~3.0.4", "vue-contenteditable": "~3.0.4",
"vue-i18n": "~9.1.9", "vue-i18n": "~9.1.9",
@ -110,9 +110,9 @@
"@babel/eslint-parser": "~7.15.7", "@babel/eslint-parser": "~7.15.7",
"@babel/preset-env": "^7.15.8", "@babel/preset-env": "^7.15.8",
"@types/bootstrap": "~5.1.6", "@types/bootstrap": "~5.1.6",
"@vitejs/plugin-legacy": "~1.6.1", "@vitejs/plugin-legacy": "~1.6.2",
"@vitejs/plugin-vue": "~1.9.2", "@vitejs/plugin-vue": "~1.9.4",
"@vue/compiler-sfc": "~3.2.19", "@vue/compiler-sfc": "~3.2.20",
"babel-plugin-rewire": "~1.2.0", "babel-plugin-rewire": "~1.2.0",
"core-js": "~3.18.1", "core-js": "~3.18.1",
"cross-env": "~7.0.3", "cross-env": "~7.0.3",
@ -126,6 +126,6 @@
"stylelint": "~13.13.1", "stylelint": "~13.13.1",
"stylelint-config-standard": "~22.0.0", "stylelint-config-standard": "~22.0.0",
"typescript": "~4.4.3", "typescript": "~4.4.3",
"vite": "~2.6.4" "vite": "~2.6.13"
} }
} }

View file

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

View file

@ -27,7 +27,7 @@ class Feishu extends NotificationProvider {
content: { content: {
post: { post: {
zh_cn: { zh_cn: {
title: "UptimeKuma Alert: " + monitorJSON["name"], title: "UptimeKuma Alert: [Down] " + monitorJSON["name"],
content: [ content: [
[ [
{ {
@ -54,7 +54,7 @@ class Feishu extends NotificationProvider {
content: { content: {
post: { post: {
zh_cn: { zh_cn: {
title: "UptimeKuma Alert: " + monitorJSON["name"], title: "UptimeKuma Alert: [Up] " + monitorJSON["name"],
content: [ content: [
[ [
{ {

View file

@ -186,6 +186,15 @@ exports.entryPage = "dashboard";
// Normal Router here // Normal Router here
// *************************** // ***************************
// Entry Page
app.get("/", async (_request, response) => {
if (exports.entryPage === "statusPage") {
response.redirect("/status");
} else {
response.redirect("/dashboard");
}
});
// Robots.txt // Robots.txt
app.get("/robots.txt", async (_request, response) => { app.get("/robots.txt", async (_request, response) => {
let txt = "User-agent: *\nDisallow:"; let txt = "User-agent: *\nDisallow:";

View file

@ -189,7 +189,7 @@ textarea.form-control {
opacity: 1; opacity: 1;
} }
.table-hover > tbody > tr:hover { .table-hover > tbody > tr:hover > * {
--bs-table-accent-bg: #070a10; --bs-table-accent-bg: #070a10;
color: $dark-font-color; color: $dark-font-color;
} }

View file

@ -77,7 +77,7 @@ export default {
"Accepted Status Codes": "Допустими статус кодове", "Accepted Status Codes": "Допустими статус кодове",
Save: "Запази", Save: "Запази",
Notifications: "Известявания", Notifications: "Известявания",
"Not available, please setup.": "Не е налично. Моля, настройте.", "Not available, please setup.": "Не са налични. Моля, настройте.",
"Setup Notification": "Настройки за известявания", "Setup Notification": "Настройки за известявания",
Light: "Светла", Light: "Светла",
Dark: "Тъмна", Dark: "Тъмна",
@ -141,7 +141,7 @@ export default {
Overwrite: "Презапиши", Overwrite: "Презапиши",
Options: "Опции", Options: "Опции",
"Keep both": "Запази двете", "Keep both": "Запази двете",
"Verify Token": "Проверка на токен код", "Verify Token": "Провери токен код",
"Setup 2FA": "Настройка 2FA", "Setup 2FA": "Настройка 2FA",
"Enable 2FA": "Включи 2FA", "Enable 2FA": "Включи 2FA",
"Disable 2FA": "Изключи 2FA", "Disable 2FA": "Изключи 2FA",
@ -298,8 +298,13 @@ export default {
HeadersInvalidFormat: "Заявените хедъри не са валидни JSON: ", HeadersInvalidFormat: "Заявените хедъри не са валидни JSON: ",
BodyInvalidFormat: "Заявеното съобщение не е валиден JSON: ", BodyInvalidFormat: "Заявеното съобщение не е валиден JSON: ",
"Monitor History": "История на мониторите", "Monitor History": "История на мониторите",
clearDataOlderThan: "Ще се съхранява за {0} дни.", clearDataOlderThan: "Ще се съхранява {0} дни.",
records: "записа", records: "записа",
"One record": "Един запис", "One record": "Един запис",
steamApiKeyDescription: "За да мониторирате Steam Gameserver се нуждаете от Steam Web-API ключ. Може да регистрирате Вашия API ключ тук: ", steamApiKeyDescription: "За да мониторирате Steam Gameserver се нуждаете от Steam Web-API ключ. Може да регистрирате Вашия API ключ тук: ",
clicksendsms: "ClickSend SMS",
apiCredentials: "API удостоверяване",
PasswordsDoNotMatch: "Паролите не съвпадат.",
"Current User": "Текущ потребител",
recent: "Скорошни",
}; };

View file

@ -306,4 +306,5 @@ export default {
"One record": "One record", "One record": "One record",
steamApiKeyDescription: "For monitoring a Steam Game Server you need a Steam Web-API key. You can register your API key here: ", steamApiKeyDescription: "For monitoring a Steam Game Server you need a Steam Web-API key. You can register your API key here: ",
"Current User": "Current User", "Current User": "Current User",
recent: "Recent",
}; };

View file

@ -5,7 +5,7 @@ export default {
retriesDescription: "Broj ponovnih pokušaja prije nego će se servis označiti kao DOWN te poslati obavijest", 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", ignoreTLSError: "Ignoriraj TLS/SSL pogreške za HTTPS web stranice",
upsideDownModeDescription: "Preokreni logiku statusa. Ako je usluga dostupna, smatra se da je DOWN.", 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.", acceptedStatusCodesDescription: "Odaberite statusne kodove koji se smatraju uspješnim odgovorom.",
passwordNotMatchMsg: "Lozinke se ne poklapaju.", passwordNotMatchMsg: "Lozinke se ne poklapaju.",
notificationDescription: "Obavijesti će funkcionirati samo ako su dodijeljene monitoru.", 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?", 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?", clearHeartbeatsMsg: "Jeste li sigurni da želite izbrisati sve zapise o provjerama za ovaj monitor?",
confirmClearStatisticsMsg: "Jeste li sigurni da želite izbrisati SVE statistike?", 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.", confirmImportMsg: "Jeste li sigurni da želite pokrenuti uvoz? Provjerite jeste li odabrali ispravnu opciju uvoza.",
twoFAVerifyLabel: "Unesite svoj 2FA token:", twoFAVerifyLabel: "Unesite svoj 2FA token:",
tokenValidSettingsMsg: "Token je važeći! Sada možete spremiti postavke dvofaktorske autentikacije.", tokenValidSettingsMsg: "Token je važeći! Sada možete spremiti postavke dvofaktorske autentikacije.",
@ -44,7 +44,7 @@ export default {
Down: "Nedostupno", Down: "Nedostupno",
Pending: "U tijeku", Pending: "U tijeku",
Unknown: "Nepoznato", Unknown: "Nepoznato",
Pause: "Pauziraj", Pause: "Pauzirano",
Name: "Naziv monitora", Name: "Naziv monitora",
Status: "Status", Status: "Status",
DateTime: "Vremenska oznaka", DateTime: "Vremenska oznaka",
@ -77,7 +77,7 @@ export default {
"Max. Redirects": "Maksimalan broj preusmjeravanja", "Max. Redirects": "Maksimalan broj preusmjeravanja",
"Accepted Status Codes": "Prihvaćeni statusni kodovi", "Accepted Status Codes": "Prihvaćeni statusni kodovi",
"Push URL": "Push URL", "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}", pushOptionalParams: "Neobavezni parametri: {0}",
Save: "Spremi", Save: "Spremi",
Notifications: "Obavijesti", Notifications: "Obavijesti",
@ -135,9 +135,9 @@ export default {
Events: "Events", Events: "Events",
Heartbeats: "Provjere", Heartbeats: "Provjere",
"Auto Get": "Automatski dohvat", "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.", 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.", alertNoFile: "Datoteka za uvoz nije odabrana.",
alertWrongFileType: "Datoteka za uvoz nije u JSON formatu.", alertWrongFileType: "Datoteka za uvoz nije u JSON formatu.",
"Clear all statistics": "Obriši sve statistike", "Clear all statistics": "Obriši sve statistike",
@ -197,14 +197,14 @@ export default {
webhook: "Webhook", webhook: "Webhook",
"Post URL": "Post URL", "Post URL": "Post URL",
"Content Type": "Tip sadržaja (Content Type)", "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}", webhookFormDataDesc: "{multipart} je moguća alternativa za PHP, samo je potrebno parsirati JSON koristeći {decodeFunction}",
smtp: "E-pošta (SMTP)", smtp: "E-pošta (SMTP)",
secureOptionNone: "Bez sigurnosti / STARTTLS (25, 587)", secureOptionNone: "Bez sigurnosti / STARTTLS (25, 587)",
secureOptionTLS: "TLS (465)", secureOptionTLS: "TLS (465)",
"Ignore TLS Error": "Ignoriraj greške TLS-a", "Ignore TLS Error": "Ignoriraj greške TLS-a",
"From Email": "Adresa za From polje", "From Email": "Adresa za \"From\" polje",
emailCustomSubject: "Prilagođeno Subject polje", emailCustomSubject: "Prilagođeno \"Subject\" polje",
"To Email": "Odredišne adrese e-pošte", "To Email": "Odredišne adrese e-pošte",
smtpCC: "Cc", smtpCC: "Cc",
smtpBCC: "Bcc", smtpBCC: "Bcc",
@ -233,7 +233,7 @@ export default {
"Uptime Kuma URL": "Uptime Kuma URL", "Uptime Kuma URL": "Uptime Kuma URL",
aboutWebhooks: "Dodatne informacije o webhookovima su dostupne na: {0}", 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", 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}", emojiCheatSheet: "Popis emotikona: {0}",
"rocket.chat": "Rocket.Chat", "rocket.chat": "Rocket.Chat",
pushover: "Pushover", pushover: "Pushover",
@ -252,7 +252,7 @@ export default {
"Notification Sound": "Zvuk obavijesti", "Notification Sound": "Zvuk obavijesti",
"More info on:": "Više informacija na: {0}", "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.", 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", "SMS Type": "Tip SMS-a",
octopushTypePremium: "Premium (Brzo - preporučeno za obavijesti)", octopushTypePremium: "Premium (Brzo - preporučeno za obavijesti)",
octopushTypeLowCost: "Low Cost (Sporo - mobilni operateri ponekad blokiraju ove poruke)", octopushTypeLowCost: "Low Cost (Sporo - mobilni operateri ponekad blokiraju ove poruke)",
@ -277,7 +277,7 @@ export default {
"Basic Settings": "Osnovne Postavke", "Basic Settings": "Osnovne Postavke",
"User ID": "Korisnički ID", "User ID": "Korisnički ID",
"Messaging API": "API za razmjenu poruka", "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", "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\".", 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", 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.", 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.", 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).", 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", promosmsSMSSender: "Naziv SMS pošiljatelja: Registriran naziv ili jedan od zadanih: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
"Feishu WebHookUrl": "Feishu URL webhooka", "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", "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.", 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", Method: "Metoda",
Body: "Tijelo", Body: "Tijelo",
Headers: "Zaglavlja", Headers: "Zaglavlja",
PushUrl: "Push URL", PushUrl: "Push URL",
HeadersInvalidFormat: "Zaglavlja nisu nije valjani JSON: ", HeadersInvalidFormat: "Zaglavlja nisu nije valjani JSON: ",
BodyInvalidFormat: "Tijelo zahjeva nije valjani JSON: ", BodyInvalidFormat: "Tijelo zahtjeva nije valjani JSON: ",
"Monitor History": "Povijest monitora", "Monitor History": "Povijest monitora",
clearDataOlderThan: "Podaci o povijesti monitora čuvaju se {0} dana.", clearDataOlderThan: "Podaci o povijesti monitora čuvaju se {0} dana.",
PasswordsDoNotMatch: "Lozinke se ne poklapaju.", PasswordsDoNotMatch: "Lozinke se ne poklapaju.",

View file

@ -28,7 +28,7 @@ export default {
confirmDisableTwoFAMsg: "Jesteś pewien, że chcesz wyłączyć 2FA?", confirmDisableTwoFAMsg: "Jesteś pewien, że chcesz wyłączyć 2FA?",
Settings: "Ustawienia", Settings: "Ustawienia",
Dashboard: "Panel", Dashboard: "Panel",
"New Update": "Nowa Aktualizacja", "New Update": "Nowa aktualizacja",
Language: "Język", Language: "Język",
Appearance: "Wygląd", Appearance: "Wygląd",
Theme: "Motyw", Theme: "Motyw",
@ -37,7 +37,7 @@ export default {
"Check Update On GitHub": "Sprawdź aktualizację na GitHub", "Check Update On GitHub": "Sprawdź aktualizację na GitHub",
List: "Lista", List: "Lista",
Add: "Dodaj", Add: "Dodaj",
"Add New Monitor": "Dodaj Monitor", "Add New Monitor": "Dodaj monitor",
"Quick Stats": "Szybki podgląd statystyk", "Quick Stats": "Szybki podgląd statystyk",
Up: "Online", Up: "Online",
Down: "Offline", Down: "Offline",
@ -53,8 +53,8 @@ export default {
Edit: "Edytuj", Edit: "Edytuj",
Delete: "Usuń", Delete: "Usuń",
Current: "Aktualny", Current: "Aktualny",
Uptime: "Czas Pracy", Uptime: "Czas pracy",
"Cert Exp.": "Certyfikat Wygasa", "Cert Exp.": "Certyfikat wygasa",
days: "dni", days: "dni",
day: "dzień", day: "dzień",
"-day": " dni", "-day": " dni",
@ -62,9 +62,9 @@ export default {
"-hour": " godzin", "-hour": " godzin",
Response: "Odpowiedź", Response: "Odpowiedź",
Ping: "Ping", Ping: "Ping",
"Monitor Type": "Rodzaj Monitora", "Monitor Type": "Rodzaj monitora",
Keyword: "Słowo kluczowe", Keyword: "Słowo kluczowe",
"Friendly Name": "Przyjazna Nazwa", "Friendly Name": "Przyjazna nazwa",
URL: "URL", URL: "URL",
Hostname: "Hostname", Hostname: "Hostname",
Port: "Port", Port: "Port",
@ -73,12 +73,12 @@ export default {
"Heartbeat Retry Interval": "Częstotliwość ponawiania bicia serca", "Heartbeat Retry Interval": "Częstotliwość ponawiania bicia serca",
Advanced: "Zaawansowane", Advanced: "Zaawansowane",
"Upside Down Mode": "Tryb odwrócony", "Upside Down Mode": "Tryb odwrócony",
"Max. Redirects": "Maks. Przekierowań", "Max. Redirects": "Maks. przekierowań",
"Accepted Status Codes": "Akceptowane kody statusu", "Accepted Status Codes": "Akceptowane kody statusu",
Save: "Zapisz", Save: "Zapisz",
Notifications: "Powiadomienia", Notifications: "Powiadomienia",
"Not available, please setup.": "Niedostępne, proszę skonfigurować.", "Not available, please setup.": "Niedostępne, proszę skonfigurować.",
"Setup Notification": "Skonfiguruj Powiadomienie", "Setup Notification": "Skonfiguruj powiadomienie",
Light: "Jasny", Light: "Jasny",
Dark: "Ciemny", Dark: "Ciemny",
Auto: "Automatyczny", Auto: "Automatyczny",
@ -122,7 +122,7 @@ export default {
"Export Backup": "Eksportuj kopię zapasową", "Export Backup": "Eksportuj kopię zapasową",
Export: "Eksportuj", Export: "Eksportuj",
Import: "Importuj", Import: "Importuj",
respTime: "Czas Odp. (ms)", respTime: "Czas odp. (ms)",
notAvailableShort: "N/A", notAvailableShort: "N/A",
"Default enabled": "Włącz domyślnie", "Default enabled": "Włącz domyślnie",
"Apply on all existing monitors": "Zastosuj do istniejących monitorów", "Apply on all existing monitors": "Zastosuj do istniejących monitorów",
@ -183,10 +183,10 @@ export default {
here: "tutaj", here: "tutaj",
Required: "Wymagane", Required: "Wymagane",
telegram: "Telegram", telegram: "Telegram",
"Bot Token": "Token Bota", "Bot Token": "Token bota",
wayToGetTelegramToken: "Token można uzyskać z {0}.", wayToGetTelegramToken: "Token można uzyskać z {0}.",
"Chat ID": "Identyfikator Czatu", "Chat ID": "Identyfikator czatu",
supportTelegramChatID: "Czat wsprarcia technicznego / Bezpośrednia Rozmowa / Czat Grupowy", supportTelegramChatID: "Czat wsparcia technicznego / Bezpośrednia rozmowa / Czat grupowy",
wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:", wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:",
"YOUR BOT TOKEN HERE": "TWOJ TOKEN BOTA", "YOUR BOT TOKEN HERE": "TWOJ TOKEN BOTA",
chatIDNotFound: "Identyfikator czatu nie znaleziony, najpierw napisz do bota", chatIDNotFound: "Identyfikator czatu nie znaleziony, najpierw napisz do bota",
@ -198,20 +198,20 @@ export default {
smtp: "Email (SMTP)", smtp: "Email (SMTP)",
secureOptionNone: "Brak / STARTTLS (25, 587)", secureOptionNone: "Brak / STARTTLS (25, 587)",
secureOptionTLS: "TLS (465)", secureOptionTLS: "TLS (465)",
"Ignore TLS Error": "Zignrouj Błędy TLS", "Ignore TLS Error": "Zignoruj błędy TLS",
"From Email": "Nadawca (OD)", "From Email": "Nadawca (OD)",
"To Email": "Odbiorca (DO)", "To Email": "Odbiorca (DO)",
smtpCC: "DW", smtpCC: "DW",
smtpBCC: "UDW", smtpBCC: "UDW",
discord: "Discord", discord: "Discord",
"Discord Webhook URL": "URL Webhook Discorda", "Discord Webhook URL": "URL webhook Discorda",
wayToGetDiscordURL: "Możesz go uzyskać przechodząc do Ustawienia Serwera -> Integracje -> Tworzenie Webhooka", wayToGetDiscordURL: "Możesz go uzyskać przechodząc do Ustawienia serwera -> Integracje -> Tworzenie webhooka",
"Bot Display Name": "Wyświetlana Nazwa Bota", "Bot Display Name": "Wyświetlana nazwa bota",
"Prefix Custom Message": "Własny Początek Wiadomości", "Prefix Custom Message": "Własny początek wiadomości",
"Hello @everyone is...": "Hej {'@'}everyone ...", "Hello @everyone is...": "Hej {'@'}everyone ...",
teams: "Microsoft Teams", teams: "Microsoft Teams",
"Webhook URL": "URL Webhooka", "Webhook URL": "URL webhooka",
wayToGetTeamsURL: "You can learn how to create a webhook url {0}.", wayToGetTeamsURL: "Możesz dowiedzieć się, jak utworzyć adres url webhooka {0}.",
signal: "Signal", signal: "Signal",
Number: "Numer", Number: "Numer",
Recipients: "Odbiorcy", Recipients: "Odbiorcy",
@ -219,66 +219,66 @@ export default {
wayToCheckSignalURL: "W celu dowiedzenia się, jak go skonfigurować, odwiedź poniższy link:", wayToCheckSignalURL: "W celu dowiedzenia się, jak go skonfigurować, odwiedź poniższy link:",
signalImportant: "UWAGA: Nie można mieszać nazw grup i numerów odbiorców!", signalImportant: "UWAGA: Nie można mieszać nazw grup i numerów odbiorców!",
gotify: "Gotify", gotify: "Gotify",
"Application Token": "Token Aplikacji", "Application Token": "Token aplikacji",
"Server URL": "Server URL", "Server URL": "Server URL",
Priority: "Priorytet", Priority: "Priorytet",
slack: "Slack", slack: "Slack",
"Icon Emoji": "Ikona Emoji", "Icon Emoji": "Ikona emoji",
"Channel Name": "Nazwa Kanału", "Channel Name": "Nazwa kanału",
"Uptime Kuma URL": "Adres Uptime Kuma", "Uptime Kuma URL": "Adres Uptime Kuma",
aboutWebhooks: "Więcej informacji na temat webhooków: {0}", aboutWebhooks: "Więcej informacji na temat webhooków: {0}",
aboutChannelName: "Podaj nazwę kanału {0} w polu Nazwa Kanału, jeśli chcesz pominąć kanał webhooka. Np.: #inny-kanal", aboutChannelName: "Podaj nazwę kanału {0} w polu Nazwa kanału, jeśli chcesz pominąć kanał webhooka. Np.: #inny-kanal",
aboutKumaURL: "Jeśli pozostawisz pole Adres Uptime Kuma puste, domyślnie będzie to strona projektu na Github.", aboutKumaURL: "Jeśli pozostawisz pole Adres Uptime Kuma puste, domyślnie będzie to strona projektu na GitHub.",
emojiCheatSheet: "Ściąga Emoji: {0}", emojiCheatSheet: "Ściąga emoji: {0}",
"rocket.chat": "Rocket.chat", "rocket.chat": "Rocket.chat",
pushover: "Pushover", pushover: "Pushover",
pushy: "Pushy", pushy: "Pushy",
octopush: "Octopush", octopush: "Octopush",
promosms: "PromoSMS", promosms: "PromoSMS",
lunasea: "LunaSea", lunasea: "LunaSea",
apprise: "Apprise (Obsługuje 50+ usług powiadomień)", apprise: "Apprise (obsługuje 50+ usług powiadomień)",
pushbullet: "Pushbullet", pushbullet: "Pushbullet",
line: "Line Messenger", line: "Line Messenger",
mattermost: "Mattermost", mattermost: "Mattermost",
"User Key": "Klucz Użytkownika", "User Key": "Klucz użytkownika",
Device: "Urządzenie", Device: "Urządzenie",
"Message Title": "Tytuł Wiadomości", "Message Title": "Tytuł wiadomości",
"Notification Sound": "Dźwięk Powiadomienia", "Notification Sound": "Dźwięk powiadomienia",
"More info on:": "Więcej informacji na: {0}", "More info on:": "Więcej informacji na: {0}",
pushoverDesc1: "Priorytet awaryjny (2) ma domyślny 30-sekundowy limit czasu między kolejnymi próbami i wygaśnie po 1 godzinie.", pushoverDesc1: "Priorytet awaryjny (2) ma domyślny 30-sekundowy limit czasu między kolejnymi próbami i wygaśnie po 1 godzinie.",
pushoverDesc2: "Jeśli chcesz wysyłać powiadomienia na różne urządzenia, wypełnij pole Urządzenie.", pushoverDesc2: "Jeśli chcesz wysyłać powiadomienia na różne urządzenia, wypełnij pole Urządzenie.",
"SMS Type": "Rodzaj SMS", "SMS Type": "Rodzaj SMS",
octopushTypePremium: "Premium (Szybki - rekomendowany dla powiadomień)", octopushTypePremium: "Premium (szybki - rekomendowany dla powiadomień)",
octopushTypeLowCost: "Low Cost (Wolny, czasami blokowany przez operatorów)", octopushTypeLowCost: "Low Cost (wolny, czasami blokowany przez operatorów)",
"Check octopush prices": "Sprawdź ceny Octopush {0}.", "Check octopush prices": "Sprawdź ceny Octopush {0}.",
octopushPhoneNumber: "Numer Telefonu (Format międzynarodowy np.: +33612345678)", octopushPhoneNumber: "Numer telefonu (format międzynarodowy np.: +33612345678)",
octopushSMSSender: "Nadawca SMS: 3-11 znaków alfanumerycznych i spacji (a-zA-Z0-9)", octopushSMSSender: "Nadawca SMS: 3-11 znaków alfanumerycznych i spacji (a-zA-Z0-9)",
"LunaSea Device ID": "Idetyfikator Urządzenia LunaSea", "LunaSea Device ID": "Identyfikator urządzenia LunaSea",
"Apprise URL": "URL Apprise", "Apprise URL": "URL Apprise",
"Example:": "Przykład: {0}", "Example:": "Przykład: {0}",
"Read more:": "Czytaj Dalej: {0}", "Read more:": "Czytaj dalej: {0}",
"Status:": "Status: {0}", "Status:": "Status: {0}",
"Read more": "Czytaj dalej", "Read more": "Czytaj dalej",
appriseInstalled: "Apprise jest zostało zainstalowane.", appriseInstalled: "Apprise jest zostało zainstalowane.",
appriseNotInstalled: "Apprise nie zostało zainstalowane. {0}", appriseNotInstalled: "Apprise nie zostało zainstalowane. {0}",
"Access Token": "Token Dostępu", "Access Token": "Token dostępu",
"Channel access token": "Token Dostępu Kanału", "Channel access token": "Token dostępu kanału",
"Line Developers Console": "Konsola Dewelopersja Line", "Line Developers Console": "Konsola deweloperska Line",
lineDevConsoleTo: "Konsola Dewelopersja Line - {0}", lineDevConsoleTo: "Konsola deweloperska Line - {0}",
"Basic Settings": "Ustawienia Ogólne", "Basic Settings": "Ustawienia ogólne",
"User ID": "Idetyfikator Użytkownika", "User ID": "Identyfikator użytkownika",
"Messaging API": "API Wiadomości", "Messaging API": "API wiadomości",
wayToGetLineChannelToken: "Najpierw uzyskaj dostęp do {0}, utwórz dostawcę i kanał (Messaging API), a następnie możesz uzyskać token dostępu do kanału i identyfikator użytkownika z wyżej wymienionych pozycji menu.", wayToGetLineChannelToken: "Najpierw uzyskaj dostęp do {0}, utwórz dostawcę i kanał (Messaging API), a następnie możesz uzyskać token dostępu do kanału i identyfikator użytkownika z wyżej wymienionych pozycji menu.",
"Icon URL": "Adres Ikony", "Icon URL": "Adres Ikony",
aboutIconURL: "Możesz podać link do zdjęcia w \"Adres URL ikony\", aby zastąpić domyślne zdjęcie profilowe. Nie będzie używany, jeśli ustawiona jest ikona Emoji.", aboutIconURL: "Możesz podać link do zdjęcia w \"Adres URL ikony\", aby zastąpić domyślne zdjęcie profilowe. Nie będzie używany, jeśli ustawiona jest ikona emoji.",
aboutMattermostChannelName: "Możesz zastąpić domyślny kanał, na którym publikowane są posty webhooka, wpisując nazwę kanału w polu \"Nazwa Kanału\". Należy to włączyć w ustawieniach webhooka Mattermost. Np.: #inny-kanał", aboutMattermostChannelName: "Możesz zastąpić domyślny kanał, na którym publikowane są posty webhooka, wpisując nazwę kanału w polu \"Nazwa kanału\". Należy to włączyć w ustawieniach webhooka Mattermost. Np.: #inny-kanał",
matrix: "Matrix", matrix: "Matrix",
promosmsTypeEco: "SMS ECO - Tanie, lecz wolne. Dostępne tylko w Polsce", promosmsTypeEco: "SMS ECO - tanie, lecz wolne. Dostępne tylko w Polsce",
promosmsTypeFlash: "SMS FLASH - Wiadomość automatycznie wyświetli się na urządzeniu. Dostępne tylko w Polsce.", promosmsTypeFlash: "SMS FLASH - wiadomość automatycznie wyświetli się na urządzeniu. Dostępne tylko w Polsce.",
promosmsTypeFull: "SMS FULL - Szybkie i dostępne międzynarodowo. Wersja premium usługi, która pozwala min. ustawić własną nazwę nadawcy.", promosmsTypeFull: "SMS FULL - szybkie i dostępne międzynarodowo. Wersja premium usługi, która pozwala min. ustawić własną nazwę nadawcy.",
promosmsTypeSpeed: "SMS SPEED - Wysyłka priorytetowa, posiada wszystkie zalety SMS FULL", promosmsTypeSpeed: "SMS SPEED - wysyłka priorytetowa, posiada wszystkie zalety SMS FULL",
promosmsPhoneNumber: "Numer Odbiorcy", promosmsPhoneNumber: "Numer odbiorcy",
promosmsSMSSender: "Nadawca SMS (Wcześniej zatwierdzone nazwy z panelu PromoSMS)", promosmsSMSSender: "Nadawca SMS (wcześniej zatwierdzone nazwy z panelu PromoSMS)",
"Primary Base URL": "Główny URL", "Primary Base URL": "Główny URL",
"Push URL": "Push URL", "Push URL": "Push URL",
needPushEvery: "Powinieneś wywoływać ten URL co {0} sekund", needPushEvery: "Powinieneś wywoływać ten URL co {0} sekund",
@ -303,4 +303,8 @@ export default {
records: "rekordy", records: "rekordy",
"One record": "Jeden rekord", "One record": "Jeden rekord",
steamApiKeyDescription: "Do monitorowania serwera gier Steam potrzebny jest klucz Steam Web-API. Możesz zarejestrować swój klucz API tutaj: ", steamApiKeyDescription: "Do monitorowania serwera gier Steam potrzebny jest klucz Steam Web-API. Możesz zarejestrować swój klucz API tutaj: ",
"Current User": "Aktualny użytkownik",
recent: "Ostatnie",
clicksendsms: "ClickSend SMS",
apiCredentials: "Poświadczenia API",
}; };

View file

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

View file

@ -83,9 +83,7 @@ export default {
perPage: 25, perPage: 25,
heartBeatList: [], heartBeatList: [],
paginationConfig: { paginationConfig: {
texts: { hideCount: true,
count: "",
},
chunksNavigation: "scroll", chunksNavigation: "scroll",
}, },
}; };

View file

@ -209,9 +209,7 @@ export default {
toggleCertInfoBox: false, toggleCertInfoBox: false,
showPingChartBox: true, showPingChartBox: true,
paginationConfig: { paginationConfig: {
texts: { hideCount: true,
count: "",
},
chunksNavigation: "scroll", chunksNavigation: "scroll",
}, },
}; };