* extracted the dns monitor to its own monitor-type
* linting fixes
* another formatting fix
* Fix: Improve dnsMessage handling (#3614)
* fixed docs
* fixed formatting changes
* Adding x-www-form-urlencoded
* Adding example of x-www-form-urlencoding to body.
* A bit cleaner.
* Update server/model/monitor.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update src/pages/EditMonitor.vue
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update src/pages/EditMonitor.vue
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
* Add simple test
---------
Co-authored-by: Anders Kvist <ak@cego.dk>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
* Added option to use `--intranet` to not download or update any files, this can only be done after an initial run.
* Dropped some unneeded debug changes that I commited by accident
* Added conventional suggestions from Github.com comments
---------
Co-authored-by: Jean-Paul van Houten - Bos <jeanpaul.vhouten@koop.overheid.nl>
* Spelling & Grammar updates to SECURITY.md
No policy changes were made in this change, only improving readability.
* Spelling & Grammar updates to README.md
No policy changes were made in this change, only improving readability.
* Spelling & Grammar updates to CONTRIBUTING.md
No policy changes were made in this change, only improving readability.
* Mark username/password inputs as required
* Mark 2FA input as required
* Add autocomplete attributes
* Add autocomplete suggestion to password change
* Add autocomplete to 2FA dialog
* Mark 2fa input as required
* Fixed#3520 Validate accepted status codes type
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
* Avoid crash on invalid status code
Instead of failing on an invalid status code, log the error and skip to
next.
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
---------
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
* Fix case for setting httpBodyEncoding to null - does work for http, but not for keyword if anything else but json.
* Updating case.
* Update src/pages/EditMonitor.vue
Added suggestion from @CommanderStorm
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update src/pages/EditMonitor.vue
Co-authored-by: Frank Elsinga <frank@elsinga.de>
---------
Co-authored-by: Anders Kvist <ak@cego.dk>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* feat: Add timeoutMs field
* chore: Update Languages (incl. ko-KR)
* Revert "chore: Update Languages (incl. ko-KR)"
This reverts commit 349331a00b.
* chore: Update ko-KR selectively
* chore: Update en selectively
* Merge manually
* Reorder and show only if http related monitors
* fix: Update Korean translation
* fix: Rename timeoutMs to timeout, rename label, make DOUBLE
* fix: Change minimum step to 0.1, matching DOUBLE type
* Put the sql patch at the end
* Update EditMonitor.vue
* Colocate timeout with retry, fix clampTimeout logic, show default on 0
* Update src/pages/EditMonitor.vue to remove a comment
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Fix merge issue
* Update the timeout value while finished editing the interval value
---------
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* FEAT: Allow client side TLS for Docker hosts
Inlcude TLS certificate in HTTPS requests when certificate
files are locally available to Kuma for a host.
* fix: refactor to satisfy linter requirements
* fix: linter
* Feat: Create Group in EditMonitor page
* Fix: Start group mon. after child is added
* Chore: Swap confirm & cancel for ergonomics
* Fix rarely issue that group monitor can throw an error if lastBeat is null
* Resume the group monitor in the callback
---------
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
* made the translation part of the contribution guide/Readme more clear
* made some formatting adjustments and added a few links
* fixed a typo
* Apply suggestions from code review
* Added DBeaver
* feat: add FlashDuty notification channel
* refactor: #3475 nofify with Up or Down;
refactor code;
add en zh-hk zh-tw lang
* refactor: default select Info
* refactor: add space in word
* refactor the flashduty notification code
* refactor:compatible when Test flashduty nofication
* refactor: add function param description
* refactor: revert zh-hk zh-tw changes of flashduty
* Fixed the sql monitor not having the query required
* Apply suggestions from code review
* added `redis` and `mongodb` to the connectionString as requested by @chakflying
* Add boilerplate for tailscale ping
* tailscale initial commit draft
* Refactor TailscalePing & better error handling
Split check function into two methods and added async/await syntax for readability/modularity
Switched to promise-based error handling (takes into account different types of error such as "Execution error", "Error in output", "no matching peer", and "is local Tailscale IP") and throws them as JavaScript errors.
* Minor update
* minor update (again)
* Update server/monitor-types/tailscale-ping.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update server/monitor-types/tailscale-ping.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update server/monitor-types/tailscale-ping.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update server/monitor-types/tailscale-ping.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* timeout revision
* JSDoc
* Removed long explainers
* eslint tailscale-ping.js --fix
* reran eslint
* Fix: Use hostname rather than url
* Fixed NaN on monitor interval
now interval value is correctly passed to runTailscalePing
* Add warning message
---------
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Add SMSC, code from #3334
Co-authored-by: FlatronBuda <>
* Update server/notification-providers/smsc.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update server/notification-providers/smsc.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update server/notification-providers/smsc.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Update according to @FlatronBuda
* Move to the regional list
---------
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* ✨ feat: json-query monitor added
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: import warning error
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: br tag and remove comment
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: supporting compare string with other types
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: switch to a better lib for json query
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: better description on json query and using `v-html` in jsonQueryDescription element to fix `a` tags
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: result variable in error message
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: typos in json query description
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* 📝 docs: `HTTP(s) Json Query` added to monitor list in `README.md`
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
* 🐛 fix: needed white space in `README.md`
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Nostr dm notifications (#3051)
* Add nostr DM notification provider
* require crypto for node 18 compatibility
* remove whitespace
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* move closer to where it is used
* simplify success or failure logic
* don't clobber the non-alert msg
* Update server/notification-providers/nostr.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* polyfills required for node <= 18
* resolve linter warnings
* missing comma
---------
Co-authored-by: Frank Elsinga <frank@elsinga.de>
* Drop nostr
* Rebuild package-lock.json
* Lint
---------
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: zappityzap <128872140+zappityzap@users.noreply.github.com>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
* fix: update checker
- fixed bug where it would make the request to uptime.kuma.pet regardless of the `checkUpdate` config;
- defined constants in the top of the document for easier configuration/documentation;
- removed unnecessary compareVersions: we were comparing the same var on both sides res.data.beta, so it will always be equal.
* improvement: better logging and added doc
* improved UPDATE_CHECKER_INTERVAL_MS const
---------
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Currently translated at 99.7% (752 of 754 strings)
Translated using Weblate (Czech)
Currently translated at 99.7% (750 of 752 strings)
Translated using Weblate (Czech)
Currently translated at 99.3% (746 of 751 strings)
Co-authored-by: Michal <black23@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (753 of 753 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (752 of 752 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (751 of 751 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (748 of 748 strings)
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (754 of 754 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (753 of 753 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (752 of 752 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (751 of 751 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (748 of 748 strings)
Co-authored-by: stanol <stanol777@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (754 of 754 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (753 of 753 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (752 of 752 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (751 of 751 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (748 of 748 strings)
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (754 of 754 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (752 of 752 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (751 of 751 strings)
Translated using Weblate (Russian)
Currently translated at 99.6% (748 of 751 strings)
Translated using Weblate (Russian)
Currently translated at 99.5% (745 of 748 strings)
Co-authored-by: ITQ <itq.dev@ya.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (754 of 754 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (753 of 753 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (752 of 752 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (751 of 751 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Bulgarian)
Currently translated at 99.8% (747 of 748 strings)
Co-authored-by: MrEddX <mreddx@chatrix.one>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (721 of 721 strings)
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (721 of 721 strings)
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (721 of 721 strings)
Co-authored-by: Alex Javadi <15309978+aljvdi@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fa/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (719 of 719 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (719 of 719 strings)
Co-authored-by: Buchtič <martin.buchta@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (719 of 719 strings)
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 99.5% (743 of 746 strings)
Translated using Weblate (Czech)
Currently translated at 98.9% (738 of 746 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (719 of 719 strings)
Co-authored-by: Michal <black23@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (719 of 719 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (719 of 719 strings)
Co-authored-by: stanol <stanol777@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
Currently translated at 100.0% (746 of 746 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (722 of 722 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (721 of 721 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (719 of 719 strings)
Co-authored-by: MrEddX <mreddx@chatrix.one>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/
Translation: Uptime Kuma/Uptime Kuma
The prometheus monitor_status metric has actually 4 values. This can easily be verified by looking up the related source code or by using the metric in grafana an see values like 2 (which indicates timeout).
I've been having an issue with trying to use an IPAddress Host:Port combination in monitoring my GRPC instances.
This was because the input type was set to url instead of text.
Even if the pattern passes the match test, the url would block as it requires a fully qualified domain name with HTTP and this would fail to submit
- use tags `red_circle` for down and `green_circle` for up
- increase priority for down alert by 1 if not already max
- add monitor name and status to title
- use heartbeat msg as Message
- add monitor url as action
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
First of all, I want to thank everyone who made pull requests for Uptime Kuma. I never thought the GitHub Community would be so nice! Because of this, I also never thought that other people would actually read and edit my code. It is not very well structured or commented, sorry about that.
First of all, I want to thank everyone who made pull requests for Uptime Kuma. I never thought the GitHub Community would be so nice! Because of this, I also never thought that other people would actually read and edit my code. It is not very well structured or commented, sorry about that.
The project was created with vite.js (vue3). Then I created a subdirectory called "server" for server part. Both frontend and backend share the same package.json.
The project was created with vite.js (vue3). Then I created a subdirectory called "server" for the server part. Both frontend and backend share the same package.json.
The frontend code build into "dist" directory. The server (express.js) exposes the "dist" directory as root of the endpoint. This is how production is working.
The frontend code builds into "dist" directory. The server (express.js) exposes the "dist" directory as the root of the endpoint. This is how production is working.
## Key Technical Skills
## Key Technical Skills
- Node.js (You should know what are promise, async/await and arrow function etc.)
- Node.js (You should know about promise, async/await and arrow function etc.)
- Socket.io
- Socket.io
- SCSS
- SCSS
- Vue.js
- Vue.js
@@ -30,41 +30,43 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
## Can I create a pull request for Uptime Kuma?
## Can I create a pull request for Uptime Kuma?
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create an empty draft pull request or open an issue, so we can have a discussion first**. Especially for a large pull request or you don't know it will be merged or not.
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create an empty draft pull request or open an issue, so we can have a discussion first**. Especially for a large pull request or you don't know if it will be merged or not.
Here are some references:
Here are some references:
✅ Usually Accept:
### ✅ Usually accepted
- Bug fix
- Bug fix
- Security fix
- Security fix
- Adding notification providers
- Adding notification providers
- Adding new language files (You should go to https://weblate.kuma.pet for existing languages)
- 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 First
### ⚠️ Discussion required
- Large pull requests
- Large pull requests
- New features
- New features
❌ Won't Merge
### ❌ Won't be merged
- A dedicated pr for translating existing languages (You can now translate on https://weblate.kuma.pet)
- Do not pass auto test
- Any breaking changes
- Duplicated pull request
- Buggy
- UI/UX is not close to Uptime Kuma
- Existing logic is completely modified or deleted for no reason
- A function that is completely out of scope
- Convert existing code into other programming languages
- Unnecessary large code changes (Hard to review, causes code conflicts to other pull requests)
The above cases cannot cover all situations.
- 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
- Any breaking changes
- Duplicated pull requests
- Buggy
- UI/UX is not close to Uptime Kuma
- Modifications or deletions of existing logic without a valid reason.
- Adding functions that is completely out of scope
- Converting existing code into other programming languages
- Unnecessarily large code changes that are hard to review and cause conflicts with other PRs.
The above cases may not cover all possible situations.
I (@louislam) have the final say. If your pull request does not meet my expectations, I will reject it, no matter how much time you spend on it. Therefore, it is essential to have a discussion beforehand.
I (@louislam) have the final say. If your pull request does not meet my expectations, I will reject it, no matter how much time you spend on it. Therefore, it is essential to have a discussion beforehand.
I will mark your pull request in the [milestones](https://github.com/louislam/uptime-kuma/milestones), if I am plan to review and merge it.
I will assign your pull request to a [milestone](https://github.com/louislam/uptime-kuma/milestones), if I plan to review and merge it.
Also, please don't rush or ask for 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
@@ -83,11 +85,11 @@ Before deep into coding, discussion first is preferred. Creating an empty pull r
## Project Styles
## Project Styles
I personally do not like something that requires so many configurations before you can finally start the app. I hope Uptime Kuma installation could be as easy as like installing a mobile app.
I personally do not like something that requires so many configurations before you can finally start the app. I hope Uptime Kuma installation will be as easy as like installing a mobile app.
- Easy to install for non-Docker users, no native build dependency is needed (for x86_64/armv7/arm64), no extra config, no extra effort required to get it running
- Easy to install for non-Docker users, no native build dependency is needed (for x86_64/armv7/arm64), no extra config, and no extra effort required to get it running
- Single container for Docker users, no very complex docker-compose file. Just map the volume and expose the port, then good to go
- Single container for Docker users, no very complex docker-compose file. Just map the volume and expose the port, then good to go
- Settings should be configurable in the frontend. Environment variable is not encouraged, unless it is related to startup such as `DATA_DIR`
- Settings should be configurable in the frontend. Environment variables are discouraged, unless it is related to startup such as `DATA_DIR`
- Easy to use
- Easy to use
- The web UI styling should be consistent and nice
- The web UI styling should be consistent and nice
@@ -106,11 +108,23 @@ I personally do not like something that requires so many configurations before y
## Tools
## Tools
- Node.js >= 14
-[`Node.js`](https://nodejs.org/) >= 14
-NPM >= 8.5
-[`npm`](https://www.npmjs.com/) >= 8.5
-Git
-[`git`](https://git-scm.com/)
- IDE that supports ESLint and EditorConfig (I am using IntelliJ IDEA)
- IDE that supports [`ESLint`](https://eslint.org/) and EditorConfig (I am using [`IntelliJ IDEA`](https://www.jetbrains.com/idea/))
- A SQLite GUI tool (SQLite Expert Personal is suggested)
- A SQLite GUI tool (f.ex. [`SQLite Expert Personal`](https://www.sqliteexpert.com/download.html) or [`DBeaver Community`](https://dbeaver.io/download/))
### GitHub Codespace
If you don't want to setup an local environment, you can now develop on GitHub Codespace, read more:
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`.
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).
## Spelling & Grammar
Feel free to correct the grammar in the documentation or code.
My mother language is not English and my grammar is not that great.
## Wiki
## Wiki
@@ -226,6 +249,42 @@ Since there is no way to make a pull request to wiki's repo, I have set up anoth
https://github.com/louislam/uptime-kuma-wiki
https://github.com/louislam/uptime-kuma-wiki
## Docker
### Arch
- amd64
- arm64
- armv7
### Docker Tags
#### v2
-`2`, `latest-2`: v2 with full features such as Chromium and bundled MariaDB
@@ -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 / 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)
* 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 ⭐.
## 🗣️ Discussion
## 🗣️ Discussion / Ask for Help
### Issues Page
⚠️ For any general or technical questions, please don't send me an email, as I am unable to provide support in that manner. I will not respond if you asked such questions.
You can discuss or ask for help in [issues](https://github.com/louislam/uptime-kuma/issues).
I recommend using Google, GitHub Issues, or Uptime Kuma's Subreddit for finding answers to your question. If you cannot find the information you need, feel free to ask:
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).
Feel free to correct my grammar in this README, source code, or wiki, as my mother language is not English and my grammar is not that great.
### Spelling & Grammar
Feel free to correct the grammar in the documentation or code.
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. Please report security issues to https://github.com/louislam/uptime-kuma/security/advisories/new.
1. Please report security issues to https://github.com/louislam/uptime-kuma/security/advisories/new.
1. Please also create a empty security issues for alerting me, as GitHub Advisory do not send a notification, I probably will miss without this. https://github.com/louislam/uptime-kuma/issues/new?assignees=&labels=help&template=security.md
1. Please also create an empty security issue to alert me, as GitHub Advisories do not send a notification, I probably will miss it without this. https://github.com/louislam/uptime-kuma/issues/new?assignees=&labels=help&template=security.md
Do not use the public issue tracker or discuss it in the public as it will cause more damage.
Do not use the public issue tracker or discuss it in public as it will cause more damage.
## Do you accept other 3rd-party bug bounty platforms?
## Do you accept other 3rd-party bug bounty platforms?
At this moment, I DO NOT accept other bug bounty platforms, because I am not familiar with these platforms and someone have tried to send a phishing link to me by this already. To minimize my own risk, please report through GitHub Advisories only. I will ignore all 3rd-party bug bounty platforms emails.
At this moment, I DO NOT accept other bug bounty platforms, because I am not familiar with these platforms and someone has tried to send a phishing link to me by doing this already. To minimize my own risk, please report through GitHub Advisories only. I will ignore all 3rd-party bug bounty platforms emails.
## Supported Versions
## Supported Versions
### Uptime Kuma Versions
### Uptime Kuma Versions
You should use or upgrade to the latest version of Uptime Kuma. All `1.X.X` versions are upgradable to the lastest version.
You should use or upgrade to the latest version of Uptime Kuma. All `1.X.X` versions are upgradable to the latest version.
# DON'T UPDATE TO node:14-bullseye-slim, see #372.
# If the image changed, the second stage image should be changed too
# If the image changed, the second stage image should be changed too
FROM node:16-buster-slim
FROM node:20-bookworm-slim AS base2-slim
ARG TARGETPLATFORM
ARG TARGETPLATFORM
WORKDIR /app
# Specify --no-install-recommends to skip unused dependencies, make the base much smaller!
# apprise = for notifications (From testing repo)
# Install Curl
# sqlite3 = for debugging
# Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv
# iputils-ping = for ping
# Stupid python3 and python3-pip actually install a lot of useless things into Debian, specify --no-install-recommends to skip them, make the base even smaller than alpine!
# util-linux = for setpriv (Should be dropped in 2.0.0?)
"description": "The programming language such as `javascript-fetch` or `python`. See the directory ./extra/push-examples for a list of available languages."
}
],
"returnType": "response-json",
"okReturn": [
{
"name": "code",
"type": "string",
"description": "The push example."
}
],
"possibleErrorReasons": [
"The parameter `language` is not available"
],
},
{
"name": "checkApprise",
"description": "Check if the apprise library is installed.",
"params": [],
"returnType": "boolean",
},
{
"name": "getSettings",
"description": "",
"params": [],
"returnType": "response-json",
"okReturn": [
{
"name": "data",
"type": "object",
"description": "The setting object. It does not contain default values."
}
],
"possibleErrorReasons": [],
},
{
"name": "changePassword",
"description": "",
"params": [
{
"name": "password",
"type": "object",
"description": "The password object with the following properties: `currentPassword` and `newPassword`"
}
],
"returnType": "response-json",
"okReturn": [
{
"name": "data",
"type": "object",
"description": "The setting object. It does not contain default values."
Console.WriteLine("The --intranet argument was provided, so we will not try to access the internet. The first time this application runs you'll need to run it without the --intranet param or copy the result from another machine to the intranet server.");
MessageBox.Show("You have parsed in --intranet so we will not try to access the internet or visit github.com, please go to https://github.com/louislam/uptime-kuma if you want to visit github.");
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.</ErrorText>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.</ErrorText>
* to avoid the runtime deprecation warning triggered for using `fs.rmdirSync` with `{ recursive: true }` in Node.js v16,
* to avoid the runtime deprecation warning triggered for using `fs.rmdirSync` with `{ recursive: true }` in Node.js v16,
* or the `recursive` property removing completely in the future Node.js version.
* or the `recursive` property removing completely in the future Node.js version.
* See the link below.
* See the link below.
*
* @todo Once we drop the support for Node.js v14 (or at least versions before v14.14.0), we can safely replace this function with `fs.rmSync`, since `fs.rmSync` was add in Node.js v14.14.0 and currently we supports all the Node.js v14 versions that include the versions before the v14.14.0, and this function have almost the same signature with `fs.rmSync`.
* @todo Once we drop the support for Node.js v14 (or at least versions before v14.14.0), we can safely replace this function with `fs.rmSync`, since `fs.rmSync` was add in Node.js v14.14.0 and currently we supports all the Node.js v14 versions that include the versions before the v14.14.0, and this function have almost the same signature with `fs.rmSync`.
* @link https://nodejs.org/docs/latest-v16.x/api/deprecations.html#dep0147-fsrmdirpath--recursive-true- the deprecation infomation of `fs.rmdirSync`
* @link https://nodejs.org/docs/latest-v16.x/api/deprecations.html#dep0147-fsrmdirpath--recursive-true- the deprecation infomation of `fs.rmdirSync`
* @link https://nodejs.org/docs/latest-v16.x/api/fs.html#fsrmsyncpath-options the document of `fs.rmSync`
* @link https://nodejs.org/docs/latest-v16.x/api/fs.html#fsrmsyncpath-options the document of `fs.rmSync`
* @param {fs.PathLike} path Valid types for path values in "fs".
* @param {fs.PathLike} path Valid types for path values in "fs".
* @param {fs.RmDirOptions} [options] options for `fs.rmdirSync`, if `fs.rmSync` is available and property `recursive` is true, it will automatically have property `force` with value `true`.
* @param {fs.RmDirOptions} options options for `fs.rmdirSync`, if `fs.rmSync` is available and property `recursive` is true, it will automatically have property `force` with value `true`.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.