mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
Merge branch 'master' into make_puid_pgid_do_stuff
This commit is contained in:
commit
4367476ace
15 changed files with 3258 additions and 2215 deletions
31
.github/ISSUE_TEMPLATE/ask-for-help.yaml
vendored
31
.github/ISSUE_TEMPLATE/ask-for-help.yaml
vendored
|
@ -24,7 +24,7 @@ body:
|
||||||
required: true
|
required: true
|
||||||
attributes:
|
attributes:
|
||||||
label: "📝 Describe your problem"
|
label: "📝 Describe your problem"
|
||||||
description: "Please walk us through it step by step."
|
description: "Please walk us through it step by step. Include all important details and add screenshots where appropriate"
|
||||||
placeholder: "Describe what are you asking for..."
|
placeholder: "Describe what are you asking for..."
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: error-msg
|
id: error-msg
|
||||||
|
@ -56,19 +56,20 @@ body:
|
||||||
placeholder: "Ex. Google Chrome 95.0.4638.69"
|
placeholder: "Ex. Google Chrome 95.0.4638.69"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: textarea
|
||||||
id: docker-version
|
id: deployment-info
|
||||||
attributes:
|
attributes:
|
||||||
label: "🐋 Docker Version"
|
label: "🖥️ Deployment Environment"
|
||||||
description: "If running with Docker, which version are you running?"
|
description: |
|
||||||
placeholder: "Ex. Docker 20.10.9 / K8S / Podman"
|
examples:
|
||||||
|
- **Runtime**: Docker 20.10.9 / nodejs 14.18.0 / K8S via ... v1.3.3 / ..
|
||||||
|
- **Database**: sqlite/embedded mariadb/external mariadb
|
||||||
|
- **Filesystem used to store the database on**: Windows/ZFS/btrfs/NFSv3 on a SSD/HDD/eMMC
|
||||||
|
- **number of monitors**: 42
|
||||||
|
value: |
|
||||||
|
- Runtime:
|
||||||
|
- Database:
|
||||||
|
- Filesystem used to store the database on:
|
||||||
|
- number of monitors:
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: true
|
||||||
- type: input
|
|
||||||
id: nodejs-version
|
|
||||||
attributes:
|
|
||||||
label: "🟩 NodeJS Version"
|
|
||||||
description: "If running with Node.js? which version are you running?"
|
|
||||||
placeholder: "Ex. 14.18.0"
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
|
|
45
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
45
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
|
@ -3,14 +3,14 @@ description: "Submit a bug report to help us improve"
|
||||||
#title: "[Bug] "
|
#title: "[Bug] "
|
||||||
labels: [bug]
|
labels: [bug]
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: textarea
|
||||||
id: no-duplicate-issues
|
id: related-issues
|
||||||
attributes:
|
validations:
|
||||||
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
|
required: true
|
||||||
|
attributes:
|
||||||
|
label: "📑 I have found these related issues/pull requests"
|
||||||
|
description: "Search related issues by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=) and explain what the difference between them or explain that you are unable to find any related issues"
|
||||||
|
placeholder: "Related to #1 by also touching the ... system. They should not be merged because ..."
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: "🛡️ Security Policy"
|
label: "🛡️ Security Policy"
|
||||||
|
@ -31,7 +31,7 @@ body:
|
||||||
required: true
|
required: true
|
||||||
attributes:
|
attributes:
|
||||||
label: "👟 Reproduction steps"
|
label: "👟 Reproduction steps"
|
||||||
description: "How do you trigger this bug? Please walk us through it step by step."
|
description: "How do you trigger this bug? Please walk us through it step by step. Include all important details and add screenshots where appropriate"
|
||||||
placeholder: "..."
|
placeholder: "..."
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: expected-behavior
|
id: expected-behavior
|
||||||
|
@ -73,22 +73,23 @@ body:
|
||||||
placeholder: "Ex. Google Chrome 95.0.4638.69"
|
placeholder: "Ex. Google Chrome 95.0.4638.69"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: textarea
|
||||||
id: docker-version
|
id: deployment-info
|
||||||
attributes:
|
attributes:
|
||||||
label: "🐋 Docker Version"
|
label: "🖥️ Deployment Environment"
|
||||||
description: "If running with Docker, which version are you running?"
|
description: |
|
||||||
placeholder: "Ex. Docker 20.10.9 / K8S / Podman"
|
examples:
|
||||||
|
- **Runtime**: Docker 20.10.9 / nodejs 14.18.0 / K8S via ... v1.3.3 / ..
|
||||||
|
- **Database**: sqlite/embedded mariadb/external mariadb
|
||||||
|
- **Filesystem used to store the database on**: Windows/ZFS/btrfs/NFSv3 on a SSD/HDD/eMMC
|
||||||
|
- **number of monitors**: 42
|
||||||
|
value: |
|
||||||
|
- Runtime:
|
||||||
|
- Database:
|
||||||
|
- Filesystem used to store the database on:
|
||||||
|
- number of monitors:
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: true
|
||||||
- type: input
|
|
||||||
id: nodejs-version
|
|
||||||
attributes:
|
|
||||||
label: "🟩 NodeJS Version"
|
|
||||||
description: "If running with Node.js? which version are you running?"
|
|
||||||
placeholder: "Ex. 14.18.0"
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: logs
|
id: logs
|
||||||
attributes:
|
attributes:
|
||||||
|
|
29
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
29
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
|
@ -3,14 +3,14 @@ description: "Submit a proposal for a new feature"
|
||||||
#title: "[Feature] "
|
#title: "[Feature] "
|
||||||
labels: [feature-request]
|
labels: [feature-request]
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: textarea
|
||||||
id: no-duplicate-issues
|
id: related-issues
|
||||||
attributes:
|
validations:
|
||||||
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
|
required: true
|
||||||
|
attributes:
|
||||||
|
label: "📑 I have found these related issues/pull requests"
|
||||||
|
description: "Search related issues by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=) and explain what the difference between them or explain that you are unable to find any related issues"
|
||||||
|
placeholder: "Related to #1 by also touching the ... system. They should not be merged because ..."
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: feature-area
|
id: feature-area
|
||||||
attributes:
|
attributes:
|
||||||
|
@ -18,10 +18,17 @@ body:
|
||||||
description: "What kind of feature request is this?"
|
description: "What kind of feature request is this?"
|
||||||
multiple: true
|
multiple: true
|
||||||
options:
|
options:
|
||||||
- API
|
- API / automation options
|
||||||
- New Notification
|
- New notification-provider
|
||||||
- New Monitor
|
- Change to existing notification-provider
|
||||||
- UI Feature
|
- New monitor
|
||||||
|
- Change to existing monitor
|
||||||
|
- Dashboard
|
||||||
|
- Status-page
|
||||||
|
- Maintenance
|
||||||
|
- Deployment
|
||||||
|
- Certificate expiry
|
||||||
|
- Settings
|
||||||
- Other
|
- Other
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
28
.github/workflows/stale-bot.yml
vendored
28
.github/workflows/stale-bot.yml
vendored
|
@ -11,12 +11,32 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v8
|
- uses: actions/stale@v8
|
||||||
with:
|
with:
|
||||||
stale-issue-message: 'We are clearing up our old issues and your ticket has been open for 3 months with no activity. Remove stale label or comment or this will be closed in 2 days.'
|
stale-issue-message: |-
|
||||||
close-issue-message: 'This issue was closed because it has been stalled for 2 days with no activity.'
|
We are clearing up our old `help`-issues and your issue has been open for 60 days with no activity.
|
||||||
days-before-stale: 90
|
If no comment is made and the stale label is not removed, this issue will be closed in 7 days.
|
||||||
days-before-close: 2
|
days-before-stale: 60
|
||||||
|
days-before-close: 7
|
||||||
days-before-pr-stale: -1
|
days-before-pr-stale: -1
|
||||||
days-before-pr-close: -1
|
days-before-pr-close: -1
|
||||||
exempt-issue-labels: 'News,Medium,High,discussion,bug,doc,feature-request'
|
exempt-issue-labels: 'News,Medium,High,discussion,bug,doc,feature-request'
|
||||||
exempt-issue-assignees: 'louislam'
|
exempt-issue-assignees: 'louislam'
|
||||||
operations-per-run: 200
|
operations-per-run: 200
|
||||||
|
- uses: actions/stale@v8
|
||||||
|
with:
|
||||||
|
stale-issue-message: |-
|
||||||
|
This issue was marked as `cannot-reproduce` by a maintainer.
|
||||||
|
If an issue is non-reproducible, we cannot fix it, as we do not know what the underlying issue is.
|
||||||
|
If you have any ideas how we can reproduce this issue, we would love to hear them.
|
||||||
|
|
||||||
|
We don't have a good way to deal with truely unreproducible issues and are going to close this issue in a month.
|
||||||
|
If think there might be other differences in our environment or in how we tried to reproduce this, we would appreciate any ideas.
|
||||||
|
close-issue-message: |-
|
||||||
|
This issue will be closed as no way to reproduce it has been found.
|
||||||
|
If you/somebody finds a way how to (semi-reliably) reproduce this, we can reopen this issue. ^^
|
||||||
|
days-before-stale: 180
|
||||||
|
days-before-close: 30
|
||||||
|
days-before-pr-stale: -1
|
||||||
|
days-before-pr-close: -1
|
||||||
|
any-of-issue-labels: 'cannot-reproduce'
|
||||||
|
operations-per-run: 200
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import vue from "@vitejs/plugin-vue";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
import visualizer from "rollup-plugin-visualizer";
|
import visualizer from "rollup-plugin-visualizer";
|
||||||
import viteCompression from "vite-plugin-compression";
|
import viteCompression from "vite-plugin-compression";
|
||||||
|
import VueDevTools from "vite-plugin-vue-devtools";
|
||||||
|
|
||||||
const postCssScss = require("postcss-scss");
|
const postCssScss = require("postcss-scss");
|
||||||
const postcssRTLCSS = require("postcss-rtlcss");
|
const postcssRTLCSS = require("postcss-rtlcss");
|
||||||
|
@ -32,6 +33,7 @@ export default defineConfig({
|
||||||
algorithm: "brotliCompress",
|
algorithm: "brotliCompress",
|
||||||
filter: viteCompressionFilter,
|
filter: viteCompressionFilter,
|
||||||
}),
|
}),
|
||||||
|
VueDevTools(),
|
||||||
],
|
],
|
||||||
css: {
|
css: {
|
||||||
postcss: {
|
postcss: {
|
||||||
|
|
|
@ -37,7 +37,7 @@ const github = require("@actions/github");
|
||||||
owner: issue.owner,
|
owner: issue.owner,
|
||||||
repo: issue.repo,
|
repo: issue.repo,
|
||||||
issue_number: issue.number,
|
issue_number: issue.number,
|
||||||
body: `@${username}: Hello! :wave:\n\nThis issue is being automatically closed because it does not follow the issue template. Please DO NOT open a blank issue.`
|
body: `@${username}: Hello! :wave:\n\nThis issue is being automatically closed because it does not follow the issue template. Please **DO NOT open blank issues and use our [issue-templates](https://github.com/louislam/uptime-kuma/issues/new/choose) instead**.\nBlank Issues do not contain the context nessesary for a good discussions.`
|
||||||
});
|
});
|
||||||
|
|
||||||
// Close the issue
|
// Close the issue
|
||||||
|
|
5280
package-lock.json
generated
5280
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -194,6 +194,7 @@
|
||||||
"v-pagination-3": "~0.1.7",
|
"v-pagination-3": "~0.1.7",
|
||||||
"vite": "~5.0.10",
|
"vite": "~5.0.10",
|
||||||
"vite-plugin-compression": "^0.5.1",
|
"vite-plugin-compression": "^0.5.1",
|
||||||
|
"vite-plugin-vue-devtools": "^7.0.15",
|
||||||
"vue": "~3.4.2",
|
"vue": "~3.4.2",
|
||||||
"vue-chartjs": "~5.2.0",
|
"vue-chartjs": "~5.2.0",
|
||||||
"vue-confirm-dialog": "~1.0.2",
|
"vue-confirm-dialog": "~1.0.2",
|
||||||
|
|
|
@ -96,7 +96,7 @@ async function getBrowser() {
|
||||||
async function getRemoteBrowser(remoteBrowserID, userId) {
|
async function getRemoteBrowser(remoteBrowserID, userId) {
|
||||||
let remoteBrowser = await RemoteBrowser.get(remoteBrowserID, userId);
|
let remoteBrowser = await RemoteBrowser.get(remoteBrowserID, userId);
|
||||||
log.debug("MONITOR", `Using remote browser: ${remoteBrowser.name} (${remoteBrowser.id})`);
|
log.debug("MONITOR", `Using remote browser: ${remoteBrowser.name} (${remoteBrowser.id})`);
|
||||||
browser = chromium.connect(remoteBrowser.url);
|
browser = await chromium.connect(remoteBrowser.url);
|
||||||
return browser;
|
return browser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ $warning: #f8a306;
|
||||||
$maintenance: #1747f5;
|
$maintenance: #1747f5;
|
||||||
$link-color: #111;
|
$link-color: #111;
|
||||||
$border-radius: 50rem;
|
$border-radius: 50rem;
|
||||||
|
$secondary-text: #aaa;
|
||||||
|
|
||||||
$highlight: #7ce8a4;
|
$highlight: #7ce8a4;
|
||||||
$highlight-white: #e7faec;
|
$highlight-white: #e7faec;
|
||||||
|
|
|
@ -309,7 +309,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.word {
|
.word {
|
||||||
color: #aaa;
|
color: $secondary-text;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@ const languageList = {
|
||||||
"ur": "Urdu",
|
"ur": "Urdu",
|
||||||
"ge": "ქართული",
|
"ge": "ქართული",
|
||||||
"uz": "O'zbek tili",
|
"uz": "O'zbek tili",
|
||||||
|
"ga": "Gaeilge",
|
||||||
};
|
};
|
||||||
|
|
||||||
let messages = {
|
let messages = {
|
||||||
|
|
|
@ -2,11 +2,19 @@
|
||||||
<transition name="slide-fade" appear>
|
<transition name="slide-fade" appear>
|
||||||
<div v-if="monitor">
|
<div v-if="monitor">
|
||||||
<router-link v-if="group !== ''" :to="monitorURL(monitor.parent)"> {{ group }}</router-link>
|
<router-link v-if="group !== ''" :to="monitorURL(monitor.parent)"> {{ group }}</router-link>
|
||||||
<h1> {{ monitor.name }}</h1>
|
<h1>
|
||||||
|
{{ monitor.name }}
|
||||||
|
<div class="monitor-id">
|
||||||
|
<div class="hash">#</div>
|
||||||
|
<div>{{ monitor.id }}</div>
|
||||||
|
</div>
|
||||||
|
</h1>
|
||||||
<p v-if="monitor.description">{{ monitor.description }}</p>
|
<p v-if="monitor.description">{{ monitor.description }}</p>
|
||||||
|
<div class="d-flex">
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<Tag v-for="tag in monitor.tags" :key="tag.id" :item="tag" :size="'sm'" />
|
<Tag v-for="tag in monitor.tags" :key="tag.id" :item="tag" :size="'sm'" />
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<p class="url">
|
<p class="url">
|
||||||
<a v-if="monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'json-query' || monitor.type === 'mp-health' " :href="monitor.url" target="_blank" rel="noopener noreferrer">{{ filterPassword(monitor.url) }}</a>
|
<a v-if="monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'json-query' || monitor.type === 'mp-health' " :href="monitor.url" target="_blank" rel="noopener noreferrer">{{ filterPassword(monitor.url) }}</a>
|
||||||
<span v-if="monitor.type === 'port'">TCP Port {{ monitor.hostname }}:{{ monitor.port }}</span>
|
<span v-if="monitor.type === 'port'">TCP Port {{ monitor.hostname }}:{{ monitor.port }}</span>
|
||||||
|
@ -717,7 +725,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.word {
|
.word {
|
||||||
color: #aaa;
|
color: $secondary-text;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -731,7 +739,7 @@ table {
|
||||||
|
|
||||||
.stats p {
|
.stats p {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #aaa;
|
color: $secondary-text;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stats {
|
.stats {
|
||||||
|
@ -802,4 +810,20 @@ table {
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.monitor-id {
|
||||||
|
display: inline-flex;
|
||||||
|
font-size: 0.7em;
|
||||||
|
margin-left: 0.3em;
|
||||||
|
color: $secondary-text;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
|
||||||
|
.hash {
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark & {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
<font-awesome-icon icon="edit" /> {{ $t("Edit") }}
|
<font-awesome-icon icon="edit" /> {{ $t("Edit") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<button class="btn btn-danger" @click="deleteDialog(item.id)">
|
<button class="btn btn-normal text-danger" @click="deleteDialog(item.id)">
|
||||||
<font-awesome-icon icon="trash" /> {{ $t("Delete") }}
|
<font-awesome-icon icon="trash" /> {{ $t("Delete") }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -294,8 +294,15 @@ export default {
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
|
|
||||||
|
@media (max-width: 550px) {
|
||||||
|
& {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-group {
|
.btn-group {
|
||||||
width: 310px;
|
margin: 1em 1em 0 1em;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,7 +245,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
color: #aaa;
|
color: $secondary-text;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
padding-bottom: 30px;
|
padding-bottom: 30px;
|
||||||
|
|
Loading…
Reference in a new issue