Merge branch 'feature/time-format' of github.com-substancia:Substancia/uptime-kuma into feature/time-format

pull/3838/head
Substancia 1 year ago
commit 1db6722670

@ -6,7 +6,7 @@ You can modifiy Uptime Kuma in your browser without setting up a local developme
1. Click `Code` -> `Create codespace on master` 1. Click `Code` -> `Create codespace on master`
2. Wait a few minutes until you see there are two exposed ports 2. Wait a few minutes until you see there are two exposed ports
3. Go to the `3000` url, see if it is working 3. Go to the `3000` url, see if it is working
![image](https://github.com/louislam/uptime-kuma/assets/1336778/909b2eb4-4c5e-44e4-ac26-6d20ed856e7f) ![image](https://github.com/louislam/uptime-kuma/assets/1336778/909b2eb4-4c5e-44e4-ac26-6d20ed856e7f)

@ -12,8 +12,6 @@ labels:
DO NOT PROVIDE ANY DETAILS HERE. Please privately report to https://github.com/louislam/uptime-kuma/security/advisories/new. DO NOT PROVIDE ANY DETAILS HERE. Please privately report to https://github.com/louislam/uptime-kuma/security/advisories/new.
Why need this issue? It is because GitHub Advisory do not send a notification to @louislam, it is a workaround to do so. Why need this issue? It is because GitHub Advisory do not send a notification to @louislam, it is a workaround to do so.
Your GitHub Advisory URL: Your GitHub Advisory URL:

@ -1,7 +1,7 @@
⚠️⚠️⚠️ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules: ⚠️⚠️⚠️ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
Tick the checkbox if you understand [x]: Tick the checkbox if you understand [x]:
- [ ] I have read and understand the pull request rules. - [ ] I have read and understand the pull request rules.
# Description # Description

@ -34,24 +34,27 @@ Yes or no, it depends on what you will try to do. Since I don't want to waste yo
Here are some references: Here are some references:
### ✅ Usually accepted: ### ✅ Usually accepted
- Bug fix - Bug fix
- Security fix - Security fix
- Adding notification providers - Adding notification providers
- Adding new language files (see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md)) - Adding new language files (see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md))
- Adding new language keys: `$t("...")` - Adding new language keys: `$t("...")`
### ⚠️ Discussion required: ### ⚠️ Discussion required
- Large pull requests - Large pull requests
- New features - New features
### ❌ Won't be merged: ### ❌ Won't be merged
- A dedicated PR for translating existing languages (see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md)) - A dedicated PR for translating existing languages (see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md))
- Do not pass the auto-test - Do not pass the auto-test
- Any breaking changes - Any breaking changes
- Duplicated pull requests - Duplicated pull requests
- Buggy - Buggy
- UI/UX is not close to Uptime Kuma - UI/UX is not close to Uptime Kuma
- Modifications or deletions of existing logic without a valid reason. - Modifications or deletions of existing logic without a valid reason.
- Adding functions that is completely out of scope - Adding functions that is completely out of scope
- Converting existing code into other programming languages - Converting existing code into other programming languages
@ -65,7 +68,6 @@ I will assign your pull request to a [milestone](https://github.com/louislam/upt
Also, please don't rush or ask for an ETA, because I have to understand the pull request, make sure it is no breaking changes and stick to my vision of this project, especially for large pull requests. Also, please don't rush or ask for an ETA, because I have to understand the pull request, make sure it is no breaking changes and stick to my vision of this project, especially for large pull requests.
### Recommended Pull Request Guideline ### Recommended Pull Request Guideline
Before deep into coding, discussion first is preferred. Creating an empty pull request for discussion would be recommended. Before deep into coding, discussion first is preferred. Creating an empty pull request for discussion would be recommended.
@ -114,7 +116,7 @@ I personally do not like something that requires so many configurations before y
### GitHub Codespace ### GitHub Codespace
If you don't want to setup an local environment, you can now develop on GitHub Codespace, read more: If you don't want to setup an local environment, you can now develop on GitHub Codespace, read more:
https://github.com/louislam/uptime-kuma/tree/master/.devcontainer https://github.com/louislam/uptime-kuma/tree/master/.devcontainer
@ -143,7 +145,8 @@ npm run dev
``` ```
But sometimes, you would like to restart the server, but not the frontend, you can run these commands in two terminals: But sometimes, you would like to restart the server, but not the frontend, you can run these commands in two terminals:
```
```bash
npm run start-frontend-dev npm run start-frontend-dev
npm run start-server-dev npm run start-server-dev
``` ```
@ -152,15 +155,14 @@ npm run start-server-dev
It binds to `0.0.0.0:3001` by default. It binds to `0.0.0.0:3001` by default.
It is mainly a socket.io app + express.js. It is mainly a socket.io app + express.js.
express.js is used for: express.js is used for:
- entry point such as redirecting to a status page or the dashboard - entry point such as redirecting to a status page or the dashboard
- serving the frontend built files (index.html, .js and .css etc.) - serving the frontend built files (index.html, .js and .css etc.)
- serving internal APIs of the status page - serving internal APIs of the status page
### Structure in /server/ ### Structure in /server/
- jobs/ (Jobs that are running in another process) - jobs/ (Jobs that are running in another process)
@ -175,9 +177,9 @@ express.js is used for:
## Frontend Dev Server ## Frontend Dev Server
It binds to `0.0.0.0:3000` by default. The frontend dev server is used for development only. It binds to `0.0.0.0:3000` by default. The frontend dev server is used for development only.
For production, it is not used. It will be compiled to `dist` directory instead. For production, it is not used. It will be compiled to `dist` directory instead.
You can use Vue.js devtools Chrome extension for debugging. You can use Vue.js devtools Chrome extension for debugging.
@ -231,7 +233,7 @@ If for security / bug / other reasons, a library must be updated, breaking chang
Please add **all** the strings which are translatable to `src/lang/en.json` (If translation keys are omitted, they can not be translated). Please add **all** the strings which are translatable to `src/lang/en.json` (If translation keys are omitted, they can not be translated).
**Don't include any other languages in your initial Pull-Request** (even if this is your mother tongue), to avoid merge-conflicts between weblate and `master`. **Don't include any other languages in your initial Pull-Request** (even if this is your mother tongue), to avoid merge-conflicts between weblate and `master`.
The translations can then (after merging a PR into `master`) be translated by awesome people donating their language skills. The translations can then (after merging a PR into `master`) be translated by awesome people donating their language skills.
If you want to help by translating Uptime Kuma into your language, please visit the [instructions on how to translate using weblate](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md). If you want to help by translating Uptime Kuma into your language, please visit the [instructions on how to translate using weblate](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md).
@ -249,7 +251,7 @@ https://github.com/louislam/uptime-kuma-wiki
## Docker ## Docker
#### Arch ### Arch
- amd64 - amd64
- arm64 - arm64
@ -293,12 +295,12 @@ https://github.com/louislam/uptime-kuma/issues?q=sort%3Aupdated-desc
1. Draft a release note 1. Draft a release note
2. Make sure the repo is cleared 2. Make sure the repo is cleared
3. If the healthcheck is updated, remember to re-compile it: `npm run build-docker-builder-go` 3. If the healthcheck is updated, remember to re-compile it: `npm run build-docker-builder-go`
3. `npm run release-final` with env vars: `VERSION` and `GITHUB_TOKEN` 4. `npm run release-final` with env vars: `VERSION` and `GITHUB_TOKEN`
4. Wait until the `Press any key to continue` 5. Wait until the `Press any key to continue`
5. `git push` 6. `git push`
6. Publish the release note as 1.X.X 7. Publish the release note as 1.X.X
7. Press any key to continue 8. Press any key to continue
8. Deploy to the demo server: `npm run deploy-demo-server` 9. Deploy to the demo server: `npm run deploy-demo-server`
Checking: Checking:
@ -336,6 +338,6 @@ git push production master
Change the base of a pull request such as `master` to `1.23.X` Change the base of a pull request such as `master` to `1.23.X`
``` ```bash
git rebase --onto <new parent> <old parent> git rebase --onto <new parent> <old parent>
``` ```

@ -23,17 +23,17 @@ It is a temporary live demo, all data will be deleted after 10 minutes. Use the
## ⭐ Features ## ⭐ Features
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Ping / DNS Record / Push / Steam Game Server / Docker Containers - Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Ping / DNS Record / Push / Steam Game Server / Docker Containers
* Fancy, Reactive, Fast UI/UX - Fancy, Reactive, Fast UI/UX
* 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) - 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 - 20-second intervals
* [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/lang) - [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/lang)
* Multiple status pages - Multiple status pages
* Map status pages to specific domains - Map status pages to specific domains
* Ping chart - Ping chart
* Certificate info - Certificate info
* Proxy support - Proxy support
* 2FA support - 2FA support
## 🔧 How to Install ## 🔧 How to Install
@ -50,6 +50,7 @@ Uptime Kuma is now running on http://localhost:3001
### 💪🏻 Non-Docker ### 💪🏻 Non-Docker
Requirements: Requirements:
- Platform - Platform
- ✅ Major Linux distros such as Debian, Ubuntu, CentOS, Fedora and ArchLinux etc. - ✅ Major Linux distros such as Debian, Ubuntu, CentOS, Fedora and ArchLinux etc.
- ✅ Windows 10 (x64), Windows Server 2012 R2 (x64) or higher - ✅ Windows 10 (x64), Windows Server 2012 R2 (x64) or higher
@ -76,9 +77,8 @@ npm install pm2 -g && pm2 install pm2-logrotate
# Start Server # Start Server
pm2 start server/server.js --name uptime-kuma pm2 start server/server.js --name uptime-kuma
``` ```
Uptime Kuma is now running on http://localhost:3001 Uptime Kuma is now running on http://localhost:3001
More useful PM2 Commands More useful PM2 Commands
@ -143,12 +143,12 @@ Telegram Notification Sample:
## Motivation ## Motivation
* I was looking for a self-hosted monitoring tool like "Uptime Robot", but it is hard to find a suitable one. One of the close ones is statping. Unfortunately, it is not stable and no longer maintained. - I was looking for a self-hosted monitoring tool like "Uptime Robot", but it is hard to find a suitable one. One of the close ones is statping. Unfortunately, it is not stable and no longer maintained.
* Want to build a fancy UI. - Want to build a fancy UI.
* Learn Vue 3 and vite.js. - Learn Vue 3 and vite.js.
* Show the power of Bootstrap 5. - Show the power of Bootstrap 5.
* Try to use WebSocket with SPA instead of REST API. - Try to use WebSocket with SPA instead of REST API.
* Deploy my first Docker image to Docker Hub. - Deploy my first Docker image to Docker Hub.
If you love this project, please consider giving me a ⭐. If you love this project, please consider giving me a ⭐.
@ -161,10 +161,9 @@ I recommend using Google, GitHub Issues, or Uptime Kuma's Subreddit for finding
- [GitHub Issues](https://github.com/louislam/uptime-kuma/issues) - [GitHub Issues](https://github.com/louislam/uptime-kuma/issues)
- [Subreddit r/Uptime kuma](https://www.reddit.com/r/UptimeKuma/) - [Subreddit r/Uptime kuma](https://www.reddit.com/r/UptimeKuma/)
My Reddit account: [u/louislamlam](https://reddit.com/u/louislamlam). My Reddit account: [u/louislamlam](https://reddit.com/u/louislamlam).
You can mention me if you ask a question on Reddit. You can mention me if you ask a question on Reddit.
## Contribute ## Contribute
### Test Pull Requests ### Test Pull Requests
@ -179,9 +178,11 @@ https://github.com/louislam/uptime-kuma/wiki/Test-Pull-Requests
Check out the latest beta release here: https://github.com/louislam/uptime-kuma/releases Check out the latest beta release here: https://github.com/louislam/uptime-kuma/releases
### Bug Reports / Feature Requests ### Bug Reports / Feature Requests
If you want to report a bug or request a new feature, feel free to open a [new issue](https://github.com/louislam/uptime-kuma/issues). If you want to report a bug or request a new feature, feel free 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 visit [Weblate Readme](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md). If you want to translate Uptime Kuma into your language, please visit [Weblate Readme](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md).
### Spelling & Grammar ### Spelling & Grammar
@ -190,4 +191,5 @@ Feel free to correct the grammar in the documentation or code.
My mother language is not english and my grammar is not that great. My mother language is not english and my grammar is not that great.
### Create Pull Requests ### Create Pull Requests
If you want to modify Uptime Kuma, please read this guide and follow the rules here: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md If you want to modify Uptime Kuma, please read this guide and follow the rules here: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

@ -1,10 +1,11 @@
## Info # Info
https://knexjs.org/guide/migrations.html#knexfile-in-other-languages https://knexjs.org/guide/migrations.html#knexfile-in-other-languages
## Basic rules ## Basic rules
- All tables must have a primary key named `id` - All tables must have a primary key named `id`
- Filename format: `YYYY-MM-DD-HHMM-patch-name.js` - Filename format: `YYYY-MM-DD-HHMM-patch-name.js`
- Avoid native SQL syntax, use knex methods, because Uptime Kuma supports SQLite and MariaDB. - Avoid native SQL syntax, use knex methods, because Uptime Kuma supports SQLite and MariaDB.
## Template ## Template

@ -30,6 +30,8 @@ FROM $BASE_IMAGE AS release
USER node USER node
WORKDIR /app WORKDIR /app
LABEL org.opencontainers.image.source="https://github.com/louislam/uptime-kuma"
ENV UPTIME_KUMA_IS_CONTAINER=1 ENV UPTIME_KUMA_IS_CONTAINER=1
# Copy app files from build layer # Copy app files from build layer

@ -1,3 +1,4 @@
# How to run
Node.js (ts-node) Node.js (ts-node)
@ -16,4 +17,3 @@ Bun.js
```bash ```bash
bun index.ts bun index.ts
``` ```

@ -2,7 +2,7 @@ const https = require("https");
const dayjs = require("dayjs"); const dayjs = require("dayjs");
const axios = require("axios"); const axios = require("axios");
const { Prometheus } = require("../prometheus"); const { Prometheus } = require("../prometheus");
const { log, UP, DOWN, PENDING, MAINTENANCE, flipStatus, TimeLogger, MAX_INTERVAL_SECOND, MIN_INTERVAL_SECOND, const { log, UP, DOWN, PENDING, MAINTENANCE, flipStatus, MAX_INTERVAL_SECOND, MIN_INTERVAL_SECOND,
SQL_DATETIME_FORMAT SQL_DATETIME_FORMAT
} = require("../../src/util"); } = require("../../src/util");
const { tcping, ping, checkCertificate, checkStatusCode, getTotalClientInRoom, setting, mssqlQuery, postgresQuery, mysqlQuery, mqttAsync, setSetting, httpNtlm, radius, grpcQuery, const { tcping, ping, checkCertificate, checkStatusCode, getTotalClientInRoom, setting, mssqlQuery, postgresQuery, mysqlQuery, mqttAsync, setSetting, httpNtlm, radius, grpcQuery,
@ -1067,7 +1067,7 @@ class Monitor extends BeanModel {
/** /**
* Example: http: or https: * Example: http: or https:
* @returns {(null|string)} * @returns {(null|string)} URL's protocol
*/ */
getURLProtocol() { getURLProtocol() {
const url = this.getUrl(); const url = this.getUrl();

@ -283,8 +283,6 @@ router.get("/api/badge/:id/ping/:duration?", cache("5 minutes"), async (request,
requestedDuration = "24h"; requestedDuration = "24h";
} }
const sqlHourOffset = Database.sqlHourOffset();
// Check if monitor is public // Check if monitor is public
const uptimeCalculator = await UptimeCalculator.getUptimeCalculator(requestedMonitorId); const uptimeCalculator = await UptimeCalculator.getUptimeCalculator(requestedMonitorId);

@ -4,7 +4,6 @@ const { UptimeKumaServer } = require("../uptime-kuma-server");
const StatusPage = require("../model/status_page"); const StatusPage = require("../model/status_page");
const { allowDevAllOrigin, sendHttpError } = require("../util-server"); const { allowDevAllOrigin, sendHttpError } = require("../util-server");
const { R } = require("redbean-node"); const { R } = require("redbean-node");
const Monitor = require("../model/monitor");
const { badgeConstants } = require("../config"); const { badgeConstants } = require("../config");
const { makeBadge } = require("badge-maker"); const { makeBadge } = require("badge-maker");
const { UptimeCalculator } = require("../uptime-calculator"); const { UptimeCalculator } = require("../uptime-calculator");

@ -346,7 +346,7 @@ export default {
pauseSelected() { pauseSelected() {
Object.keys(this.selectedMonitors) Object.keys(this.selectedMonitors)
.filter(id => this.$root.monitorList[id].active) .filter(id => this.$root.monitorList[id].active)
.forEach(id => this.$root.getSocket().emit("pauseMonitor", id)); .forEach(id => this.$root.getSocket().emit("pauseMonitor", id, () => {}));
this.cancelSelectMode(); this.cancelSelectMode();
}, },
@ -357,7 +357,7 @@ export default {
resumeSelected() { resumeSelected() {
Object.keys(this.selectedMonitors) Object.keys(this.selectedMonitors)
.filter(id => !this.$root.monitorList[id].active) .filter(id => !this.$root.monitorList[id].active)
.forEach(id => this.$root.getSocket().emit("resumeMonitor", id)); .forEach(id => this.$root.getSocket().emit("resumeMonitor", id, () => {}));
this.cancelSelectMode(); this.cancelSelectMode();
}, },

@ -1,4 +1,6 @@
# How to translate # Translations
## How to translate
(2023-01-24 Updated) (2023-01-24 Updated)
@ -7,7 +9,7 @@
3. Make sure your GitHub email is matched with Weblate's account, so that it could show you as a contributor on GitHub 3. Make sure your GitHub email is matched with Weblate's account, so that it could show you as a contributor on GitHub
4. Choose your language on Weblate and start translating. 4. Choose your language on Weblate and start translating.
# How to add a new language in the dropdown ## How to add a new language in the dropdown
1. Add your language at https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ 1. Add your language at https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/
2. Find the language code (You can find it at the end of the URL) 2. Find the language code (You can find it at the end of the URL)

@ -2,7 +2,7 @@
// Common Util for frontend and backend // Common Util for frontend and backend
// //
// DOT NOT MODIFY util.js! // DOT NOT MODIFY util.js!
// Need to run "tsc" to compile if there are any changes. // Need to run "npm run tsc" to compile if there are any changes.
// //
// Backend uses the compiled file util.js // Backend uses the compiled file util.js
// Frontend uses util.ts // Frontend uses util.ts

@ -1,7 +1,7 @@
// Common Util for frontend and backend // Common Util for frontend and backend
// //
// DOT NOT MODIFY util.js! // DOT NOT MODIFY util.js!
// Need to run "tsc" to compile if there are any changes. // Need to run "npm run tsc" to compile if there are any changes.
// //
// Backend uses the compiled file util.js // Backend uses the compiled file util.js
// Frontend uses util.ts // Frontend uses util.ts

@ -1,12 +1,9 @@
# Node.js Test Runner # Node.js Test Runner
Documentation: https://nodejs.org/api/test.html Documentation: https://nodejs.org/api/test.html
Create a test file in this directory with the name `*.js`. Create a test file in this directory with the name `*.js`.
## Template ## Template
```js ```js
@ -26,7 +23,7 @@ test("Test name", async (t) => {
}); });
``` ```
## Run ## Run
Node.js >=18 Node.js >=18

Loading…
Cancel
Save