Compare commits

..

1472 Commits

Author SHA1 Message Date
Louis Lam
f1e2ee74ea Update to 1.23.11 2023-12-31 05:46:54 +08:00
Louis Lam
8d847abf35 Update dependencies 2023-12-31 05:09:45 +08:00
Louis Lam
8151ac0e25 Fix Async child process output issue (#4231) 2023-12-14 04:54:34 +08:00
Nelson Chan
4185ec20b0 Fix: Origin undefined on error handling (#4224) 2023-12-13 01:35:39 +08:00
Louis Lam
4245ea86e7 Update to 1.23.10 2023-12-13 00:55:58 +08:00
Louis Lam
f861a48dfc Smoothing the update for origin check (#4216) 2023-12-12 16:23:41 +08:00
Louis Lam
fa1214ae5e Rebse #4213 (#4215)
Co-authored-by: Nelson Chan <chakflying@hotmail.com>
2023-12-11 19:30:01 +08:00
Louis Lam
621419e434 Update to 1.23.9 2023-12-10 20:43:29 +08:00
Louis Lam
482049c72b Merge pull request from GHSA-88j4-pcx8-q4q3
* WIP, still need to handle npm run reset-password

* Implement it for "npm run reset-password"

Bug fixes and change along with this commit
- Move `ssl`, `hostname`, `port` to ./server/config.js, so `reset-password` is able to read it
- Fix: FBSD is missing, no idea who dropped it.
- Fix: Frontend code should not require any backend code (./server/config.js), moved "badgeConstants" to the common util (./src/util.ts) and drop vite-common.js

* Minor
2023-12-10 20:40:40 +08:00
Louis Lam
2815cc73cf Merge pull request from GHSA-mj22-23ff-2hrr
* WIP

* WIP

* Handle parsing error

* Fix matching origin issue
2023-12-10 20:39:43 +08:00
Louis Lam
e1147c06aa Update denpendecies 2023-12-10 02:45:42 +08:00
Ritik Singh
abc8f2b131 Fix: Correct Maintenance Start/End Time Input to Use Explicitly Specified Timezone (#4186) 2023-12-09 18:27:07 +08:00
Frank Elsinga
777ef6bc7b chore: added a helptext for ntfy's priority field (#4175)
* added a helptext for `ntfy`'s `priority` field

* linting fixes

* removed an unnecessary `Math.max` call
2023-12-09 17:37:33 +08:00
Louis Lam
b244e8fcbb Re-export the icon on vectr.com, so it can be editable again. The current icon.svg was reduced size by a contributor previously, but the border is detached after that, which cannot edit by any svg editor anymore. 2023-12-09 04:24:19 +08:00
Frank Elsinga
031947319a Add an aria-label to the monitor search box (#4163)
* added the `Search monitored sites` label

* rebase
2023-12-05 01:15:28 +08:00
Adam Stachowicz
74a908a069 Max ESLint warnings 0 (#4158)
* Fix ESLint warnings. Update workflows. 0 ESLint warnings for auto-test

* json-yaml-validate: Fix `unable to find version `v2``
2023-12-04 18:19:18 +08:00
Frank Elsinga
9c56c9b346 Fixed the buttons of ActionsSelect and ActionsInput having a default type="submit" (#4162)
* fixed the buttons having a default type="submit"

* fixed linting issue
2023-12-04 01:15:40 +08:00
Louis Lam
37666bf35f Update to 1.23.8 2023-12-02 17:51:06 +08:00
Louis Lam
90badfabee Update dependencies 2023-12-02 15:41:59 +08:00
Frank Elsinga
e3396251a8 accessible domain selector (#4133)
* made the status domain selector more accessible

* linting fix

* implemented the suggested changes

---------

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-12-01 15:05:01 +08:00
Frank Elsinga
9c9a086788 accessible ActionSelect/ ActionInput (#4132)
* made sure that the ActionSelect'or has correct accessibiltiy tags

* fixed linting error

* improved the ActionInputs accessibility
2023-12-01 14:34:37 +08:00
Louis Lam
9fb95fe95e Add support for /snap/bin/chromium (#4141) 2023-12-01 14:25:41 +08:00
Louis Lam
1e75d81bcf Update apprise from 1.4.5 to 1.6.0 (#4140) 2023-12-01 14:16:35 +08:00
Louis Lam
cb3a104dc0 Default Retries from 1 to 0 (#4139)
* Default "Retries" from 1 to 0
2023-12-01 14:09:13 +08:00
Louis Lam
57a18958d6 Update gamedig from ~4.1.0 to ^4.2.0 (#4136) 2023-12-01 11:42:31 +08:00
Louis Lam
1708b67949 Change execSync/spawnSync to async (#4123)
* WIP

* Add missing await

* Update package-lock.json
2023-11-30 16:12:04 +08:00
Louis Lam
73239d441d Update to 1.23.7 2023-11-24 18:49:27 +08:00
Louis Lam
4ceeb304f1 Add a script to prepare a changelog 2023-11-24 18:44:54 +08:00
Louis Lam
711380bbbe Merge pull request #4095 from louislam/update-3
Rewrite Tailscale ping using spawnSync
2023-11-24 17:44:24 +08:00
Louis Lam
9536c6aa6a Minor 2023-11-24 17:33:13 +08:00
Louis Lam
4255496b11 Rewrite Tailscale ping using spawnSync 2023-11-24 17:29:42 +08:00
Louis Lam
f28dccf4e1 Merge pull request from GHSA-v4v2-8h88-65qj 2023-11-24 17:18:01 +08:00
Louis Lam
b689733d59 Fix getGameList, testChrome without checkLogin 2023-11-24 16:37:52 +08:00
Louis Lam
afaa7bb2f0 Do not process debug log for production 2023-11-24 16:03:35 +08:00
Louis Lam
121d1a11af Revert "Restart running monitors if no heartbeat (#3952)" (#4088)
This reverts commit c43223a16d.
2023-11-24 02:23:38 +08:00
Louis Lam
8e61158758 Close the client postgresql connection after rejection. (#4084)
Co-authored-by: Manuel Vázquez Acosta <manuel@merchise.org>
2023-11-22 19:50:03 +08:00
Louis Lam
bf58838b89 +10 seconds for Abort signal (#4053)
* Debug only

* Remove debug
2023-11-22 16:03:03 +08:00
Nelson Chan
33ce0ef02c Fix: Improve error message on timeout (#4054)
* Fix: Improve error message on timeout

* Chore: Format
2023-11-21 23:56:17 +08:00
Louis Lam
c1aaad0d85 Update to 1.23.6 2023-11-18 11:37:14 +08:00
Louis Lam
954e05b72f Fix #4051 2023-11-18 11:33:34 +08:00
Louis Lam
6d4a45f18c Update to 1.23.5 2023-11-18 01:23:53 +08:00
Louis Lam
f0975cd929 Should be a final ulitmate fix for request timeout issue (#4045)
* Try to fix timeout again

* Ops
2023-11-18 01:17:54 +08:00
Louis Lam
40d6a21453 Fix kafka migration script again (#4043) 2023-11-17 15:21:29 +08:00
Louis Lam
b383392e8f Remains Node.js 16' SSL behavior for 1.23.X (#4044) 2023-11-17 15:21:08 +08:00
Nelson Chan
9964b6c4d8 Fix: Update monitor object on pause (#4032) 2023-11-16 20:41:35 +08:00
Louis Lam
d56bf08cd7 Update to 1.23.4 2023-11-13 15:23:32 +08:00
Louis Lam
291d5d7c55 Update dependencies 2023-11-13 15:22:51 +08:00
Louis Lam
8e3ff25f7b Followup #3864, rebase for 1.23.x (#4016)
* Fix: Use ActionSelect Docker Host & validate input

* Fix: Handle docker host deleted while editing

* UI: Use add for ActionSelect & prevent delete instead

---------

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
2023-11-12 20:32:40 +08:00
Louis Lam
6e80c850f4 Should be an ulitmate fix for request timeout issue (#4011) 2023-11-12 13:50:51 +08:00
Muhammed Hussein karimi
0608881954 🐛 fix: kafka producer booleans migration null values (#3984)
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
2023-11-10 00:32:54 +08:00
Nelson Chan
38efd97b28 Fix: Support float ping in push route (#3987) 2023-11-09 23:39:44 +08:00
Louis Lam
ce0ba6c0ca Fix/axios abort signal for 1.23.X (#3971)
* Fix: Add axios abort signal

* Chore: Fix comment

---------

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
2023-11-01 10:10:48 +08:00
Louis Lam
c43223a16d Restart running monitors if no heartbeat (#3952) 2023-11-01 09:36:12 +08:00
Muhammed Hussein karimi
9f170a68d7 🐛 fix: boolean fields in kafka producer monitor (#3949)
* 🐛 fix: boolean fields in kafka producer monitor

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: boolean fields db patch table modify

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* ✏️  typo: remove `_old` COLUMNs in patch-fix-kafka-producer-booleans

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

---------

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
2023-10-28 14:42:55 +08:00
Louis Lam
1a862e47ab Check if the password changed when user is not null 2023-10-23 06:21:39 +08:00
Nelson Chan
e64bf0e3fe Fix: Stop notification check on root certs (#3874)
* Fix: Stop notification check on root certs

* Chore: Use Set for optimization

* Fix: Manually calculate SHA256 to support node v14
2023-10-16 02:20:38 +08:00
Louis Lam
523d137e2b Lint 2023-10-16 00:43:07 +08:00
Louis Lam
18169c59a1 [MySQL monitor] Split password into a standalone field (#3899) 2023-10-16 00:38:56 +08:00
Louis Lam
4ccf263481 Update docker image base from Node.js 16 to Node.js 18 for Uptime Kuma v1 (#3901) 2023-10-16 00:27:47 +08:00
Louis Lam
1c13a75970 Fix #3868 postgres monitor could possibly crash Uptime Kuma (#3880)
* Bump pg

* Handle uncaughtException

* Fix parsing issue of postgres connection and fix the query example
2023-10-13 02:50:10 +08:00
Louis Lam
c3e3f27457 Update to 1.23.3 2023-10-09 20:26:18 +08:00
Louis Lam
794f1810bf Minor 2023-10-09 20:09:29 +08:00
Louis Lam
168357d93c Update dependencies 2023-10-09 20:05:50 +08:00
Louis Lam
476deb9fec Pin npm@9 2023-10-09 07:33:52 +08:00
Louis Lam
a36f2a75ca Enable auto-test for 1.23.X branch 2023-10-09 07:23:30 +08:00
Louis Lam
88afab6571 Merge pull request from GHSA-g9v2-wqcj-j99g
* Fix attempt

* Update message
2023-10-09 07:01:54 +08:00
Nelson Chan
bd9c44cccf Fix: Disable status page saving before getData 2023-10-09 06:41:07 +08:00
前端小武
1b148786a5 Fix: Update x-forwarded-host field when using reverse proxy (#3726) 2023-10-09 06:31:52 +08:00
Louis Lam
66a10b8993 Pump gamedig from 4.0.X to 4.1.X and update dependencies 2023-10-03 04:51:02 +08:00
Muhammed Hussein karimi
2ab21ccf8a 🐛 fix: kafka producer bugs (#3771)
* 🐛 fix: missing Kafka Producer SSL option in frontend object

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* ♻️  refactor: better error handling of kafka producer

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

---------

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
2023-09-24 03:30:15 +08:00
Marvin A. Ruder
90d0e8ccde Enable status page certificate expiry badge for all HTTP(s) monitors (#3649) 2023-09-24 03:18:18 +08:00
Louis Lam
16a396debb Similar to #3763, but for 1.23.3 2023-09-21 20:38:54 +08:00
Louis Lam
6b3d69e1d3 Ignore /extra/healthcheck-armv7 2023-09-18 03:59:56 +08:00
Louis Lam
b3b8e9f3a0 Update to 1.23.2 2023-09-18 03:04:29 +08:00
Louis Lam
e5345848a2 Update dependencies 2023-09-18 03:01:58 +08:00
FC (Fay) Stegerman
d8a8f6c08b EditMonitor: add missing config UI for json-query (#3751) 2023-09-17 20:39:07 +08:00
Louis Lam
f98a1ce077 Ignore some build files 2023-09-17 20:32:49 +08:00
Louis Lam
86fa57449e Fix #3596 2023-09-17 02:56:19 +08:00
Louis Lam
ff51704cdf Fix #3712 2023-09-17 02:40:08 +08:00
Henrik Gerdes
33804d8823 fix: respect the user defined oauth2 auth method (#3727) 2023-09-16 05:13:20 +08:00
Nelson Chan
1e12ca4786 Fix: Disable save button on submit (#3729) 2023-09-16 05:11:18 +08:00
Nelson Chan
0af4ee6c34 Fix: Missing await for isActive (#3717) 2023-09-10 01:54:03 +08:00
ZaneL1u
1f29fabe64 fix: fix the judgment condition of Tailscale (#3701) 2023-09-07 16:15:21 +08:00
Louis Lam
c4e222d1e6 Update README.md 2023-08-29 20:49:03 +08:00
Louis Lam
f2a1c26ef8 Update to 1.23.1 2023-08-29 03:52:53 +08:00
Louis Lam
8772baad9a Update dependencies 2023-08-29 03:39:47 +08:00
Louis Lam
215c89e8d3 Merge pull request #3612 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-08-29 03:09:48 +08:00
Unai Tolosa Pontesta
e6a055af19 Translated using Weblate (Basque)
Currently translated at 68.9% (557 of 808 strings)

Co-authored-by: Unai Tolosa Pontesta <utolosa002@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/eu/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
Yoswaris Lawpaiboon
88d71d2c7a Translated using Weblate (Thai)
Currently translated at 79.9% (646 of 808 strings)

Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
Mirinek
cd2d5325df Translated using Weblate (Slovak)
Currently translated at 26.7% (216 of 808 strings)

Co-authored-by: Mirinek <mirek.nozicka77@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
AlwaleedAlwabel
75a1245b70 Translated using Weblate (Arabic)
Currently translated at 83.9% (678 of 808 strings)

Co-authored-by: AlwaleedAlwabel <xomsd1@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ar/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
DevMirza
f666eb6d83 Translated using Weblate (Urdu)
Currently translated at 59.1% (478 of 808 strings)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
Haim Cohen
cb10643f57 Translated using Weblate (Hebrew (Israel))
Currently translated at 87.6% (708 of 808 strings)

Co-authored-by: Haim Cohen <haim1979@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/he_IL/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
Wishw
c9ba4e7e8b Translated using Weblate (Telugu)
Currently translated at 23.3% (189 of 808 strings)

Added translation using Weblate (Telugu)

Co-authored-by: Wishw <62600445+Wisw@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/te/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
stanol
94187bca5d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (808 of 808 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
2023-08-28 08:15:57 +00:00
Matteo Mazzoni
39b4aa5966 Translated using Weblate (Italian)
Currently translated at 73.0% (590 of 808 strings)

Co-authored-by: Matteo Mazzoni <matteo@matteomazzoni.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translation: Uptime Kuma/Uptime Kuma
2023-08-28 08:15:57 +00:00
Louis Lam
cd79df07e1 Add an ability to enable/disable nscd (#3652) 2023-08-28 16:15:48 +08:00
Louis Lam
0c40f02584 Put Monitor Group under Advanced section 2023-08-28 04:59:47 +08:00
Nelson Chan
db42c13e05 Fix: Remove legacy unused tags cleanup (#3651) 2023-08-27 18:56:50 +08:00
Nelson Chan
5f85d8f749 Fix: Focus & styling on safari (#3650) 2023-08-27 18:55:36 +08:00
Lior Slakman
c0e273df5b Show hostname:port for gamedig monitor on Discord notification (#3643) 2023-08-27 02:24:33 +08:00
Nelson Chan
4da1341aa5 Fix: Improve dnsMessage handling (#3614) 2023-08-26 21:27:32 +08:00
James Osborn
e765e6a1b8 Spelling & Grammar updates (#3638)
* 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.
2023-08-25 00:01:47 +08:00
bt90
eee9a1f004 Passwordmanager friendly inputs (#3593)
* 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
2023-08-21 02:25:35 +08:00
Frank Elsinga
4d07b65bdd fixed local docker not working anymore (#3606) 2023-08-20 04:45:58 +08:00
Frank Elsinga
1772158d62 fixed opsgenieRegion not being the same enum between the frontend and backend (#3616) 2023-08-20 04:41:42 +08:00
Frank Elsinga
7bfdb82f5d bug: fixed the curser being a pointer if hovering above the dropdown-item's (#3607)
* fixed the curser being a pointer if hovering above the `dropdown-item`'s

* formatting fix
2023-08-20 04:40:12 +08:00
Frank Elsinga
8945316ce6 added helptexs to the installation script (#3603) 2023-08-20 03:01:37 +08:00
Louis Lam
9564550d5f Update to 1.23.0 2023-08-17 22:30:28 +08:00
Louis Lam
a78e7a423e Merge pull request #3569 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-08-17 22:02:41 +08:00
Alex Javadi
9dddd0b657 Translated using Weblate (Persian)
Currently translated at 100.0% (808 of 808 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
2023-08-16 11:16:35 +00:00
astroking362
d04d86d74e Translated using Weblate (Portuguese)
Currently translated at 4.5% (37 of 808 strings)

Co-authored-by: astroking362 <astroking362@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt/
Translation: Uptime Kuma/Uptime Kuma
2023-08-16 11:16:35 +00:00
ITQ
eb11c18203 Translated using Weblate (Russian)
Currently translated at 100.0% (808 of 808 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
2023-08-16 11:16:35 +00:00
Harry Suryapambagya
3da2d78ad9 Translated using Weblate (Indonesian)
Currently translated at 93.9% (759 of 808 strings)

Co-authored-by: Harry Suryapambagya <harsxv@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/
Translation: Uptime Kuma/Uptime Kuma
2023-08-16 11:16:35 +00:00
Buchtič
2b4ec765ff Translated using Weblate (Czech)
Currently translated at 100.0% (808 of 808 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
2023-08-16 11:16:35 +00:00
losing
72dcefff76 Translated using Weblate (Slovak)
Currently translated at 26.6% (215 of 808 strings)

Co-authored-by: losing <me@losing.top>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-08-16 11:16:35 +00:00
Nelson Chan
3a894958eb Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 86.7% (701 of 808 strings)

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-08-16 11:16:35 +00:00
Nelson Chan
fe431d6385 Chore: Run test on PR to v2 branch (#3582) 2023-08-16 16:05:52 +08:00
Louis Lam
ce0289855d Remove hard-coded node versions as upstream fixed (#3576) 2023-08-15 17:13:35 +08:00
zhenqiang
c0174dc1c4 fix(notification-aliyun-sms): throw error when sending SMS failed (#3573) 2023-08-15 04:14:28 +08:00
M1CK431
e745bd69da [webapp] Setup: translate fields placeholders (#3563) 2023-08-15 02:00:42 +08:00
UptimeKumaBot
72741ebb10 Translations Update from Weblate (#3560)
* Translated using Weblate (Portuguese)

Currently translated at 4.1% (33 of 801 strings)

Added translation using Weblate (Portuguese)

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Czech)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (French)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (French)

Currently translated at 100.0% (801 of 801 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Turkish)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (German)

Currently translated at 98.3% (788 of 801 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 98.3% (788 of 801 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: rubesaca <rubesaca@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 99.7% (806 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Polish)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (Russian)

Currently translated at 98.2% (794 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Italian)

Currently translated at 72.8% (589 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/

* Translated using Weblate (Russian)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

---------

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Michal <black23@gmail.com>
Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Co-authored-by: stanol <stanol777@gmail.com>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Co-authored-by: Marco <marco@nanoweb.ch>
Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Co-authored-by: rubesaca <rubesaca@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Co-authored-by: sovushik <evgeniy@grachev.biz>
Co-authored-by: Lance <2124757129@qq.com>
Co-authored-by: diego <deiana.diego@icloud.com>
Co-authored-by: ITQ <itq.dev@ya.ru>
2023-08-12 22:37:55 +08:00
Frank Elsinga
ff88018b0c rephrased the dependency documentation (#3565) 2023-08-12 22:28:12 +08:00
Matthew Nickson
921c8f8100 Add noscript tag as stand in for #3553 (#3555)
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-08-10 19:35:13 +08:00
Louis Lam
de83863627 Update to 1.23.0-beta.1 2023-08-08 18:44:11 +08:00
Louis Lam
d7e0ff4b8c Update dependencies 2023-08-08 18:43:45 +08:00
UptimeKumaBot
112cc3d7b8 Translations Update from Weblate (#3536)
* Translated using Weblate (Portuguese)

Currently translated at 4.1% (33 of 801 strings)

Added translation using Weblate (Portuguese)

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Czech)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (French)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (French)

Currently translated at 100.0% (801 of 801 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Turkish)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (German)

Currently translated at 98.3% (788 of 801 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 98.3% (788 of 801 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: rubesaca <rubesaca@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 99.7% (806 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Polish)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (808 of 808 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

---------

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Michal <black23@gmail.com>
Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Co-authored-by: stanol <stanol777@gmail.com>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Co-authored-by: Marco <marco@nanoweb.ch>
Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Co-authored-by: rubesaca <rubesaca@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2023-08-08 18:32:26 +08:00
Louis Lam
b44f6e4af2 Fix #3539 2023-08-08 18:29:48 +08:00
Louis Lam
18a2a8eb1e Update to 1.23.0-beta.0 2023-08-08 03:57:59 +08:00
Louis Lam
e9585ccbf4 Add .devcontainer to .dockerignore 2023-08-08 03:54:21 +08:00
UptimeKumaBot
5e39b0daf6 Translations Update from Weblate (#3512)
* Translated using Weblate (Portuguese)

Currently translated at 4.1% (33 of 801 strings)

Added translation using Weblate (Portuguese)

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Czech)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (French)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (French)

Currently translated at 100.0% (801 of 801 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Turkish)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (803 of 803 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (801 of 801 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

* Translated using Weblate (German)

Currently translated at 98.3% (788 of 801 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 98.3% (788 of 801 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Spanish)

Currently translated at 91.2% (733 of 803 strings)

Co-authored-by: rubesaca <rubesaca@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma

---------

Co-authored-by: Miguel Castilho Dias <miguelcastilhodias@gmail.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Michal <black23@gmail.com>
Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Co-authored-by: stanol <stanol777@gmail.com>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Co-authored-by: Marco <marco@nanoweb.ch>
Co-authored-by: Jorge Sanz Sanfructuoso <sanchi2@gmail.com>
Co-authored-by: rubesaca <rubesaca@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2023-08-08 03:26:54 +08:00
Matthew Nickson
71fca3f0c3 Fixed #3520 Validate accepted status codes type (#3530)
* 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>
2023-08-08 03:22:32 +08:00
Nelson Chan
2921f33c24 Feat: add givenPortOnly as gamedig option (#3532) 2023-08-08 03:14:21 +08:00
Louis Lam
4e0bb394db Minor 2023-08-08 03:10:21 +08:00
Nelson Chan
ced576feba Feat: Show elapsed time in HeartbeatBar (#3219)
* Feat: Show elapsed time in HeartbeatBar

* Chore: Fix lint

* Feat: Fix calculation & improve efficiency

* Fix: Fix getting tolerance in statusPage

* Chore: Improve comments & apply suggestions

* Optional elapsed time

---------

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-08-08 03:00:40 +08:00
Anders Kvist
ceb5708bfd Fix case for setting httpBodyEncoding to null - does work for http, b… (#3498)
* 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>
2023-08-07 15:13:51 +08:00
Nelson Chan
23fdd32de0 Fix: filtersActive placed incorrectly (#3531) 2023-08-07 15:10:03 +08:00
Nelson Chan
36777c5eff Fix: Filtering works with group monitor (#3469)
* Fix: Filtering works with group monitor

* Chore: Update comment

* Apply suggestions from code review

Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>

---------

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-08-07 00:35:50 +08:00
Jinhyeok Lee
439b6517d1 Feat: Add http/http keyword timeout option (#2142)
* 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>
2023-08-07 00:14:56 +08:00
Louis Lam
c6e68fac97 Follow up #2852 (#3527) 2023-08-04 23:08:44 +08:00
Marcell Fülöp
bce4835362 FEAT: Allow client side TLS for Docker hosts (#2852)
* 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
2023-08-04 22:49:33 +08:00
Nelson Chan
a032e11a2e Feat: Create Group in EditMonitor page (#3379)
* 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>
2023-08-04 14:48:21 +08:00
Louis Lam
d231a05526 Remove babel-plugin-rewire (#3522) 2023-08-04 01:10:15 +08:00
GitStart
f4967615c0 UPTM-14 - Dashboard Display on vertical 4K screen (#3451)
* Update src/pages/DashboardHome.vue

Co-authored-by: Frank Elsinga <frank@elsinga.de>

* resolve comment

Co-authored-by: AqidaHaidari <aghida55@gmail.com>
Co-authored-by: Pascal Ojinnaka <56399504+passy4ucj@users.noreply.github.com>
Co-authored-by: Aqida <42426077+AqidaHaidari@users.noreply.github.com>

---------

Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: AqidaHaidari <aghida55@gmail.com>
Co-authored-by: gitstart_bot <gitstart_bot@users.noreply.github.com>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: Pascal Ojinnaka <56399504+passy4ucj@users.noreply.github.com>
Co-authored-by: Aqida <42426077+AqidaHaidari@users.noreply.github.com>
2023-08-03 21:07:01 +08:00
Louis Lam
67b1974718 Allow specifying DATA_DIR without a tailing slash 2023-08-03 20:54:11 +08:00
M1CK431
062e9db2a7 fix: typo in contributing guide (#3517) 2023-08-03 14:09:45 +08:00
DevMirza
90e1b4cf56 Update dependencies 2023-08-03 14:06:39 +08:00
Frank Elsinga
43698b23c6 Chore: Updated translation contributing guide (#3511)
* 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
2023-08-02 17:30:54 +08:00
DevMirza
f19b27c1c7 fix: readme (#3502) 2023-08-02 16:11:18 +08:00
Henrik Gerdes
42b5d30a33 feat: Implement oauth2 monitors (#3119)
* [empty commit] pull request for implement oauth2 monitor

* feat: implement oauth2 client credentials flow

* fix: auth methods clarification & error handling

* docs: fix JSdocs types and clarifications
2023-08-02 15:40:19 +08:00
Nelson Chan
cda77c1a32 Fix: Prevent race condition in toast (#3443) 2023-08-02 15:09:13 +08:00
UptimeKumaBot
157cf47d38 Translations Update from Weblate (#3318)
* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (762 of 762 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (754 of 754 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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 78.1% (589 of 754 strings)

Co-authored-by: Bruno Guerreiro <brunogcarvalho@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (762 of 762 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (754 of 754 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

* Translated using Weblate (Czech)

Currently translated at 99.8% (761 of 762 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

* Translated using Weblate (French)

Currently translated at 99.3% (757 of 762 strings)

Co-authored-by: Dim <DimitriDR@users.noreply.weblate.kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (757 of 757 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

* Translated using Weblate (Turkish)

Currently translated at 100.0% (757 of 757 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

* Translated using Weblate (German)

Currently translated at 100.0% (757 of 757 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (757 of 757 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 77.9% (590 of 757 strings)

Co-authored-by: Paulo <git@pauloo27.dev>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Russian)

Currently translated at 100.0% (757 of 757 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (755 of 757 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

* Translated using Weblate (Thai)

Currently translated at 85.3% (646 of 757 strings)

Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Polish)

Currently translated at 99.4% (753 of 757 strings)

Co-authored-by: Tomasz Ad <djtms84@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Vietnamese)

Currently translated at 61.6% (467 of 757 strings)

Co-authored-by: Bond <xuantan97@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/vi/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Urdu)

Currently translated at 60.7% (460 of 757 strings)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma

* Translated using Weblate (Czech)

Currently translated at 100.0% (757 of 757 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 95.3% (722 of 757 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 95.3% (722 of 757 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/

* Translated using Weblate (Vietnamese)

Currently translated at 62.7% (475 of 757 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/vi/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (French)

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (German)

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (759 of 759 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (French)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (762 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Bulgarian)

Currently translated at 99.8% (762 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 99.6% (760 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Indonesian)

Currently translated at 81.3% (621 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/

* Translated using Weblate (Russian)

Currently translated at 99.2% (757 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Danish)

Currently translated at 73.6% (562 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (Croatian)

Currently translated at 71.2% (544 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hr/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/

* Translated using Weblate (Portuguese (Portugal))

Currently translated at 57.0% (435 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_PT/

* Translated using Weblate (Thai)

Currently translated at 84.5% (645 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (763 of 763 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/

* Translated using Weblate (French)

Currently translated at 100.0% (767 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (767 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (767 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (767 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 99.6% (764 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Czech)

Currently translated at 99.8% (766 of 767 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (768 of 768 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (French)

Currently translated at 100.0% (768 of 768 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (768 of 768 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (768 of 768 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (770 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (French)

Currently translated at 100.0% (770 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (770 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Czech)

Currently translated at 99.8% (769 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Czech)

Currently translated at 99.8% (769 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (768 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (768 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (770 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (768 of 770 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (French)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 99.8% (771 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nl/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (772 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (770 of 772 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 98.9% (778 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (French)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (784 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 89.3% (702 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Added translation using Weblate (Burmese)

* Translated using Weblate (Burmese)

Currently translated at 4.5% (36 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/my/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (Russian)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (786 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Burmese)

Currently translated at 11.4% (90 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/my/

* Translated using Weblate (French)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (Russian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (785 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Added translation using Weblate (Bengali)

* Translated using Weblate (English)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (German)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (French)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.7% (785 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Japanese)

Currently translated at 69.5% (547 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/

* Translated using Weblate (Japanese)

Currently translated at 69.5% (547 of 786 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/

* Translated using Weblate (Czech)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/

* Translated using Weblate (German)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/

* Translated using Weblate (French)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Japanese)

Currently translated at 69.7% (549 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (787 of 787 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (790 of 790 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (790 of 790 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (789 of 790 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (796 of 797 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 99.7% (797 of 799 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (799 of 799 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

---------

Co-authored-by: zappityzap <128872140+zappityzap@users.noreply.github.com>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Bruno Guerreiro <brunogcarvalho@gmail.com>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Co-authored-by: Michal <black23@gmail.com>
Co-authored-by: Dim <DimitriDR@users.noreply.weblate.kuma.pet>
Co-authored-by: stanol <stanol777@gmail.com>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Co-authored-by: Marco <marco@nanoweb.ch>
Co-authored-by: Paulo <git@pauloo27.dev>
Co-authored-by: ITQ <itq.dev@ya.ru>
Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Co-authored-by: Tomasz Ad <djtms84@gmail.com>
Co-authored-by: Bond <xuantan97@gmail.com>
Co-authored-by: DevMirza <pzhafeez@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Tomy Hsieh <git@tomy.me>
Co-authored-by: melt-tscci <beta_hz@163.com>
Co-authored-by: AyanoKiru <tn0562260@gmail.com>
Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Co-authored-by: jonas <jonasriedel@pm.me>
Co-authored-by: Dikky Hardian <dikkyhardian@gmail.com>
Co-authored-by: Buchtič <martin.buchta@gmail.com>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Co-authored-by: Justin Kruit <justinkruitnl@gmail.com>
Co-authored-by: Marco Li <macaty@gmail.com>
Co-authored-by: naing-htoo <nainghtoo@tnitech.net>
Co-authored-by: drshounak <contact@drshounak.com>
Co-authored-by: Simon Thiel <simon.thiel2+github@gmail.com>
Co-authored-by: Donker_Jumala <weareh0711@gmail.com>
Co-authored-by: mottcha <yuki627f@gmail.com>
2023-08-01 15:41:50 +08:00
Nelson Chan
09c6798a30 Fix: Add debounce to favicon update (#3442) 2023-08-01 15:12:17 +08:00
Damon
587d9e4781 Add Flashduty notification (#3475)
* 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
2023-08-01 02:13:04 +08:00
Frank Elsinga
ae2867e305 removed input-groups without any visual impact (#3485) 2023-07-31 23:59:12 +08:00
Louis Lam
65ffd77d35 Update dependencies 2023-07-31 18:04:20 +08:00
Louis Lam
9dd652733e Merge pull request #3467 from ngc7331/pushdeer
[reopened] feat: allow the user to configure PushDeer Server URL
2023-07-31 17:57:21 +08:00
Louis Lam
0a59fef7d8 Merge pull request #3490 from chakflying/fix/radius-retry
Fix: Incorrect radius error & retry handling
2023-07-31 17:47:26 +08:00
Louis Lam
27ce47277b Merge pull request #3357 from tarun7singh/status-page-expiry
Status page certificate expiry
2023-07-31 17:46:13 +08:00
Louis Lam
7f68e4a987 Merge remote-tracking branch 'origin/master' into status-page-expiry
# Conflicts:
#	src/lang/en.json
2023-07-31 17:30:49 +08:00
Frank Elsinga
149d08ecbb Chore: make sql monitors eazier to use (#3474)
* 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
2023-07-31 17:28:39 +08:00
zappityzap
eb6167aaf1 Nostr dm notifications (#3473)
* 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

* better websocket polyfill, update deprecated function

* add conditional polyfills for node versions

* lint

* use correct npm for package-lock

---------

Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-07-31 17:24:45 +08:00
Shaun
db66195f7d Added ability to bulk select, pause & resume (#1886)
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-07-31 16:24:00 +08:00
Louis Lam
59245e624d Update workflow's Node.js version to 20 (#3503) 2023-07-30 19:02:36 +08:00
Nelson Chan
c0eb0cb42c Chore: Add test radius dockerfile 2023-07-27 17:43:33 +08:00
Nelson Chan
573f158f7f Fix: incorrect radius error handling 2023-07-27 17:42:22 +08:00
Frank Elsinga
6413d4cbdf added a heltext for the nfty url helptext (#3484) 2023-07-27 00:11:18 +08:00
Adam Stachowicz
cf5a04bc5e Do not translate Android. Addendum to #2812 (#3480) 2023-07-26 19:36:47 +08:00
Louis Lam
a0203372ce Built-in nscd into the docker image (a better dns caching service) (#3472) 2023-07-24 17:04:50 +08:00
Raymond Hackley
5ccf2d23fc Fix: SMTP notification "Ignore TLS Error" option (#2999) (#3465) 2023-07-23 14:45:05 +08:00
小造xu_zh
bf68e0a7bc fix: define pushdeerlink 2023-07-21 14:11:13 +00:00
小造xu_zh
6984596568 Apply suggestions from code review
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-07-21 22:01:20 +08:00
小造xu_zh
f3562864ee Apply suggestions from code review
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-07-21 13:45:50 +00:00
Louis Lam
9058a829a1 Update install.sh (#3464) 2023-07-21 16:09:35 +08:00
小造xu_zh
0684313ec9 feat: remove blank characters and ending '/' first 2023-07-20 09:33:27 +00:00
小造xu_zh
d7e12dc92d feat: allow the user to configure PushDeer Server URL 2023-07-20 09:24:16 +00:00
SGprooo
1d9a28e9ab feat: Tailscale ping monitor (#3178)
* 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>
2023-07-19 20:58:21 +08:00
Thomas McWork
ddbf367011 Mattermost: update dead docs link (#3450) 2023-07-19 18:25:58 +08:00
Tarun Singh
50d4091ded Merge branch 'master' of https://github.com/louislam/uptime-kuma into status-page-expiry 2023-07-18 22:57:48 -04:00
Nelson Chan
66cfbd02c3 Fix: Update monitor-list height (#3444) 2023-07-18 14:39:05 +08:00
Louis Lam
688f23035b Update @louislam/ping to 0.4.4-mod.1 (Add back OpenBSD ping support) 2023-07-18 14:36:59 +08:00
Frank Elsinga
7701e2ad36 Update README.md (#3438) 2023-07-18 11:17:20 +08:00
Louis Lam
8e72d6f534 Fix codespace url (#3436)
* Fix codespace url (https://github.com/louislam/uptime-kuma/pull/3432#discussion_r1265120809)
2023-07-17 20:14:05 +08:00
Muhammed Hussein karimi
278b88a9d9 feat: added kafka producer (#3268)
*  feat: added kafka producer

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: eslint warn

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: typings and auth problems

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: better variable name to trrack disconnection

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: grouping Kafka Producer special settings into one template

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

*  feat: add kafka producer translations into `en.json`

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: disable close-on-select on kafka broker picker

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 🐛 fix: `en.json` invalid json (conflict resolve)

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>

* 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

* Minor

* Fix a bug of clone

---------

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-07-17 16:15:44 +08:00
Louis Lam
084cf01fcd Add support for Codespaces (#3432)
* Create devcontainer.json

* WIP

* WIP

* WIP

* Create README.md

* Try to fix cypress issue

* Add extensions

* WIP

* Minor
2023-07-17 14:54:40 +08:00
Tarun Singh
f6c1b92fc6 Added http type check and tags based design 2023-07-17 02:01:10 -04:00
Louis Lam
25c8196641 Support Node.js 20 again (#3431)
* Support >= Node.js 20.4.0

* Improve the Node.js warning, ban 20.0 to 20.3

* Update

* Minor
2023-07-17 13:17:00 +08:00
Frank Elsinga
baf5613dfa Fixed Replit not being mentioned in the help template (#3430) 2023-07-16 22:43:51 +08:00
Louis Lam
695691468c Merge pull request #3428 from chakflying/fix/no-delete-draft-tag
Fix: Hide delete button in Settings -> Create New Tag
2023-07-16 21:39:12 +08:00
Louis Lam
4891ec4527 Merge pull request #3312 from chakflying/feat/monitor-list-improved-filtering
Feat: Improved comprehensive monitor list filtering
2023-07-16 21:27:42 +08:00
Louis Lam
e2a87eb430 Improve the filter translate keys 2023-07-16 21:15:25 +08:00
Louis Lam
80927332cb Merge remote-tracking branch 'origin/master' into feat/monitor-list-improved-filtering 2023-07-16 21:04:46 +08:00
Nelson Chan
a0eb733d54 Fix: Hide the Delete button correctly 2023-07-16 08:10:02 +08:00
Louis Lam
21d556528f Fix #3420 timezone issue (#3425) 2023-07-15 23:23:27 +08:00
Louis Lam
357466cc90 Minor 2023-07-15 21:27:39 +08:00
Louis Lam
b038d09349 Minor 2023-07-15 21:26:41 +08:00
Louis Lam
5dd4231e56 Fix pr-test image 2023-07-15 21:24:33 +08:00
Louis Lam
c6d0c431bd Merge pull request #3080 from duanearnett/feature/add-channel-notification-for-slack
Adds configurable @channel notification for Slack integrations
2023-07-15 18:41:17 +08:00
Louis Lam
d1b7f4c834 Merge pull request #3329 from chakflying/feat/badge-generator-placeholders
Chore: Add value placeholders & preview for badge generator
2023-07-15 01:19:37 +08:00
Louis Lam
5c4180fb45 Merge conflicts 2023-07-15 01:09:09 +08:00
Louis Lam
345e61abca Merge remote-tracking branch 'origin/master' into feat/badge-generator-placeholders
# Conflicts:
#	package-lock.json
#	package.json
2023-07-15 01:05:34 +08:00
Louis Lam
dd1526deff Merge pull request #3421 from louislam/some-update
Some update
2023-07-14 18:07:42 +08:00
Louis Lam
be26bb75d9 Update version handling 2023-07-14 18:02:49 +08:00
Louis Lam
99fb5836e2 Add SMSC (СМСЦентр) provider notification (#3335) By @FlatronBuda
* 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>
2023-07-14 14:29:35 +08:00
Louis Lam
2f5a565ce4 Merge pull request #3381 from n-thumann/fix_ipv6_handling
Fix handling of IPv6 addresses in getClientIP
2023-07-14 12:34:59 +08:00
Louis Lam
973db9d4b2 Merge pull request #3330 from chakflying/fix/datetime-wrong-type
Chore: Fix incorrect data type for DateTime component
2023-07-14 12:26:22 +08:00
Tarun Singh
2e75142fe5 Bug fix and unknown days added 2023-07-13 20:50:17 -04:00
Tarun Singh
ad3ffacf45 PR comment fix 2023-07-13 20:37:21 -04:00
Tarun Singh
6f4af30701 Merge branch 'master' of https://github.com/louislam/uptime-kuma into status-page-expiry 2023-07-13 20:02:50 -04:00
Tarun Singh
b1f266ceb1 Added expiry changes to status page and fixes 2023-07-13 20:00:23 -04:00
Muhammed Hussein karimi
6bece8796e feat: json-query monitor added (#3253)
*  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>
2023-07-13 23:37:26 +08:00
Louis Lam
e7d1b4e14a Merge pull request #3174 from chakflying/fix/push-monitor-safe-restart
Fix: Use safeBeat in push monitor
2023-07-13 23:14:28 +08:00
Louis Lam
e5c6783781 Merge pull request #3205 from woj-tek/master
Add option to use ApiKeys in Twilio in addition to main account credentials
2023-07-13 23:11:05 +08:00
Louis Lam
ac68a35d3a Merge pull request #3386 from chakflying/patch-1
Fix: Multiselect blocked by bottom bar
2023-07-10 15:16:02 +08:00
Louis Lam
d825dbf828 Merge pull request #3188 from chakflying/fix/radius-timeout
Fix: Set radius connection timeout to monitor default
2023-07-09 22:47:39 +08:00
Louis Lam
cfb4bbc6cb Merge pull request #3088 from chakflying/feat/webhook-custom-body
Feat: Custom request body for Webhook Notifications
2023-07-09 20:42:50 +08:00
Louis Lam
293015ff35 Parse x-www-form-urlencoded for /test-webhook 2023-07-09 18:53:57 +08:00
Louis Lam
18d8b3a8e0 Merge remote-tracking branch 'origin/master' into feat/webhook-custom-body 2023-07-09 18:20:06 +08:00
nthumann
d55794e1a5 Add test cases for IPv6 addresses in getClientIP 2023-07-08 17:46:26 +02:00
Nelson Chan
3d50572dd7 Fix: Multiselect blocked by bottom bar 2023-07-08 23:33:14 +08:00
Louis Lam
cdb38d49eb Merge pull request #3380 from chakflying/experiment/incremental-vacuum-job
Feat: Run incremental_vacuum and optimize
2023-07-08 21:59:58 +08:00
Louis Lam
80b55786a4 Merge pull request #2574 from sjoukedv/feat/global-status-page-badge
feat(server): add badge for overall status of status-page
2023-07-08 21:55:52 +08:00
Louis Lam
fe40d819bd Update send403 to sendHttpError 2023-07-08 21:34:58 +08:00
Louis Lam
3dbd8277f0 Merge remote-tracking branch 'origin/master' into feat/global-status-page-badge
# Conflicts:
#	.gitignore
2023-07-08 21:28:57 +08:00
Louis Lam
771d21c4ad Update dependencies (#3384) 2023-07-08 17:14:41 +08:00
Louis Lam
ed6b4e5ae5 Merge remote-tracking branch 'origin/master' into miles/invert-keyword
# Conflicts:
#	server/database.js
2023-07-08 16:19:44 +08:00
Louis Lam
3b9c95a8a8 Prevent users from specifying an unexpected executable as Chromium (#3348) 2023-07-08 15:52:09 +08:00
nthumann
cdf6922bdd Fix handling of IPv6 addresses in getClientIP 2023-07-08 00:02:01 +02:00
Nelson Chan
9954ba82e7 Feat: Run incremental_vacuum and optimize 2023-07-08 04:57:53 +08:00
Louis Lam
19873e5b9e Remove npm cache from the auto test workflow (#3359) 2023-07-05 21:03:02 +08:00
Louis Lam
13ae878ee8 Merge pull request #3347 from louislam/1.22.X
1.22.x merge to master
2023-07-05 11:35:36 +08:00
Tarun Singh
4ea5771f97 Status page certificate expiry 2023-07-04 19:37:45 -04:00
DevMirza
1774bb86dc 🐛 fix lint warning (#3355) 2023-07-04 23:46:36 +08:00
Louis Lam
c583037dff Fix auto test for armv7 2023-07-04 23:13:08 +08:00
Louis Lam
8223121cd8 Update to 1.22.1 2023-07-04 20:41:30 +08:00
Louis Lam
ff22010330 Update dependencies 2023-07-04 16:24:03 +08:00
Louis Lam
a9d691a6a8 Update dependencies 2023-07-03 21:05:40 +08:00
Louis Lam
7c529d8f83 Check docker before build 2023-07-03 20:30:21 +08:00
Louis Lam
4fe0891a60 Merge pull request #3296 from crystalcommunication/pr-custom-domain-auto
Fix auto theme for status pages on custom domains
2023-07-03 15:48:38 +08:00
Francisco Marques
bd5496d267 Fixed update checker making requests to uptime.kuma.pet even when turned off (#2281)
* 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>
2023-07-03 15:28:03 +08:00
Louis Lam
a0736e04b2 Merge pull request #3346 from louislam/revert-plugin-code
Drop unused code
2023-07-03 15:21:13 +08:00
Louis Lam
df8fcffb19 Drop unused code 2023-07-03 14:50:30 +08:00
Nelson Chan
9da712054a Chore: Fix incorrect id for CopyableInput 2023-07-02 18:57:07 +08:00
Nelson Chan
af78da1dd9 Chore: Add missing translation
Co-authored-by: Yoswaris Lawpaiboon <22832362+kiznick@users.noreply.github.com>
2023-07-02 18:52:56 +08:00
Nelson Chan
9e041f219b Chore: Fix translation string
Co-authored-by: Yoswaris Lawpaiboon <22832362+kiznick@users.noreply.github.com>
2023-07-02 18:52:36 +08:00
Louis Lam
8c60e902e1 Remove an unused variable 2023-07-01 22:44:33 +08:00
Louis Lam
de74efb2e6 Merge pull request #3169 from janow25/docker-health-check
Added Docker Health Status Support
2023-07-01 02:55:05 +08:00
Louis Lam
9ee2780e9e Merge pull request #2871 from pruekk/chore/missing-notificationList
chore: notification toggle missing when import from backup
2023-06-29 22:42:09 +08:00
Nelson Chan
a386f1fc9e [Experiment] Use incremental vacuum to speed up delete? (#2800)
* DB: Use incremental vacuum

* Chore: Add log for delete monitor exec. time

* WIP: Test synchronous NORMAL
2023-06-29 22:41:01 +08:00
Nelson Chan
35154ef9c5 Chore: Translate hours
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-06-29 19:04:34 +08:00
Nelson Chan
1baa592824 Chore: Translate preview alt
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-06-29 19:04:09 +08:00
Nelson Chan
9882fc65b1 Fix: Incorrect label for badge values 2023-06-29 07:12:19 +08:00
Nelson Chan
3e5e7e6e32 Fix: Incorrect options for cert-exp badge 2023-06-29 07:12:19 +08:00
Nelson Chan
0e725569e5 Feat: Add placeholders for badge generator
Chore: Save as dev dep.
2023-06-29 07:11:58 +08:00
Nelson Chan
afcfb7e19c Fix: Incorrect data type for DateTime component 2023-06-29 04:17:47 +08:00
Louis Lam
eaee55fc8f Add arm runners to this repo (#3326) 2023-06-28 21:04:38 +08:00
Louis Lam
affac0a97b Update Windows Portable to 1.0.1 2023-06-28 14:52:53 +08:00
Louis Lam
a12e7eba72 [exe] Try to deal with the false positive issue (#3143)
* [exe] Add more assembly info
2023-06-28 14:52:53 +08:00
Louis Lam
4f6035899d Real browser monitor type (#3308) 2023-06-27 15:54:33 +08:00
Louis Lam
dd77baabe1 Merge pull request #3234 from kefoster951/fix_redis_auth
Fix redis authentication reattempt issue
2023-06-27 15:21:30 +08:00
Louis Lam
820f2eec9f Merge remote-tracking branch 'origin/1.23.X' 2023-06-26 21:38:12 +08:00
Louis Lam
4b913c8b4c Update to 1.22.0 2023-06-26 21:12:11 +08:00
Louis Lam
d01c7c3faa Update package-lock.json 2023-06-26 21:09:21 +08:00
Louis Lam
772a946234 Merge pull request #3242 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-06-26 21:04:52 +08:00
Nelson Chan
f8c9a20afd Chore: Disable clear filters button 2023-06-26 13:42:46 +08:00
Nelson Chan
cea894cc6d Chore: Fix lint 2023-06-26 13:39:19 +08:00
Nelson Chan
79b38e0e7b Feat: Improve monitorList filtering 2023-06-26 13:23:06 +08:00
Nelson Chan
7cc9783436 Fix: Active needs to return bool instead of 0 2023-06-26 13:21:51 +08:00
Weblate
21405f71b5 Merge remote-tracking branch 'origin/master' 2023-06-26 04:54:08 +00:00
Louis Lam
b4b6e07e6b Merge pull request #3310 from chakflying/chore/auth-logging
Chore: Add logging for failed auth
2023-06-26 12:54:01 +08:00
Tarun Singh
cf4220901b Translated using Weblate (Hindi)
Currently translated at 5.4% (41 of 754 strings)

Co-authored-by: Tarun Singh <tarun7singh7@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hi/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Buchtič
f3996fdef4 Translated using Weblate (Czech)
Currently translated at 100.0% (754 of 754 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
2023-06-26 04:52:40 +00:00
CarlosCF
1dfe5227ad Translated using Weblate (Galician)
Currently translated at 2.7% (21 of 754 strings)

Added translation using Weblate (Galician)

Co-authored-by: CarlosCF <carloscaamano@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/gl/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
SEOAlexRamon
4ead0609af Translated using Weblate (Catalan)
Currently translated at 3.4% (26 of 754 strings)

Translated using Weblate (Spanish)

Currently translated at 95.0% (717 of 754 strings)

Added translation using Weblate (Catalan)

Co-authored-by: SEOAlexRamon <seoalexramon@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ca/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
401Unauthorized
a8bf52b1e0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (754 of 754 strings)

Co-authored-by: 401Unauthorized <hi@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Adam Stachowicz
ede6d90497 Translated using Weblate (Polish)
Currently translated at 96.6% (729 of 754 strings)

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Cyril59310
4b8e86efb7 Translated using Weblate (French)
Currently translated at 100.0% (754 of 754 strings)

Translated using Weblate (French)

Currently translated at 100.0% (753 of 753 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Alex Javadi
5f706e1921 Translated using Weblate (Persian)
Currently translated at 100.0% (754 of 754 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (753 of 753 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
2023-06-26 04:52:40 +00:00
Vincent Houdan
722c64a4d1 Translated using Weblate (French)
Currently translated at 100.0% (752 of 752 strings)

Co-authored-by: Vincent Houdan <vincenthoudan@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Rachatat Bunpat
23de52ca5a Translated using Weblate (Thai)
Currently translated at 85.3% (642 of 752 strings)

Co-authored-by: Rachatat Bunpat <rbunpat@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Yaroslav
3d3fb357f9 Translated using Weblate (Russian)
Currently translated at 100.0% (752 of 752 strings)

Co-authored-by: Yaroslav <ykargin@outlook.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:40 +00:00
Tivin
3b9aa00126 Translated using Weblate (Hebrew (Israel))
Currently translated at 94.4% (710 of 752 strings)

Co-authored-by: Tivin <git@fickle.email>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/he_IL/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
Saurabh
29267e5c2e Translated using Weblate (Hindi)
Currently translated at 1.3% (10 of 752 strings)

Added translation using Weblate (Hindi)

Co-authored-by: Saurabh <saurabhsharma2u@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hi/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
Ray
3e801323b6 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.3% (716 of 751 strings)

Co-authored-by: Ray <ray7496422@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
b80fd81d24 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (751 of 751 strings)

Co-authored-by: 楓 <nitu2003@126.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
kosssi
9cb776405a Translated using Weblate (French)
Currently translated at 100.0% (751 of 751 strings)

Co-authored-by: kosssi <github@fafaru.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
Marco
de7ae3e2db Translated using Weblate (German)
Currently translated at 100.0% (754 of 754 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (754 of 754 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (751 of 751 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
Michal
e49ced0524 Translated using Weblate (Czech)
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
2023-06-26 04:52:39 +00:00
AnnAngela
7e782edf44 Translated using Weblate (Chinese (Simplified))
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
2023-06-26 04:52:39 +00:00
stanol
43e1e3c272 Translated using Weblate (Ukrainian)
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
2023-06-26 04:52:39 +00:00
Ömer Faruk Genç
dc4cf7087f Translated using Weblate (Turkish)
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
2023-06-26 04:52:39 +00:00
Oleg Logvinov
65a0a2b2b5 Translated using Weblate (Russian)
Currently translated at 99.5% (745 of 748 strings)

Co-authored-by: Oleg Logvinov <oleglogwinow@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:39 +00:00
ITQ
2d269c3639 Translated using Weblate (Russian)
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
2023-06-26 04:52:39 +00:00
MrEddX
11bad53709 Translated using Weblate (Bulgarian)
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
2023-06-26 04:52:39 +00:00
Arin Faraj
9f7782b1c1 Translated using Weblate (Kurdish (Central))
Currently translated at 5.8% (44 of 746 strings)

Co-authored-by: Arin Faraj <arin.abdul99@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ckb/
Translation: Uptime Kuma/Uptime Kuma
2023-06-26 04:52:38 +00:00
Louis Lam
9fb8f94e22 Merge pull request #3311 from tarun7singh/monitor-group-fix
Added fix to remove children when type changed
2023-06-26 12:52:31 +08:00
Tarun Singh
7a34103da6 Added fix to remove children when type changed 2023-06-25 22:44:15 -04:00
Nelson Chan
8955c3816b Chore: Rename select ID & add translation 2023-06-26 05:00:14 +08:00
Nelson Chan
7761e9a05e Chore: Add translations to options text 2023-06-26 04:59:56 +08:00
Nelson Chan
c9d6e576ab Chore: Remove redundant assign
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-06-26 04:59:55 +08:00
Nelson Chan
97d38ee1a8 Feat: Add custom body for Webhook Notif. 2023-06-26 04:59:55 +08:00
Nelson Chan
cc94609423 Chore: Add logging for failed auth 2023-06-26 04:49:49 +08:00
Louis Lam
149f8c3646 Update required node version and update dependencies 2023-06-25 12:41:32 +08:00
Louis Lam
bdcbd6389b Merge pull request #3283 from lassebm/ha-strip-trailing-slashes
Strip trailing slashes to avoid 404 from Home Assistant's API endpoint
2023-06-24 21:11:02 +08:00
Louis Lam
c06b929529 Update dependencies 2023-06-24 20:24:51 +08:00
crystal
d3ecdb8456 Fix auto theme for status pages on custom domains 2023-06-21 09:58:49 -06:00
Cyril59310
4e420ee3ff Missing translation key (#3281)
* missing translation key

* Update src/lang/en.json

Co-authored-by: Frank Elsinga <frank@elsinga.de>

---------

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-06-19 13:17:58 +08:00
Lasse Bang Mikkelsen
a00561ff09 Strip trailing slashes to avoid 404 2023-06-18 18:28:30 +02:00
Louis Lam
6af44e0780 ChatGPT fixed my horrible grammar 2023-06-18 23:45:50 +08:00
Louis Lam
596402e71f Merge pull request #3246 from chakflying/ui/monitor-group-select
UI: Improve no group monitor message
2023-06-17 16:43:03 +08:00
Louis Lam
62bbc1cf55 Merge pull request #3270 from chakflying/fix/clone-group-monitor-fields
Fix: Remove extra fields on clone
2023-06-16 23:20:31 +08:00
Nelson Chan
19fc7d31e6 Fix: Remove extra fields on clone 2023-06-15 00:58:45 +08:00
Kenneth Foster
6708eed121 Fixed error handling if client is closed 2023-06-14 11:49:33 -04:00
kefoster951
3c56a6f395 Merge branch 'louislam:master' into fix_redis_auth 2023-06-14 11:47:44 -04:00
Louis Lam
2b46693995 Merge pull request #3239 from madnight/master
Fix: prometheus monitor_status metric has 4 values
2023-06-13 23:09:29 +08:00
Louis Lam
c61a3d360f Merge pull request #3254 from CommanderStorm/transaltion_home
Chore: Added a translation key for "Home"
2023-06-13 23:05:02 +08:00
Louis Lam
392f95cdd2 Merge pull request #3260 from DevItq/master
Add translation for Not Found page
2023-06-13 23:04:04 +08:00
ITQ
dfc6e5ea5b Update NotFound.vue 2023-06-13 16:10:41 +03:00
Frank Elsinga
ba4d925374 Added a translation key for "Home" 2023-06-12 17:58:54 +02:00
kefoster951
d37c33ad42 Update server/util-server.js
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-06-12 11:06:20 -04:00
Nelson Chan
c04194191f UI: improve disabled select legibility 2023-06-12 19:26:50 +08:00
Nelson Chan
de9ad0fe60 UI: Add help msg for no Group Mon. 2023-06-12 19:26:50 +08:00
Louis Lam
8884c2108b Merge pull request #3249 from CommanderStorm/translation_bugfix
Chore: Added additional translation keys
2023-06-12 14:07:19 +08:00
Frank Elsinga
ac8ca36895 Enabled adding missing keys to the translation database 2023-06-11 22:43:33 +02:00
Louis Lam
71c34694b7 Update to 1.22.0-beta.0 2023-06-11 15:17:26 +08:00
Louis Lam
2128ed5ce3 Update dependencies 2023-06-11 14:44:05 +08:00
Louis Lam
09ab6a015b Merge pull request #3046 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-06-11 14:36:20 +08:00
Louis Lam
ec858eb67a Merge remote-tracking branch 'origin/master' into weblate-uptime-kuma-uptime-kuma
# Conflicts:
#	src/lang/de-DE.json
2023-06-11 14:35:10 +08:00
Louis Lam
c4c3fc81b2 Merge pull request #2693 from julian-piehl/group-monitors
Group monitors
2023-06-11 14:09:02 +08:00
Arin Faraj
8aa577529f Added translation using Weblate (Kurdish (Central))
Co-authored-by: Arin Faraj <arin.abdul99@gmail.com>
2023-06-10 20:28:20 +00:00
Manh PHam
cdd5067b17 Added translation using Weblate (Xhosa)
Co-authored-by: Manh PHam <manh.pham0997@gmail.com>
2023-06-10 20:28:20 +00:00
Oskar Fagerfjäll
5fdb01308a Translated using Weblate (Swedish)
Currently translated at 18.6% (139 of 746 strings)

Co-authored-by: Oskar Fagerfjäll <oskar.fagerfjall@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sv/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:20 +00:00
Alexandre
eb1a1d0ac7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 78.4% (585 of 746 strings)

Co-authored-by: Alexandre <alexandre@lopes.eng.br>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
mottcha
a1fc283b3c Translated using Weblate (Japanese)
Currently translated at 69.0% (515 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 69.0% (515 of 746 strings)

Co-authored-by: mottcha <yuki627f@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
deluxghost
419b684433 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (746 of 746 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
2023-06-10 20:28:19 +00:00
Lê Huy Mạnh Tân
8bc139d8c1 Translated using Weblate (Vietnamese)
Currently translated at 62.1% (464 of 746 strings)

Co-authored-by: Lê Huy Mạnh Tân <tanmanh350@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/vi/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Artur Wróblewski
91dfd8dfaa Translated using Weblate (Polish)
Currently translated at 96.6% (721 of 746 strings)

Co-authored-by: Artur Wróblewski <krypalkora1984@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Marco
1f405cf2a0 Translated using Weblate (German)
Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (746 of 746 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Cyril59310
cf61077dd8 Translated using Weblate (French)
Currently translated at 99.8% (745 of 746 strings)

Translated using Weblate (French)

Currently translated at 97.7% (729 of 746 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
TKB Studios
4396e0d4d8 Translated using Weblate (French)
Currently translated at 100.0% (722 of 722 strings)

Co-authored-by: TKB Studios <alessio.dambrosio@outlook.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Henry Wu
240db1d173 Translated using Weblate (Chinese (Traditional))
Currently translated at 94.0% (678 of 721 strings)

Co-authored-by: Henry Wu <me@henry40408.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
AnnAngela
ef06b5376d Translated using Weblate (Chinese (Simplified))
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
2023-06-10 20:28:19 +00:00
deluxghost
186d733134 Translated using Weblate (Chinese (Simplified))
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
2023-06-10 20:28:19 +00:00
R1KO
225ba61e22 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (721 of 721 strings)

Co-authored-by: R1KO <r1kobeats@i.ua>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Furkan İ
11b32ce553 Translated using Weblate (Turkish)
Currently translated at 100.0% (721 of 721 strings)

Co-authored-by: Furkan İ <developer@furkanipek.com.tr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
Filip#0475
3707919025 Translated using Weblate (Slovak)
Currently translated at 28.1% (203 of 721 strings)

Co-authored-by: Filip#0475 <surinfilip@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:19 +00:00
kokofixcomputers
d10e378fb1 Translated using Weblate (French)
Currently translated at 100.0% (721 of 721 strings)

Co-authored-by: kokofixcomputers <koko@trashmail.se>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Alex Javadi
370328c3b8 Translated using Weblate (Persian)
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
2023-06-10 20:28:18 +00:00
Sergio Leon
1d8a82ae3e Translated using Weblate (Spanish)
Currently translated at 99.1% (715 of 721 strings)

Co-authored-by: Sergio Leon <serge@1nationgfx.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
mickeydarrenlau
7da336e975 Translated using Weblate (Malay)
Currently translated at 3.6% (26 of 721 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (721 of 721 strings)

Added translation using Weblate (Malay)

Co-authored-by: mickeydarrenlau <darrenwjlau@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ms/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
@shiroo
b8c12cca2a Translated using Weblate (Arabic)
Currently translated at 94.3% (680 of 721 strings)

Co-authored-by: @shiroo <elrayan202021@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ar/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Cyril59310
88fcfcc6fc Translated using Weblate (French)
Currently translated at 100.0% (721 of 721 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Petros Giannhs
fcb22f7d05 Translated using Weblate (Greek)
Currently translated at 92.3% (666 of 721 strings)

Co-authored-by: Petros Giannhs <souvlaki420@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/el/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Windless
5be41990bc Translated using Weblate (Chinese (Traditional))
Currently translated at 92.4% (665 of 719 strings)

Co-authored-by: Windless <eason2008212@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
andershh
09149f50e0 Translated using Weblate (Danish)
Currently translated at 78.1% (562 of 719 strings)

Co-authored-by: andershh <ahh@jlbr.dk>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Buchtič
8f60274582 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)

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
2023-06-10 20:28:18 +00:00
Tomasz Ad
7dadac3ebe Translated using Weblate (Polish)
Currently translated at 100.0% (719 of 719 strings)

Co-authored-by: Tomasz Ad <djtms84@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Hossein Niyumard
28c29f755d Translated using Weblate (Persian)
Currently translated at 100.0% (719 of 719 strings)

Co-authored-by: Hossein Niyumard <niyumard@riseup.net>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fa/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Yoswaris Lawpaiboon
b426840b5b Translated using Weblate (Thai)
Currently translated at 86.4% (623 of 721 strings)

Translated using Weblate (Thai)

Currently translated at 85.8% (617 of 719 strings)

Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:18 +00:00
Lance
4f2d39d5fc Translated using Weblate (Chinese (Traditional))
Currently translated at 92.3% (664 of 719 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 92.2% (663 of 719 strings)

Co-authored-by: Lance <2124757129@qq.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:17 +00:00
AnnAngela
4012fc6964 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (721 of 721 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (719 of 719 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
2023-06-10 20:28:17 +00:00
Ömer Faruk Genç
d1b52bc098 Translated using Weblate (Turkish)
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
2023-06-10 20:28:17 +00:00
Michal
c9a32f9dbb Translated using Weblate (Czech)
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
2023-06-10 20:28:17 +00:00
stanol
b884f82de6 Translated using Weblate (Ukrainian)
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
2023-06-10 20:28:17 +00:00
Thiago Felipe Cruz E Souza
65928a26c7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 75.6% (544 of 719 strings)

Co-authored-by: Thiago Felipe Cruz E Souza <thiago.felipe@tutanota.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:17 +00:00
DoyunShin
abe00efa7f Translated using Weblate (Korean)
Currently translated at 100.0% (719 of 719 strings)

Co-authored-by: DoyunShin <doyun.shin@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:17 +00:00
Unai Tolosa Pontesta
0c364fc288 Translated using Weblate (Basque)
Currently translated at 75.7% (545 of 719 strings)

Co-authored-by: Unai Tolosa Pontesta <utolosa002@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/eu/
Translation: Uptime Kuma/Uptime Kuma
2023-06-10 20:28:17 +00:00
MrEddX
0d21529037 Translated using Weblate (Bulgarian)
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
2023-06-10 20:28:17 +00:00
Fabian Beuke
37ae8eb44a Fix: prometheus monitor_status metric has 4 values
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).
2023-06-10 20:22:33 +02:00
Kenneth Foster
8897385690 Fixed linting 2023-06-09 16:26:02 -04:00
Kenneth Foster
6132a45c7c fixed when auth is needed but not provided 2023-06-09 16:06:33 -04:00
Kenneth Foster
f68452c47a Added changes to stop auth attempts after an error 2023-06-09 14:54:17 -04:00
Louis Lam
fea8ef8367 Update bug_report.yaml 2023-06-09 20:50:13 +08:00
Kenneth Foster
9d71e34a83 [empty commit] pull request for fixing redis auth 2023-06-08 17:48:18 -04:00
Louis Lam
37031fb9a7 Merge pull request #3222 from chakflying/fix/mysql-aborted-connection
Fix: Try to close mysql connection properly
2023-06-08 00:26:18 +08:00
Nelson Chan
58ec53fb1d Fix: Try to close mysql connection properly 2023-06-06 20:28:51 +08:00
Peace
57190b58c6 fix: dont show ping on details page of groups 2023-06-03 20:55:24 +02:00
Peace
6c2948d2de fix: list collapse storage 2023-06-03 20:54:52 +02:00
Louis Lam
68f389868c Update bug_report.yaml 2023-06-03 16:25:49 +08:00
Louis Lam
af5d7cbb0b Update README.md 2023-06-03 16:22:51 +08:00
duane
1fa8c0f9fe Adds help text for Notify Channel option 2023-06-01 08:40:26 -05:00
duane
9a8bea5761 Changes 'Mention Channel' -> 'Notify Channel'
- Updates variable names
- Updates any Slack mention references
2023-06-01 08:23:13 -05:00
Peace
56f448bfe5 fix: maintenance heredity 2023-05-31 21:29:20 +02:00
Peace
2b46da0f47 style: fix linting 2023-05-31 21:19:46 +02:00
Peace
9bd76c2795 Merge branch 'master' into group-monitors 2023-05-31 20:51:33 +02:00
duane
376d84c742 Merge branch 'master' into feature/add-channel-notification-for-slack 2023-05-31 10:31:33 -05:00
Louis Lam
4b3a2ee71b Merge pull request #3211 from kiznick/badge-generator
Add i18n variable for Badge Generator #2915
2023-05-31 18:00:13 +08:00
Yoswaris Lawpaiboon
1634df5a39 Update en.json 2023-05-31 16:00:38 +07:00
Louis Lam
039fdb0730 Merge pull request #2915 from kiznick/badge-generator
Feat: Badge Generator
2023-05-31 16:09:13 +08:00
Louis Lam
20af2d9d95 Merge pull request #3209 from chakflying/fix/apikey-modal-layout
Fix: Fix incorrect modal layout in generate api-key
2023-05-31 15:09:58 +08:00
Nelson Chan
04806ba4f3 Fix: Fix incorrect modal layout 2023-05-31 09:26:54 +08:00
Yoswaris Lawpaiboon
3ff910a8f8 Fix Modal 2023-05-30 20:06:53 +07:00
Louis Lam
343a1d3344 Merge pull request #3203 from CommanderStorm/applied_timezone_formatting
chore: Made sure that every notification provider uses `timezone`/`localTime`
2023-05-30 20:36:32 +08:00
Louis Lam
f1c184c30c Update README.md 2023-05-30 17:37:53 +08:00
Wojciech Kapcia
f3fe392ec4 Add option to use ApiKeys in Twilio in addition to main account credentials 2023-05-29 19:30:33 -04:00
Frank Elsinga
f3c09f2bbd made every Notification provider supply time like dingding after #3152 2023-05-29 19:24:40 +02:00
Yoswaris Lawpaiboon
85eb084305 Setting Modal 2023-05-29 20:11:06 +07:00
Louis Lam
0735f12d19 Merge pull request #2594 from skaempfe/skaempfe#2593
Improvement: Support TLS Expiry alerts also for CA certs in cert chain
2023-05-28 22:13:48 +08:00
Louis Lam
8ed2b59410 Resolve conflict 2023-05-26 21:38:51 +08:00
Louis Lam
0b8dddba24 Merge remote-tracking branch 'origin/master' into skaempfe#2593
# Conflicts:
#	server/model/monitor.js
#	src/pages/Details.vue
2023-05-26 21:32:58 +08:00
Louis Lam
2114295381 Merge pull request #3052 from chakflying/ui/monitor-page-design-mobile
UI: Improve monitor page layout on mobile
2023-05-26 18:30:43 +08:00
Louis Lam
bc95875aa0 Merge pull request #3156 from maximilian-krauss/feat/add-pushover-ttl
feat: Adds message ttl to pushover notification
2023-05-26 18:18:24 +08:00
Louis Lam
c1efe0f26d Add a warning for Node.js >= 20 2023-05-26 18:09:05 +08:00
Maximilian Krauß
a0d0d5b015 fix: sends pushover ttl only if defined 2023-05-26 07:27:43 +02:00
Maximilian Krauß
8d05d80a5f feat: Adds message ttl to pushover notification 2023-05-26 07:27:43 +02:00
Louis Lam
36942de329 Merge pull request #2916 from lukasbableck/master
Add safe-area-inset-bottom padding to bottom-nav
2023-05-25 17:53:44 +08:00
Louis Lam
771ca09331 npm update (mainly for socket.io) 2023-05-25 13:41:35 +08:00
Louis Lam
3cb287a40e Merge pull request #3009 from chakflying/ui/url-more-monitor-types
UI: Support more monitor types in URL field
2023-05-24 20:46:48 +08:00
duane
9c3bb67b6b Merge branch 'master' into feature/add-channel-notification-for-slack 2023-05-23 10:31:11 -05:00
duane
5200e10aab Removes ternary operator for Slack channel mention 2023-05-23 10:29:18 -05:00
Nelson Chan
f1a396b0f7 Fix: Align radius timeout to default 2023-05-23 18:18:54 +08:00
Nelson Chan
83a59bd984 Fix: Add password filtering 2023-05-22 04:17:45 +08:00
Nelson Chan
446b5fa9e4 UI: Support more monitor types in URL field 2023-05-21 16:03:05 +08:00
Zaid-maker
0d1b5321ad 🚀 Update legacy deps 2023-05-21 12:02:02 +08:00
Louis Lam
1e1cc86a10 Update Apprise to 1.4.0 2023-05-20 01:46:07 +08:00
duane
9825b33ef3 Fixes eslint warnings for Slack notification modal 2023-05-19 11:01:08 -05:00
duane
00f733d352 Adds ability to notify channel when Slack webhook triggered
- Adds field to toggle channel mentions on/off for Slack integration
- Adds special mention for @channel when enabled

Reference:
[Slack docs](https://api.slack.com/reference/surfaces/formatting#special-mentions)
2023-05-19 11:01:08 -05:00
duane
fd10897988 Adds translation for English Slack channel mention label 2023-05-19 11:01:08 -05:00
Nelson Chan
317024ed72 Fix: Use safebeat for push monitor 2023-05-19 18:52:00 +08:00
Janne Nowak
f604d96c5b splited if to inner if 2023-05-18 09:55:33 +02:00
Janne Nowak
f30f00655f small fix for down containers 2023-05-17 23:18:29 +02:00
Janne Nowak
891f09def7 removed log 2023-05-17 19:15:10 +02:00
Janne Nowak
6b5e179bb0 linting 2023-05-17 19:02:34 +02:00
Janne Nowak
f653aba735 added docker health status 2023-05-17 18:52:28 +02:00
Louis Lam
9dc02bb8e2 Update .gitignore 2023-05-16 21:57:08 +08:00
Louis Lam
bb15fa0179 Merge pull request #3154 from chakflying/fix/clear-data-remove-worker-thread
Fix: Remove use of worker threads in clear-old-data
2023-05-16 19:51:20 +08:00
Yoswaris Lawpaiboon
966066b897 Update src/components/BadgeGeneratorDialog.vue
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-05-15 13:56:59 +07:00
Louis Lam
8d24891b8e Merge pull request #3054 from TechWilk/keyword-not-found-whitespace
Trim before truncating "keword not found" message
2023-05-13 18:36:04 +08:00
Louis Lam
ba7de3fd37 Merge pull request #3152 from AnnAngela/patch-1
feat: show time as server timezone in dingding notification
2023-05-13 18:15:05 +08:00
Nelson Chan
80c8fd7372 Chore: Remove util-worker 2023-05-13 01:51:23 +08:00
Nelson Chan
a27386bb92 Fix: Use croner for clear-old-data 2023-05-13 00:59:58 +08:00
AnnAngela
ce70b3fc62 feat: add a space to separate the words 2023-05-12 22:14:59 +08:00
AnnAngela
06fba5b55a feat: show time as server timezone in dingding notification 2023-05-12 22:04:44 +08:00
Louis Lam
f2c294e9e5 Merge pull request #3150 from theitguycj/master
Update README.md
2023-05-12 13:56:03 +08:00
The IT Guy CJ
332e54937e Update README.md 2023-05-11 23:19:09 -05:00
Louis Lam
a1adc30a89 Fix: Add back PagerTree 2023-05-11 14:56:42 +08:00
Louis Lam
6ce882ad4a Update README.md 2023-05-10 22:51:44 +08:00
Louis Lam
e392d12585 Mention in the README that Node.js 20 is not supported due to a weird issue 2023-05-09 23:37:51 +08:00
Louis Lam
253214ad2b Merge pull request #3024 from chakflying/feat/edit-tag-multiselect
UI: Use vue-multiselect in Edit Tag & Styling Fixes
2023-05-09 20:43:30 +08:00
Louis Lam
33de7bdb1c Merge conflict 2023-05-09 00:45:31 +08:00
Louis Lam
7f5d0e5490 Merge remote-tracking branch 'origin/1.21.X'
# Conflicts:
#	package-lock.json
2023-05-09 00:42:11 +08:00
Louis Lam
1a344c1371 Update to 1.21.3 2023-05-09 00:28:29 +08:00
Louis Lam
28b0f8fc00 Update dependencies 2023-05-08 22:52:57 +08:00
Louis Lam
0eaaa8b6fa Minor 2023-05-08 22:52:41 +08:00
Louis Lam
5cd506e340 Minor 2023-05-08 22:39:32 +08:00
Louis Lam
f0beccf6bf Fix Same As Server Timezone do not save correctly 2023-05-08 22:14:58 +08:00
Louis Lam
72c16c3aa2 Fix eslint warnings 2023-05-08 04:26:11 +08:00
Louis Lam
aa8454b73f Slightly improve error check on maintenance edit page 2023-05-08 04:14:24 +08:00
Louis Lam
d23cb0b382 Fix maintenance do not start after 1.21.2 2023-05-08 04:08:30 +08:00
Nelson Chan
9975050872 Chore: Fix line break 2023-05-07 23:20:28 +08:00
Nelson Chan
f8c2909576 UI: Improve styling 2023-05-07 23:20:28 +08:00
Nelson Chan
fcfe13e52d Feat: Use vue-multiselect in Edit Tag 2023-05-07 23:20:28 +08:00
Nelson Chan
9f51115a19 Chore: Fix lint 2023-05-07 23:20:03 +08:00
Nelson Chan
4057ca6e72 UI: Improve monitor page on mobile 2023-05-07 23:20:03 +08:00
Louis Lam
8a3bce44ef Update dependenices 2023-05-02 16:22:00 +08:00
Louis Lam
dfe6f52f6a Add test for Node.js 20, drop 19 2023-05-02 16:17:37 +08:00
Louis Lam
333a631389 Merge pull request #3106 from shihaamabr/master
Fix typo in dashboard TCP Port items
2023-04-29 12:44:31 +08:00
Shihaam Abdul Rahman
eaa948579b Fix typo in dashboard TCP Port times 2023-04-27 12:34:01 +05:00
Louis Lam
74dd07c3ca Merge pull request #3101 from stumpylog/feature/cloudflare-pkgs
Install cloudflared via Cloudflare Package Repository
2023-04-25 21:10:25 +08:00
Louis Lam
f75cf3a186 Merge pull request #2905 from Sharknoon/ntfy-bearer-authorization
Added option for notification provider ntfy to use access tokens
2023-04-25 18:24:44 +08:00
Louis Lam
a3e31b22bc Minor 2023-04-25 18:22:17 +08:00
Louis Lam
078d1f96a5 Better handling for old added ntfy notifications 2023-04-25 18:17:32 +08:00
Louis Lam
8207f16396 Merge remote-tracking branch 'origin/master' into ntfy-bearer-authorization 2023-04-25 18:07:52 +08:00
Trenton Holmes
ba82abe5f3 Updates the install of cloudflared to utilize the Cloudflare Package Repository 2023-04-24 06:47:44 -07:00
Louis Lam
eb9c748071 Merge pull request #3006 from chakflying/ui/tags-settings-mobile
UI: Improve Tags settings design on mobile
2023-04-17 16:58:57 +08:00
Yoswaris Lawpaiboon
3579520575 Fix Eslint
Co-authored-by: Nelson Chan <3271800+chakflying@users.noreply.github.com>
2023-04-12 20:09:04 +07:00
Yoswaris Lawpaiboon
030faddd1c Merge branch 'louislam:master' into badge-generator 2023-04-12 12:02:36 +07:00
Christopher Wilkinson
0e516a42e5 Trim before truncating "keword not found" message 2023-04-11 16:57:30 +01:00
Louis Lam
680dccefea Merge pull request #2868 from chakflying/update-chartjs
Chore: Update chart.js & improve performance
2023-04-11 19:01:47 +08:00
Louis Lam
8c9423f4de Merge conflicts manually 2023-04-11 19:01:17 +08:00
Louis Lam
f433f33418 Merge remote-tracking branch 'origin/master' into update-chartjs
# Conflicts:
#	package-lock.json
#	package.json
2023-04-11 18:58:20 +08:00
Louis Lam
d4a31cf02a Merge pull request #2867 from Small6oy/grpc-patch
Resolved issue with using IP Address as GRPC URL
2023-04-11 18:55:43 +08:00
Louis Lam
a7588adc52 Merge branch 'master' into grpc-patch 2023-04-11 18:55:27 +08:00
Louis Lam
6356b1e50a Merge pull request #2961 from chakflying/feat/flush-wal
Chore: Flush WAL on shutdown
2023-04-11 18:53:58 +08:00
Louis Lam
af6e01ee3a Merge pull request #3010 from chakflying/fix/grpc-invalid-regex
Fix: Remove invalid gRPC url regex
2023-04-11 18:43:51 +08:00
Josua Frank
11f4cb8725 Merge branch 'louislam:master' into ntfy-bearer-authorization 2023-04-10 16:06:53 +02:00
Louis Lam
1bf97e701d Merge pull request #2837 from dsb3/hostname-regex
Feature: hostnames may be specified with a trailing dot
2023-04-09 16:27:16 +08:00
Louis Lam
4c1ac5e870 Merge pull request #2863 from mtelgkamp/ntfy-notification-improvements
Improve ntfy notifications
2023-04-09 16:08:12 +08:00
Louis Lam
9e320dc5fb Expose timezone and local datetime to notification providers 2023-04-09 16:01:27 +08:00
Louis Lam
2f3f929fbd Merge pull request #2831 from mtelgkamp/mattermost-notification-improvements
Improve mattermost notifications
2023-04-09 15:42:28 +08:00
Louis Lam
b776e88b26 Merge pull request #3042 from Zaid-maker/master
🐛 fix(package.json): correct typo in deploy-demo-server script name
2023-04-07 16:32:23 +08:00
Zaid-maker
49741bbef2 🐛 fix(package.json): correct typo in deploy-demo-server script name 2023-04-07 02:09:13 +05:00
Miles Steele
682f8e52a8 lint 2023-04-06 15:30:38 -05:00
Miles Steele
171aff1226 add invert keyword feature 2023-04-06 15:25:25 -05:00
Josua Frank
1f7f1f70bf Merge branch 'louislam:master' into ntfy-bearer-authorization 2023-04-06 10:55:28 +02:00
Louis Lam
be7d3f6142 Merge pull request #2752 from titanventura/show-tags-in-status-page-monitor-select-list
show tags in monitor select list under status page
2023-04-04 16:13:26 +08:00
Louis Lam
7706c29564 Minor 2023-04-04 15:42:37 +08:00
Louis Lam
9dd1b1ca0f Merge remote-tracking branch 'origin/master' into show-tags-in-status-page-monitor-select-list
# Conflicts:
#	src/pages/StatusPage.vue
2023-04-04 15:35:20 +08:00
Louis Lam
21ad715e6a Merge pull request #3021 from louislam/1.22.X
1.22.x -> master
2023-04-04 14:58:34 +08:00
Josua Frank
23af66f618 Merge branch 'louislam:master' into ntfy-bearer-authorization 2023-04-03 21:17:53 +02:00
Louis Lam
03aa685d3f Update to 1.21.2 2023-04-04 01:58:56 +08:00
Louis Lam
84c1baf706 Merge pull request #3015 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-04-04 00:09:45 +08:00
Weblate
23808efe2a Merge remote-tracking branch 'origin/master' 2023-04-03 16:07:13 +00:00
Marco
1db25a329f Translated using Weblate (German)
Currently translated at 100.0% (719 of 719 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (719 of 719 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:58 +00:00
Ömer Faruk Genç
e314d517ad 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
2023-04-03 16:06:58 +00:00
__filename
84d1cb73b6 Translated using Weblate (Korean)
Currently translated at 99.7% (717 of 719 strings)

Co-authored-by: __filename <filename@inft.kr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:58 +00:00
Buchtič
ddd3d3bc92 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
2023-04-03 16:06:58 +00:00
Alex Javadi
190e85d2c8 Translated using Weblate (Persian)
Currently translated at 100.0% (719 of 719 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
2023-04-03 16:06:58 +00:00
MaxGremory
d8511fa201 Translated using Weblate (Spanish)
Currently translated at 99.0% (712 of 719 strings)

Co-authored-by: MaxGremory <holgaloper@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:58 +00:00
rubesaca
e76d29dee5 Translated using Weblate (Spanish)
Currently translated at 99.0% (712 of 719 strings)

Co-authored-by: rubesaca <rubesaca@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:58 +00:00
MaxGremory
fb38048159 Translated using Weblate (Spanish)
Currently translated at 99.0% (712 of 719 strings)

Co-authored-by: MaxGremory <holgaloper@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:57 +00:00
Louis Lam
80f1959871 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 96.1% (691 of 719 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:57 +00:00
Ademaro
4ddc3b5f5e Translated using Weblate (Russian)
Currently translated at 100.0% (719 of 719 strings)

Co-authored-by: Ademaro <ademaro@ya.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:57 +00:00
Cyril59310
d173a3c663 Translated using Weblate (French)
Currently translated at 100.0% (719 of 719 strings)

Translated using Weblate (French)

Currently translated at 99.8% (718 of 719 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-04-03 16:06:57 +00:00
Louis Lam
45ef7b2f69 Fix Effective Date Range cannot be removed 2023-04-03 21:01:58 +08:00
Josua Frank
6b078b83bd Merge branch 'master' into ntfy-bearer-authorization 2023-04-03 08:33:05 +02:00
Louis Lam
22f730499f Improve the database connection string input 2023-04-03 02:57:14 +08:00
Louis Lam
1be74e2720 Merge pull request #2870 from chakflying/feat/auto-theme-status-page
Feat: Support auto theme in status pages
2023-04-03 02:38:30 +08:00
Louis Lam
32f84b5e4e Merge pull request #2491 from RubenNL/fix-metrics-push
Fixed the metrics for the push type.
2023-04-02 02:05:03 +08:00
Nelson Chan
97c7ad9cc7 Fix: Remove invalid gRPC url regex 2023-04-02 00:07:07 +08:00
Louis Lam
8f449ab738 Update to 1.21.2-beta.0 2023-04-01 16:36:51 +08:00
Louis Lam
dbfaddafca Validate cron before submit 2023-04-01 16:30:55 +08:00
Louis Lam
511038b45a Remove unused code 2023-04-01 04:22:10 +08:00
Louis Lam
e8d48561fc Change Retries from 0 to 1 2023-04-01 01:45:16 +08:00
Louis Lam
aeb2feacd3 Merge remote-tracking branch 'weblate/master'
# Conflicts:
#	src/lang/fr-FR.json
#	src/lang/tr-TR.json
2023-04-01 01:30:04 +08:00
DevMirza
c01055efb3 Translated using Weblate (Urdu)
Currently translated at 62.4% (445 of 713 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
2023-03-31 17:27:08 +00:00
Louis Lam
17ae47d091 Drop database backup logic, because duplicating a relative large database likely causes a disk space issue, users should take backup manually instead. 2023-04-01 00:58:23 +08:00
Louis Lam
de0d1edfd4 Merge pull request #2988 from chakflying/fix/socks-rejectUnauthorized
Fix: Pass rejectUnauthorized to Socks Proxy
2023-04-01 00:48:28 +08:00
Louis Lam
0f5a243450 Merge pull request #3003 from louislam/maintenance-fix
Maintenance Core Bug Fix & Improvements
2023-04-01 00:36:15 +08:00
Nelson Chan
b975c24531 UI: Improve design on mobile 2023-03-31 21:54:35 +08:00
Louis Lam
524cf7c607 WIP 2023-03-31 21:34:05 +08:00
Louis Lam
a6acd065bb WIP 2023-03-31 20:58:45 +08:00
Louis Lam
227cec86a8 WIP 2023-03-31 20:25:37 +08:00
Josua Frank
ba52e1c885 Merge branch 'louislam:master' into ntfy-bearer-authorization 2023-03-31 11:31:13 +02:00
Louis Lam
02291730fe WIP 2023-03-31 04:04:17 +08:00
Louis Lam
dcc065c86f Merge pull request #3001 from GrantBirki/master
:fishsticks: Upgrade json-yaml-validate
2023-03-30 20:33:58 +08:00
Grant Birkinbine
501dc29e6d use exclude file 2023-03-30 11:46:28 +01:00
Marco
d2b09ef042 Translated using Weblate (German)
Currently translated at 100.0% (713 of 713 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (713 of 713 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Ömer Faruk Genç
f608590526 Translated using Weblate (Turkish)
Currently translated at 100.0% (713 of 713 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
2023-03-28 18:55:27 +00:00
Adam Stachowicz
a7f21bffec Translated using Weblate (Polish)
Currently translated at 100.0% (713 of 713 strings)

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Alex Javadi
ebd42444d1 Translated using Weblate (Persian)
Currently translated at 100.0% (713 of 713 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (713 of 713 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
2023-03-28 18:55:27 +00:00
Mirinek
f0f7645c57 Translated using Weblate (Czech)
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Mirinek <mirek.nozicka77@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Louis Lam
3ada6fa99b Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 96.0% (681 of 709 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
401Unauthorized
4fb10a4e3f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: 401Unauthorized <hi@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Taha İPEK
1aac15bccc Translated using Weblate (Turkish)
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Taha İPEK <ti.tahaipek@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Alex
cbcd2a1027 Translated using Weblate (Russian)
Currently translated at 99.8% (708 of 709 strings)

Co-authored-by: Alex <proactivecam@inbox.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:27 +00:00
Cyril59310
17f038767d Translated using Weblate (French)
Currently translated at 100.0% (713 of 713 strings)

Translated using Weblate (French)

Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
Peter Petrík
edd1c6b662 Translated using Weblate (Slovak)
Currently translated at 27.2% (193 of 708 strings)

Co-authored-by: Peter Petrík <peter.petrik.fefe@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
ilya12077
29be8d3ddb Translated using Weblate (Russian)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: ilya12077 <mr.ilya.1207@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
Alex
2ac1abd424 Translated using Weblate (Russian)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Alex <proactivecam@inbox.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
DoyunShin
738a494dcb Translated using Weblate (Korean)
Currently translated at 97.7% (692 of 708 strings)

Co-authored-by: DoyunShin <doyun.shin@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
AmadeusGraves
e575d41f7d Translated using Weblate (Spanish)
Currently translated at 99.2% (703 of 708 strings)

Co-authored-by: AmadeusGraves <angelfx19@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-03-28 18:55:26 +00:00
Nelson Chan
8ee4b844fd Fix: Pass rejectUnauthorized to Socks Proxy 2023-03-28 11:40:19 +08:00
Louis Lam
4ae437dd61 Update to 1.21.1 2023-03-27 20:09:24 +08:00
Louis Lam
6cb296b07a Update SQLite and Vue 2023-03-27 19:05:18 +08:00
Louis Lam
644c6a872f Merge pull request #2978 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-03-27 17:54:50 +08:00
Weblate
8c69c18f6d Merge remote-tracking branch 'origin/master' 2023-03-27 08:38:00 +00:00
Mirinek
c1a1160767 Translated using Weblate (Czech)
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Mirinek <mirek.nozicka77@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
Louis Lam
a0ebd88849 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 96.0% (681 of 709 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
401Unauthorized
2e9413cf33 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: 401Unauthorized <hi@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
Taha İPEK
278b52ec34 Translated using Weblate (Turkish)
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Taha İPEK <ti.tahaipek@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
Alex
caa757a27c Translated using Weblate (Russian)
Currently translated at 99.8% (708 of 709 strings)

Co-authored-by: Alex <proactivecam@inbox.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
Cyril59310
3ce117a943 Translated using Weblate (French)
Currently translated at 100.0% (709 of 709 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
Peter Petrík
cefe484b47 Translated using Weblate (Slovak)
Currently translated at 27.2% (193 of 708 strings)

Co-authored-by: Peter Petrík <peter.petrik.fefe@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:51 +00:00
ilya12077
a700892709 Translated using Weblate (Russian)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: ilya12077 <mr.ilya.1207@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:50 +00:00
Alex
13d721ccf8 Translated using Weblate (Russian)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Alex <proactivecam@inbox.ru>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:50 +00:00
DoyunShin
6c66bff518 Translated using Weblate (Korean)
Currently translated at 97.7% (692 of 708 strings)

Co-authored-by: DoyunShin <doyun.shin@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:50 +00:00
AmadeusGraves
bea51d048b Translated using Weblate (Spanish)
Currently translated at 99.2% (703 of 708 strings)

Co-authored-by: AmadeusGraves <angelfx19@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-03-27 08:37:50 +00:00
Louis Lam
2e1a0fe4d5 Merge pull request #2983 from GrantBirki/master
GitHub Actions - Validate json / yaml files 📁
2023-03-27 16:36:20 +08:00
grantbirki
27b0895722 fix branch names 2023-03-26 22:35:00 +01:00
grantbirki
e687698851 add json / yaml validate job 2023-03-26 22:34:25 +01:00
Josua Frank
fc4312ca1a Merge branch 'master' into ntfy-bearer-authorization 2023-03-26 19:09:48 +02:00
Louis Lam
fbdeb30ce7 Merge pull request #2973 from chakflying/fix/limit-precision
Fix: Apply toPrecision as last step
2023-03-26 15:46:00 +08:00
Louis Lam
41bda4e1d7 Merge pull request #2975 from chakflying/fix/badge-no-label
Fix: Allow status badge with empty label
2023-03-26 15:42:12 +08:00
Louis Lam
4869e6531c Merge pull request #2980 from Genc/feature/twilio-notification-provider
Add Twilio Sms Notification Provider
2023-03-26 15:38:53 +08:00
Louis Lam
302b9cf644 Merge pull request #2956 from wwniclask25/feature/opsgenie-alerts
Feat: Add opsgenie notification provider
2023-03-26 15:36:50 +08:00
Louis Lam
3c3a192943 Merge pull request #2906 from chakflying/fix/duplicate-expiry-notif
Fix: Check for TLS expiry notified days smaller than target
2023-03-26 15:34:26 +08:00
Faruk Genç
b64c835cee Add Twilio Sms Notification Provider 2023-03-25 19:56:01 +03:00
Louis Lam
5266e713e6 Update ask-for-help.yaml 2023-03-25 23:06:51 +08:00
Louis Lam
86579d245f Update ask-for-help.yaml 2023-03-25 23:06:23 +08:00
Louis Lam
b6169408be Merge pull request #2962 from chakflying/fix/missing-clear-form
Fix: Add missing clearForm func.
2023-03-25 14:31:47 +08:00
Nelson Chan
4f05912276 Fix: Allow status badge with empty label 2023-03-25 02:44:15 +08:00
Nelson Chan
bf525371d9 Fix: Apply toPrecision as last step 2023-03-24 22:42:50 +08:00
Louis Lam
89bfc3bf33 Merge pull request #2908 from chakflying/chore/encrypted-private-key
Chore: Add support for encrypted SSL-key
2023-03-24 21:36:22 +08:00
Louis Lam
a2014278b8 Fix #2969 2023-03-24 19:16:12 +08:00
Louis Lam
70572af1af Fix #2969 2023-03-24 18:40:05 +08:00
Louis Lam
b31c23a43b Merge pull request #2970 from louislam/fix-2968
Fix crash issue caused by mysqlQuery()
2023-03-24 18:20:15 +08:00
Louis Lam
f4ee5271af Improve error handling of mysqlQuery and return row count as result 2023-03-24 16:24:00 +08:00
Louis Lam
7330db3563 Improve error handling of mysqlQuery and return row count as result 2023-03-24 16:08:30 +08:00
Louis Lam
097567e5f0 Merge pull request #2878 from chakflying/feat/status-page-countdown
Feat: Add status page countdown to refresh
2023-03-23 17:18:57 +08:00
Louis Lam
35f300c8eb Improve and reuse language keys 2023-03-23 17:17:53 +08:00
Nelson Chan
4c9d7ac8ca Fix: Add missing clearForm func. 2023-03-22 15:06:38 +08:00
Nelson Chan
ca52047bf5 Feat: Flush WAL on shutdown 2023-03-22 14:46:58 +08:00
niclas.koegl
d9558833fc Fix linting 2023-03-21 19:45:44 +01:00
niclas.koegl
776a482a1d Add Opsgenie notification provider 2023-03-21 19:29:37 +01:00
niclas.koegl
d2527d7254 Merge branch 'master' into feature/opsgenie-alerts 2023-03-21 18:10:10 +01:00
niclas.koegl
6dfca0c163 Add Opsgenie notification provider 2023-03-21 18:07:19 +01:00
Josua Frank
df47609671 Added default dropdown value 2023-03-21 13:55:51 +01:00
Josua Frank
e63f7562f8 linter fixes 2023-03-21 13:48:00 +01:00
Josua Frank
8921ed0cff fix indentation of language json files 2023-03-21 13:44:06 +01:00
Josua Frank
35a56dd9e0 Added dropdown for authentication methods 2023-03-21 13:40:24 +01:00
Josua Frank
442f54de84 Merge branch 'louislam:master' into ntfy-bearer-authorization 2023-03-21 13:01:49 +01:00
Louis Lam
72317633d9 Update to 1.21.0 2023-03-20 18:07:54 +08:00
Louis Lam
1973db28bf minor 2023-03-20 18:02:31 +08:00
Louis Lam
972ae60cfc Merge pull request #2913 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-03-20 18:01:42 +08:00
Weblate
56410afc3b Merge remote-tracking branch 'origin/master' 2023-03-20 09:57:54 +00:00
Alanimdeo
df975c2750 Translated using Weblate (Korean)
Currently translated at 97.1% (688 of 708 strings)

Co-authored-by: Alanimdeo <alan@imdeo.kr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Louis Lam
0cfd3fa642 Translated using Weblate (Georgian)
Currently translated at 1.5% (11 of 708 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ka/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Yoswaris Lawpaiboon
0b91391ced Translated using Weblate (Thai)
Currently translated at 81.3% (576 of 708 strings)

Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Bart Callant
02fde56aec Translated using Weblate (Dutch)
Currently translated at 94.7% (671 of 708 strings)

Co-authored-by: Bart Callant <bart@callant.net>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nl/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Mikolajek
da225a225f Translated using Weblate (French)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Mikolajek <weblate-1530@npk.pm>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Marco
a40c03f6f3 Translated using Weblate (German)
Currently translated at 100.0% (708 of 708 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Ghvinerias
c238508060 Translated using Weblate (Georgian)
Currently translated at 1.6% (12 of 708 strings)

Added translation using Weblate (Georgian)

Co-authored-by: Ghvinerias <Ghvinerias@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ka/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Tomasz Bielinski
abcbc3c55e Translated using Weblate (Slovak)
Currently translated at 11.7% (83 of 708 strings)

Added translation using Weblate (Slovak)

Co-authored-by: Tomasz Bielinski <tomasz@bielinski.sk>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sk/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
DoyunShin
350451edc8 Translated using Weblate (Korean)
Currently translated at 95.6% (677 of 708 strings)

Translated using Weblate (Korean)

Currently translated at 95.0% (673 of 708 strings)

Co-authored-by: DoyunShin <doyun.shin@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:49 +00:00
Nelson Chan
b4b2ae55c0 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 95.6% (677 of 708 strings)

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:48 +00:00
stanol
9ecb890f56 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (708 of 708 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
2023-03-20 09:57:48 +00:00
Ömer Faruk Genç
4329fc6751 Translated using Weblate (Turkish)
Currently translated at 100.0% (708 of 708 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
2023-03-20 09:57:48 +00:00
Alexey
836e125256 Translated using Weblate (Russian)
Currently translated at 92.9% (658 of 708 strings)

Co-authored-by: Alexey <aosmirnov@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:48 +00:00
Donker_Jumala
0fe98de256 Translated using Weblate (Japanese)
Currently translated at 72.1% (511 of 708 strings)

Co-authored-by: Donker_Jumala <weareh0711@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:48 +00:00
Deathart
3825dd9f42 Translated using Weblate (French)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Deathart <deathart@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:48 +00:00
Cyril59310
c6cd0d9312 Translated using Weblate (French)
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-20 09:57:48 +00:00
Michal
82975f8d7b Translated using Weblate (Czech)
Currently translated at 100.0% (708 of 708 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
2023-03-20 09:57:48 +00:00
MrEddX
2ebbcc25a9 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (708 of 708 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
2023-03-20 09:57:48 +00:00
Louis Lam
f2323b012b Deleted translation using Weblate (Chinese (Literary))
Deleted translation using Weblate (Mongolian)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-03-20 09:57:48 +00:00
401Unauthorized
e5a6238cde chore: remove invalid template 2023-03-19 21:59:34 +08:00
Louis Lam
61506b1af2 [Deploy to demo] No need to restart demo-kuma 2023-03-15 15:06:53 +08:00
tombii
dbe73bd6ae Update monitor.js (#2929)
Language
2023-03-15 15:00:28 +08:00
Ghvinerias
0778549a6d Update i18n.js (#2927)
I want to commit to this project by translating it to Georgian,
I added "ge" : "ქართული", "ქართული" means Georgian in Georgian language
2023-03-15 14:57:47 +08:00
Louis Lam
09fa60de55 Merge pull request #2531 from doubles-ss/master
Feat: Add mtls authen option to http
2023-03-14 00:04:40 +08:00
Louis Lam
1e80365b73 Update node-ping to 0.4.4 2023-03-12 20:44:30 +08:00
Louis Lam
491239415e Merge remote-tracking branch 'origin/master' into doubles-ss_master
# Conflicts:
#	server/database.js
2023-03-12 18:38:19 +08:00
Lukas Bableck
cf59832d51 Set viewport-fit=cover in meta viewport tag 2023-03-10 17:42:30 +01:00
Lukas Bableck
8f259e1756 Add padding to bottom-nav 2023-03-10 17:42:06 +01:00
Yoswaris Lawpaiboon
29b2809279 Change Icon, Add missing var 2023-03-10 22:04:47 +07:00
Yoswaris Lawpaiboon
16f2701f61 idk how to fix camelcase lint 😢 2023-03-10 20:24:10 +07:00
Yoswaris Lawpaiboon
3bbf269da0 generator modal 2023-03-10 19:25:04 +07:00
Yoswaris Lawpaiboon
56d716cee4 Create badge-list.md 2023-03-10 17:46:45 +07:00
Louis Lam
0efabb4e39 Update to 1.21.0-beta.1 2023-03-10 16:16:00 +08:00
Louis Lam
b7aad4677d Merge pull request #2890 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations Update from Weblate
2023-03-10 16:04:12 +08:00
401Unauthorized
0a9ebf7fa4 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (708 of 708 strings)

Co-authored-by: 401Unauthorized <hi@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:36 +00:00
Michal
09aa7be4f5 Translated using Weblate (Czech)
Currently translated at 100.0% (708 of 708 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
2023-03-10 08:00:36 +00:00
DevMirza
d3a3dcbde2 Translated using Weblate (Urdu)
Currently translated at 60.0% (423 of 704 strings)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:36 +00:00
Louis Lam
7447a6570f Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 95.5% (673 of 704 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 95.5% (673 of 704 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:36 +00:00
Mathias
66e80aa6c3 Translated using Weblate (Estonian)
Currently translated at 42.0% (296 of 704 strings)

Co-authored-by: Mathias <mathias.talo@outlook.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/et/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
Marco
f1c3604ab0 Translated using Weblate (German (Switzerland))
Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 90.6% (638 of 704 strings)

Co-authored-by: Marco <marco@nanoweb.ch>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
Alexandr Loskutov
e8a81379bb Translated using Weblate (Ukrainian)
Currently translated at 100.0% (704 of 704 strings)

Co-authored-by: Alexandr Loskutov <alex_connor@icloud.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
ButterflyOfFire
1f13db26cc Translated using Weblate (Arabic)
Currently translated at 96.5% (680 of 704 strings)

Added translation using Weblate (Arabic)

Co-authored-by: ButterflyOfFire <butterflyoffire+uptimekuma@protonmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ar/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
stanol
1777270bb7 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (704 of 704 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
2023-03-10 08:00:35 +00:00
Ömer Faruk Genç
062191d61f Translated using Weblate (Turkish)
Currently translated at 100.0% (704 of 704 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
2023-03-10 08:00:35 +00:00
Yoswaris Lawpaiboon
86e9c8ade9 Translated using Weblate (Thai)
Currently translated at 81.9% (577 of 704 strings)

Co-authored-by: Yoswaris Lawpaiboon <konglha19@outlook.co.th>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
Adam Stachowicz
35cf31ced1 Translated using Weblate (Polish)
Currently translated at 99.0% (697 of 704 strings)

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
Donker_Jumala
4608560b1d Translated using Weblate (Japanese)
Currently translated at 72.3% (509 of 704 strings)

Co-authored-by: Donker_Jumala <weareh0711@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
simonghpub
6a37a2a05b Translated using Weblate (Danish)
Currently translated at 79.4% (559 of 704 strings)

Co-authored-by: simonghpub <simonpmt@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translation: Uptime Kuma/Uptime Kuma
2023-03-10 08:00:35 +00:00
Louis Lam
ba7af9b569 Uppercase and improve language keys 2023-03-10 15:55:39 +08:00
Louis Lam
6635412980 Merge pull request #2885 from cyril59310/master
Add keys for translation
2023-03-10 15:37:08 +08:00
Louis Lam
6e0aa109bc Uppercase and improve language keys 2023-03-10 15:36:23 +08:00
Louis Lam
533bc1505b Prevent generating duplicated timeslots 2023-03-09 22:03:23 +08:00
Nelson Chan
391692a708 Chore: Add support for encrypted SSL-key 2023-03-09 00:00:07 +08:00
Louis Lam
a599f5149b Merge pull request #2907 from chakflying/fix/disconnect-redis
Fix: Disconnect redis after ping
2023-03-08 22:57:30 +08:00
Nelson Chan
f32fcb204f Fix: Check for notified days smaller than target 2023-03-08 22:26:19 +08:00
Nelson Chan
230de63460 Fix: Disconnect redis after ping 2023-03-08 21:47:52 +08:00
Josua Frank
e8814e8479 added option for ntfy access tokens 2023-03-08 13:28:02 +00:00
Louis Lam
2dedc1cfbd Fix #2776 2023-03-07 20:48:11 +08:00
Louis Lam
65933de0cd Merge pull request #2886 from stanol/patch-1
Fix typo
2023-03-05 17:09:16 +08:00
Louis Lam
ce8eebc838 Fix #2880 2023-03-05 15:59:43 +08:00
stanol
ae5a683af8 Fix typo 2023-03-04 20:49:47 +02:00
cyril59310
70bb69fc73 add keys for translation 2023-03-04 15:17:20 +01:00
Cyril59310
2702335d91 Merge branch 'louislam:master' into master 2023-03-04 15:08:22 +01:00
Cyril59310
6de57f3283 Delete empty 2023-03-04 15:08:14 +01:00
Louis Lam
0dce492226 Update to 1.21.0-beta.0 2023-03-04 21:08:39 +08:00
Louis Lam
3e60912992 Update node-ping 2023-03-04 21:08:21 +08:00
Louis Lam
f17d23f5d8 A script for sorting contributors from weblate 2023-03-04 21:03:46 +08:00
Louis Lam
306cd37ec0 Merge pull request #2789 from Zaid-maker/patch-1
Add new Language: Urdu
2023-03-04 21:00:38 +08:00
Louis Lam
26dfa248c5 Merge pull request #2861 from byawitz/patch-1
Added Hebrew (he_IL) support
2023-03-04 20:59:48 +08:00
Louis Lam
993bdb3550 Merge pull request #2788 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations update from Uptime Kuma Weblate
2023-03-04 20:57:52 +08:00
Weblate
6335b72c2b Merge remote-tracking branch 'origin/master' 2023-03-04 12:41:24 +00:00
Louis Lam
7ec09d0118 Fix ipv6 issue for ping 2023-03-04 20:41:08 +08:00
Louis Lam
92c9b8bb63 Fix ipv6 issue for ping 2023-03-04 20:29:52 +08:00
Weblate
86a8ec27f3 Merge remote-tracking branch 'origin/master' 2023-03-04 11:12:28 +00:00
Louis Lam
010c7d681f Fix ipv6 issue for ping 2023-03-04 19:12:11 +08:00
Weblate
1d5246c34b Merge remote-tracking branch 'origin/master' 2023-03-04 09:35:23 +00:00
Louis Lam
8d1847c032 Merge pull request #2744 from bobby-ore/add-lunasea-user-id
Add ability to use User ID for LunaSea notifications
2023-03-04 17:35:15 +08:00
Weblate
13387cdd90 Merge remote-tracking branch 'origin/master' 2023-03-04 09:30:05 +00:00
Louis Lam
44077b38cb Merge pull request #2869 from chakflying/fix/clone-monitor-tags
Fix: assign tags when cloning monitor
2023-03-04 17:29:57 +08:00
Weblate
b60c11ff28 Merge remote-tracking branch 'origin/master' 2023-03-03 14:24:14 +00:00
Louis Lam
36aef2ae0d Merge pull request #2876 from chakflying/fix/uptime-for-push-beat
Fix: Clear uptime cache on push beat
2023-03-03 22:24:06 +08:00
Cyril59310
db5641c4bf Translated using Weblate (French)
Currently translated at 100.0% (704 of 704 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:56 +00:00
ilya12077
901795729b Translated using Weblate (Russian)
Currently translated at 93.3% (657 of 704 strings)

Co-authored-by: ilya12077 <mr.ilya.1207@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:56 +00:00
AnnAngela
7c1cca38dc Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (704 of 704 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
2023-03-03 08:50:56 +00:00
Oleg Logvinov
ce767d2350 Translated using Weblate (Russian)
Currently translated at 93.1% (656 of 704 strings)

Co-authored-by: Oleg Logvinov <oleglogwinow@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:56 +00:00
401Unauthorized
b433a8fe5a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (704 of 704 strings)

Co-authored-by: 401Unauthorized <hi@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:56 +00:00
ilya12077
9fb190cc3c Translated using Weblate (Russian)
Currently translated at 93.1% (656 of 704 strings)

Translated using Weblate (Russian)

Currently translated at 92.1% (649 of 704 strings)

Co-authored-by: ilya12077 <mr.ilya.1207@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:56 +00:00
Justricity
917f406f30 Translated using Weblate (German)
Currently translated at 100.0% (704 of 704 strings)

Co-authored-by: Justricity <social@justricity.de>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
tim-wiegers
06ec7f2b61 Translated using Weblate (German)
Currently translated at 100.0% (704 of 704 strings)

Co-authored-by: tim-wiegers <hallobello17@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
DevMirza
6af1306b89 Translated using Weblate (Urdu)
Currently translated at 57.6% (400 of 694 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (694 of 694 strings)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
fuyuki
7bbfb640ba Translated using Weblate (Japanese)
Currently translated at 56.6% (399 of 704 strings)

Translated using Weblate (Japanese)

Currently translated at 42.6% (300 of 704 strings)

Translated using Weblate (Japanese)

Currently translated at 40.3% (280 of 694 strings)

Co-authored-by: fuyuki <yuki627f@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Binyamin Yawitz
9758e1b71a Translated using Weblate (Hebrew (Israel))
Currently translated at 100.0% (694 of 694 strings)

Co-authored-by: Binyamin Yawitz <biny1000@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/he_IL/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Samuel PERRIER
eed49fed59 Translated using Weblate (French)
Currently translated at 100.0% (694 of 694 strings)

Co-authored-by: Samuel PERRIER <Samuel-Perrier@users.noreply.weblate.kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
401Unauthorized
1d7883208a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (694 of 694 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Nelson Chan
5005c56e51 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 96.9% (673 of 694 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 91.0% (632 of 694 strings)

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Ömer Faruk Genç
cd61b28c85 Translated using Weblate (Turkish)
Currently translated at 100.0% (677 of 677 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
2023-03-03 08:50:55 +00:00
Ivan Dmitriev
8b1affb9f4 Translated using Weblate (Russian)
Currently translated at 95.7% (648 of 677 strings)

Co-authored-by: Ivan Dmitriev <dmitriev.ivan.a@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
AnnAngela
a838432aef Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (674 of 674 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
2023-03-03 08:50:55 +00:00
Furkan İ
1718890be7 Translated using Weblate (Turkish)
Currently translated at 100.0% (674 of 674 strings)

Co-authored-by: Furkan İ <developer@furkanipek.com.tr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Abin Abraham
efd4dece1b Translated using Weblate (Malayalam)
Currently translated at 3.7% (25 of 674 strings)

Added translation using Weblate (Malayalam)

Co-authored-by: Abin Abraham <iamabinabraham@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ml/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:55 +00:00
Cyril59310
c8a830047b Translated using Weblate (French)
Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (French)

Currently translated at 100.0% (674 of 674 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
Stian Meyer
db85f1758a Translated using Weblate (Norwegian Bokmål)
Currently translated at 40.2% (271 of 674 strings)

Co-authored-by: Stian Meyer <stian@smeyer.no>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nb_NO/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
401Unauthorized
f02e8be3e2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (674 of 674 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (670 of 673 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
AnnAngela
40cd5d41e3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (669 of 669 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
2023-03-03 08:50:54 +00:00
Donker_Jumala
f2dc27c8fa Translated using Weblate (Japanese)
Currently translated at 40.8% (273 of 669 strings)

Co-authored-by: Donker_Jumala <weareh0711@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
401Unauthorized
2bb3b634c0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (669 of 669 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
Ömer Faruk Genç
3f3c5dca9f Translated using Weblate (Turkish)
Currently translated at 100.0% (669 of 669 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
2023-03-03 08:50:54 +00:00
Super Admin
482d2657ca Translated using Weblate (Yue)
Currently translated at 14.9% (100 of 667 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 94.1% (628 of 667 strings)

Co-authored-by: Super Admin <uptime@kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
MrEddX
fa2221781e Translated using Weblate (Bulgarian)
Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (694 of 694 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (674 of 674 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (667 of 667 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
2023-03-03 08:50:54 +00:00
victorpahuus
3e97563ee4 Translated using Weblate (Danish)
Currently translated at 72.0% (502 of 697 strings)

Co-authored-by: victorpahuus <dibbohh@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
Kurt S
68ea65bbd9 Translated using Weblate (German)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Kurt S <mail@kurtys.de>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:54 +00:00
DevMirza
6cea6dc001 Translated using Weblate (Urdu)
Currently translated at 56.6% (379 of 669 strings)

Translated using Weblate (Urdu)

Currently translated at 38.4% (268 of 697 strings)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Oleg Logvinov
a990dc89d8 Translated using Weblate (Russian)
Currently translated at 96.8% (675 of 697 strings)

Co-authored-by: Oleg Logvinov <oleglogwinow@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Louis Lam
16ce1f9ddf Translated using Weblate (Urdu)
Currently translated at 27.5% (192 of 697 strings)

Translated using Weblate (Hungarian)

Currently translated at 74.0% (516 of 697 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Zoe
2f5d9e7e46 Translated using Weblate (Norwegian Bokmål)
Currently translated at 41.1% (287 of 697 strings)

Co-authored-by: Zoe <me@s1lv3r.codes>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nb_NO/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
AmadeusGraves
f75ff2da98 Translated using Weblate (Spanish)
Currently translated at 98.9% (690 of 697 strings)

Co-authored-by: AmadeusGraves <angelfx19@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Lance
d1808fe9a3 Translated using Weblate (English)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Lance <2124757129@qq.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Zandor Smith
22577b88e9 Translated using Weblate (Dutch)
Currently translated at 99.7% (695 of 697 strings)

Translated using Weblate (Dutch)

Currently translated at 92.8% (647 of 697 strings)

Co-authored-by: Zandor Smith <info@zsinfo.nl>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nl/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Francesco Giuffré
61699bb238 Translated using Weblate (Italian)
Currently translated at 59.6% (416 of 697 strings)

Co-authored-by: Francesco Giuffré <ciccio.giuffre@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
krolli
8d31187a74 Translated using Weblate (Hungarian)
Currently translated at 74.0% (516 of 697 strings)

Co-authored-by: krolli <tuzoltoroli@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Michal
9a1301d0a9 Translated using Weblate (Czech)
Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (704 of 704 strings)

Translated using Weblate (Czech)

Currently translated at 99.7% (692 of 694 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (674 of 674 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (669 of 669 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (667 of 667 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Czech)

Currently translated at 99.8% (696 of 697 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
2023-03-03 08:50:53 +00:00
DevMirza
5f1b58e836 Translated using Weblate (Arabic (ar_SY))
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Urdu)

Currently translated at 27.6% (193 of 697 strings)

Translated using Weblate (Urdu)

Currently translated at 17.7% (124 of 697 strings)

Translated using Weblate (Hungarian)

Currently translated at 74.0% (516 of 697 strings)

Translated using Weblate (English)

Currently translated at 100.0% (697 of 697 strings)

Added translation using Weblate (Urdu)

Co-authored-by: DevMirza <pzhafeez@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ar_SY/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ur/
Translation: Uptime Kuma/Uptime Kuma
2023-03-03 08:50:53 +00:00
Nelson Chan
193a273557 Feat: Add status page countdown to refresh 2023-03-03 08:25:41 +08:00
Nelson Chan
bc87abf5c2 Fix: Clear uptime cache on push beat 2023-03-03 05:57:36 +08:00
Arniwatt Chonkiattipoom
bb7de6aa88 chore: notification toggle missing when import from backup 2023-03-02 16:23:27 +07:00
Nelson Chan
150607cc93 Feat: Support auto theme in status pages 2023-03-02 07:26:26 +08:00
Nelson Chan
ad26f0e817 Fix: assign tags when cloning monitor 2023-03-02 06:44:16 +08:00
Michael Telgkamp
cbbd3e20ad Codestyle: Add trailing comma 2023-03-01 23:05:23 +01:00
Nelson Chan
beb22f743d Chore: Update chart.js & improve perf. 2023-03-02 04:47:51 +08:00
Godwin Gabriel Ndlovu
6fc34e44d9 Resolved issue with using IP Address as GRPC URL
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
2023-03-01 19:45:31 +02:00
Louis Lam
94c3861608 Update Apprise to 1.3.0 2023-03-01 23:23:16 +08:00
Louis Lam
71c800b880 Merge remote-tracking branch 'origin/master' into notification-provider-pagertree
# Conflicts:
#	src/lang/en.json
2023-03-01 16:17:18 +08:00
Michael Telgkamp
7b4f90ce92 Improve ntfy notifications
- 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
2023-03-01 08:37:06 +01:00
Binyamin Yawitz
0986457017 Added Hebrew (he_IL) support 2023-02-28 12:45:35 -05:00
Bobby Ore
b21c2adcc2 Rework lunasea notification to allow for device id and user id 2023-02-28 09:47:35 -06:00
Louis Lam
beafbf27ad Merge pull request #2858 from louislam/1.20.X
Merge 1.20.x to master
2023-02-28 18:13:15 +08:00
Louis Lam
958354e4db Minor 2023-02-28 16:58:36 +08:00
Louis Lam
38ab5e0f3e Merge pull request #2558 from Computroniks/feature/1685-prometheus-api-key
Added #1685: Add API keys for API authentication
2023-02-28 16:55:50 +08:00
Matthew Nickson
7e178d93df Moved location of disable expiry checkbox
Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-27 18:44:32 +00:00
Matthew Nickson
97e276bdb5 Fixed processing error with add API key
Also added padding below add button

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-27 18:19:56 +00:00
Louis Lam
fc8a324f41 [exe] single instance only 2023-02-27 18:52:19 +08:00
Louis Lam
bba8c6fe4e [exe] Open menu item is clickable after the server is ready 2023-02-27 18:48:11 +08:00
Louis Lam
fee8fd9320 [exe] Use Environment.CurrentDirectory instead of overriding fs 2023-02-27 18:45:54 +08:00
Matthew Nickson
669f8700b2 Switched to nanoid for key generation
To try and prevent any security issues, use an external package to
generate key instead of doing it ourselves. Note: we have to use nanoid
version 3 as nanoid version 4 requires ESM. Currently, nanoid v3 is
still supported.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-26 19:36:50 +00:00
Matthew Nickson
11fa690e09 Updated API Keys UI
The UI has now been moved to the settings page.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-26 18:07:57 +00:00
Matthew Nickson
06ee68dc0e Merge branch 'feature/1685-prometheus-api-key' of github.com:Computroniks/uptime-kuma into feature/1685-prometheus-api-key 2023-02-26 16:47:45 +00:00
Matthew Nickson
42a69c16ca Switched to crypto.randomBytes fpr key generation
Keys are now 32 bytes long encoded in a URL safe base64 string

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-26 16:47:34 +00:00
titanventura
db6b863445 show tags in monitor select list under status page : change select UI from normal select to vue-multiselect 2023-02-26 16:26:09 +05:30
Louis Lam
b91c526d2e [exe] Show server status 2023-02-26 17:56:01 +08:00
Louis Lam
5b0b743f81 Update to 1.20.2 2023-02-26 17:00:54 +08:00
Louis Lam
3c5f998191 Update mongodb to 4.14.0, possibly fix #2820 2023-02-26 03:23:02 +08:00
Louis Lam
a80f228136 Merge pull request #939 from jcvincenti/feature/482-add-description-to-monitor
Add description to monitor
2023-02-25 20:14:27 +08:00
Louis Lam
ea3b3abe36 Fine tune 2023-02-25 20:13:46 +08:00
Louis Lam
48c6f0578c Merge manually 2023-02-25 19:16:33 +08:00
Louis Lam
7f9332c753 Merge remote-tracking branch 'origin/master' into feature/482-add-description-to-monitor
# Conflicts:
#	server/database.js
#	server/model/monitor.js
#	src/icon.js
#	src/languages/en.js
#	src/languages/es-ES.js
2023-02-25 19:14:44 +08:00
Louis Lam
d668812df1 Fix merge issue 2023-02-25 17:59:25 +08:00
Louis Lam
f32d3af62c Merge remote-tracking branch 'origin/master' into doubles-ss_master
# Conflicts:
#	server/database.js
2023-02-25 17:57:25 +08:00
Louis Lam
8a115670cd Fix label and id
Co-authored-by: AlexKraus <alex.b.kraus@googlemail.com>
2023-02-25 17:55:40 +08:00
Louis Lam
a7b49fcd98 Fix json body after xml body added 2023-02-25 17:28:32 +08:00
Louis Lam
487eae71c7 Merge pull request #2489 from mathiash98/mathiash98/clone-monitor
Feature: Clone existing monitor
2023-02-25 17:10:56 +08:00
Louis Lam
4fed0c152e Show Copy of in front of the cloned monitor name 2023-02-25 17:05:03 +08:00
Louis Lam
43c797a34e Do not active the old monitor in the clone page 2023-02-25 16:20:59 +08:00
Louis Lam
f9a6d7ec44 Add a missing icon 2023-02-25 16:19:48 +08:00
Louis Lam
4a5a424198 Merge remote-tracking branch 'origin/master' into mathiash98/clone-monitor 2023-02-25 15:43:07 +08:00
Louis Lam
f47f2d5c87 Better save button for edit/add monitor page 2023-02-25 15:40:24 +08:00
Louis Lam
54cd7a0402 Merge manually 2023-02-25 15:08:39 +08:00
Louis Lam
f0ae67f89a Merge remote-tracking branch 'origin/master' into mathiash98/clone-monitor
# Conflicts:
#	src/languages/en.js
#	src/pages/EditMonitor.vue
2023-02-25 14:56:51 +08:00
Louis Lam
98bb854832 Merge pull request #2764 from chakflying/feat/add-new-tag
Feat: Add "Add New Tag" button in settings
2023-02-25 02:27:32 +08:00
Louis Lam
46894793fc Update Learn More url 2023-02-25 00:44:12 +08:00
Louis Lam
ef64077980 Merge remote-tracking branch 'origin/master' into feature/1685-prometheus-api-key
# Conflicts:
#	src/lang/en.json
2023-02-25 00:06:25 +08:00
Louis Lam
e873fea86d Merge pull request #2736 from blozano824/add-status-to-slack-notification
Adds name + status + message to Slack notification
2023-02-24 23:54:31 +08:00
Louis Lam
c4a9374671 Merge pull request #2835 from chakflying/fix/game-list-empty
Fix: getGameList returns nothing on first run
2023-02-24 23:34:47 +08:00
Nelson Chan
c65a920050 Chore: Fix code comment 2023-02-24 21:09:55 +08:00
Nelson Chan
7b8ed01f27 Fix: getGameList returns nothing on first run 2023-02-24 21:06:00 +08:00
Louis Lam
cecb0b6425 Merge pull request #2610 from bayramberkay/feature/add-xml-support-to-http-monitors
Add xml support to HTTP monitors
2023-02-24 17:26:47 +08:00
Louis Lam
8e3dd4202f Merge pull request #2595 from tminei/telegram_test
Added a more telegram notifications options
2023-02-24 17:22:43 +08:00
Louis Lam
af82ea742c Merge manually 2023-02-24 17:21:53 +08:00
Louis Lam
2fa233ae7f Fix prometheus null issues 2023-02-24 17:12:57 +08:00
Louis Lam
e9475ed3c0 Merge remote-tracking branch 'origin/master' into telegram_test
# Conflicts:
#	server/notification-providers/telegram.js
#	src/languages/en.js
2023-02-24 17:08:48 +08:00
Louis Lam
b923ba72ca Merge pull request #2334 from nlutsenko/nlutsenko.telegram_silentnotification
Add ability to send Telegram notifications silently, behind a setting.
2023-02-24 17:04:51 +08:00
Louis Lam
06278dc51f Fix telegram silent issue 2023-02-24 17:03:40 +08:00
Louis Lam
10228874fa Merge manually 2023-02-24 16:54:58 +08:00
Louis Lam
c5034c8f38 Merge remote-tracking branch 'origin/master' into nlutsenko.telegram_silentnotification
# Conflicts:
#	server/notification-providers/telegram.js
#	src/components/notifications/Telegram.vue
#	src/languages/en.js
2023-02-24 16:42:57 +08:00
Michael Telgkamp
186ca30508 Improve mattermost notifications 2023-02-23 17:40:39 +01:00
Ruben van Dijk
896e33815d Merge branch 'louislam:master' into fix-metrics-push 2023-02-23 14:11:39 +01:00
Louis Lam
7e3734af53 Better handling 2023-02-23 20:59:24 +08:00
Louis Lam
5789112f55 Merge remote-tracking branch 'origin/master' into feat-add-message-thread-id-telegram-nonfiction 2023-02-23 20:47:28 +08:00
Louis Lam
4dfc1a0221 Merge pull request #2664 from spali/keep_prometheus_instance
remember prometheus instance and expose it
2023-02-23 20:43:05 +08:00
Louis Lam
6235ce6b29 Merge pull request #2823 from chakflying/fix/footer-null
Fix: Add null check for injected HTML
2023-02-23 18:03:33 +08:00
Louis Lam
81a829bda7 Merge pull request #2812 from louislam/remove-translate-keys
Remove untranslatable keys and notification list optimization
2023-02-23 18:03:04 +08:00
Louis Lam
fa7f75a930 Organize notification list 2023-02-23 18:01:42 +08:00
Nelson Chan
7c8cff7708 Fix: Add null check for injected HTML 2023-02-23 17:02:16 +08:00
Austin Miller
5e1489a6ed PagerTree Notification - Send msg when heartbeatJSON null 2023-02-22 14:32:02 -07:00
Louis Lam
df5da0054e Remove more keys 2023-02-22 04:40:03 +08:00
Louis Lam
7da48b27a5 Fix getUniqueDefaultName 2023-02-22 04:29:43 +08:00
Louis Lam
de7df46aa8 Sort the notification list by name and remove translation keys of brand names or product names 2023-02-22 04:27:12 +08:00
Louis Lam
9ccaa4d120 Merge pull request #2786 from luckman212/luckman212-tagsort-1
sorted tags on dashboard
2023-02-22 01:11:03 +08:00
Louis Lam
42033c692f Merge pull request #2748 from chakflying/feat/improve-err-code
Feat: Use error message to detect and set status code
2023-02-22 01:01:53 +08:00
Louis Lam
aad1a7e0fa Merge pull request #2806 from andreasbrett/markdown_description
add markdown support for description
2023-02-21 16:19:14 +08:00
Louis Lam
2c62d197a0 [exe] Update dependencies 2023-02-21 16:03:41 +08:00
Louis Lam
dad21065cf Update release procedures 2023-02-21 15:45:18 +08:00
Louis Lam
02ddb58686 Fix cwd issues 2023-02-21 15:16:54 +08:00
Louis Lam
c061455475 Merge pull request #2191 from louislam/exe
Windows Executable File - uptime-kuma.exe
2023-02-21 03:23:07 +08:00
Louis Lam
0e38391454 Fix dpi issue using app.manifest 2023-02-21 03:11:29 +08:00
Louis Lam
22902139d2 Implement update 2023-02-21 02:50:25 +08:00
Louis Lam
4642f9be0a Fix download-dist.js do not exit sometimes 2023-02-20 23:15:49 +08:00
Andreas Brett
372c6b9078 add markdown support for description 2023-02-20 16:09:17 +01:00
Peace
0be8b111e2 chore: better up message
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-20 13:48:16 +01:00
Louis Lam
cf32b8bc64 Read latest version from website and add Run when system starts 2023-02-20 20:26:53 +08:00
Louis Lam
6a98ffe2f6 Merge remote-tracking branch 'origin/master' into exe
# Conflicts:
#	.dockerignore
#	.gitignore
2023-02-20 18:28:35 +08:00
Faruk Genç
72106ba4c4 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-02-18 22:38:40 +03:00
Faruk Genç
3ab0faee91 Add update query for old monitors and save new data correctly 2023-02-18 22:18:48 +03:00
Faruk Genç
9e3a77f419 Customize body placeholder for body encoding 2023-02-18 17:02:56 +03:00
Louis Lam
d1c43f432a Merge pull request #2747 from OidaTiftla/rename-consequently-to-consecutively
Rename "consequently" to "consecutively" as suggested by @skylarv
2023-02-18 16:53:45 +08:00
Louis Lam
ba3c7210ab Merge remote-tracking branch 'origin/master' into rename-consequently-to-consecutively
# Conflicts:
#	src/lang/cs-CZ.json
#	src/lang/de-DE.json
#	src/lang/en.json
#	src/lang/es-ES.json
#	src/lang/fr-FR.json
#	src/lang/id-ID.json
#	src/lang/pl.json
#	src/lang/pt-BR.json
#	src/lang/tr-TR.json
#	src/lang/zh-HK.json
2023-02-18 16:52:47 +08:00
cyril59310
3b74f5f359 empty 2023-02-17 19:50:18 +01:00
Faruk Genç
c9b4a7f53e Change column type 2023-02-17 17:59:43 +03:00
DevMirza
bd2c1d9c34 Add Urdu to right to left language array <3 2023-02-17 15:43:49 +05:00
Peace
cef0a0faf4 Merge branch 'master' into group-monitors 2023-02-16 21:38:53 +01:00
DevMirza
4df8db3f54 Add new Language: Urdu 2023-02-16 19:12:18 +05:00
Dave Baker
dfb95dfdcb Hostnames may be specified with a trailing dot to prevent DNS search lookups 2023-02-16 08:55:19 +00:00
Matthew Nickson
b8720b46c3 Switched to using Authorization header
Prometheus doesn't support using custom headers for exporters, however
it does support using the Authorisation header with basic auth. As
such, we switched from using X-API-Key to Authorization with the basic
scheme and an empty username field.

Also added a rate limit for API endpoints of 60 requests in a minute

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 21:53:49 +00:00
Matthew Nickson
1d4af39820 Fixed JSDoc for one method
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 19:31:22 +00:00
Luke Hamburg
dd1d71530f sorted tags on dashboard
see https://github.com/louislam/uptime-kuma/issues/2785
2023-02-15 14:06:29 -05:00
Matthew Nickson
01c71a0242 Fixed logic errors, removed dev leftovers
Fixed a logic error where a comma was used instead of an or, also
removed leftover console.logs from testing.

Date picker is now dissabled when don't expire is checked.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 11:15:15 +00:00
Matthew Nickson
d553c4c4f7 Added missing translation keys
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 00:53:42 +00:00
Matthew Nickson
e7feca1cd6 Added API key authentication handler
API key authentication is now possible by making use of the X-API-Key
header. API authentication will only be enabled when a user adds their
first API key, up until this point, they can still use their username
and password to authenticate with API endpoints. After the user adds
their first API key, they may only use API keys in future to
authenticate with the API.

In this commit, the prometheus /metrics endpoint has been changed over
to the new authentication system.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 00:39:29 +00:00
Matthew Nickson
cd796898d0 Added expiry check for frontend
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-14 22:41:06 +00:00
Matthew Nickson
05443f9bb7 Added language keys
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-14 22:16:41 +00:00
Matthew Nickson
d7f2fa982a Merge branch 'master' into feature/1685-prometheus-api-key 2023-02-14 19:53:33 +00:00
Matthew Nickson
ee2eb5109b Added basic web interface for API keys
Web interfaces for manging API keys have been added however translation
keys are still required.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-14 19:49:04 +00:00
Louis Lam
fdc3b2d57a Update to 1.20.1 2023-02-15 03:23:59 +08:00
Louis Lam
e04a8203dc Fix npm issue for deploy script 2023-02-15 03:20:40 +08:00
Louis Lam
2620ec3fae Merge pull request #2767 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations update from Uptime Kuma Weblate
2023-02-15 03:13:12 +08:00
Louis Lam
1877b90b3a Translated using Weblate (Finnish)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fi/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
Michal
609a61e600 Translated using Weblate (Czech)
Currently translated at 100.0% (697 of 697 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
2023-02-14 19:08:52 +00:00
MrEddX
32ddff4e64 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (697 of 697 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
2023-02-14 19:08:52 +00:00
AmadeusGraves
11b45dd274 Translated using Weblate (Spanish)
Currently translated at 97.7% (681 of 697 strings)

Co-authored-by: AmadeusGraves <angelfx19@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
Jonne Saloranta
fb2f7179e9 Translated using Weblate (Finnish)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Jonne Saloranta <saloranta.jonne@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fi/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
eltionb
e3573ced65 Translated using Weblate (Albanian)
Currently translated at 3.2% (23 of 697 strings)

Added translation using Weblate (Albanian)

Co-authored-by: eltionb <eltion.it@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sq/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
Ömer Faruk Genç
8afc55db4e Translated using Weblate (Turkish)
Currently translated at 100.0% (697 of 697 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
2023-02-14 19:08:52 +00:00
Luiz Felipe Arcos Campos
31fa074ffc Translated using Weblate (Portuguese (Brazil))
Currently translated at 38.8% (271 of 697 strings)

Co-authored-by: Luiz Felipe Arcos Campos <dino.bsb@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
Denys Konovalov
379d54e520 Translated using Weblate (German)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Denys Konovalov <privat@denyskon.de>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
victorpahuus
a518188e6f Translated using Weblate (Danish)
Currently translated at 62.9% (439 of 697 strings)

Co-authored-by: victorpahuus <dibbohh@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:52 +00:00
darkslash#2558
7d363ea146 Translated using Weblate (Japanese)
Currently translated at 28.1% (196 of 697 strings)

Added translation using Weblate (Chinese (Literary))

Added translation using Weblate (Mongolian)

Co-authored-by: darkslash#2558 <janisschelling@protonmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-02-14 19:08:51 +00:00
Louis Lam
d1175ff471 Fix #2777 2023-02-15 02:50:49 +08:00
Jonne Saloranta
aad087caac Added Finnish language translation (#2770)
* Added Finnish language translation

* Changed fi-FI to fi
2023-02-15 02:34:00 +08:00
Matthew Nickson
0d6a8b2101 Added more options for confirm modal
The ability to set the title of the modal has been added, as well as
custom callbacks for the no option.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-14 18:23:51 +00:00
Matthew Nickson
cd18b96f69 Added check to ensure backup exists when restoring (#2779)
A check to ensure that the backup database exists before deleting the
current database.

Fixes #2778

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-15 00:43:40 +08:00
Louis Lam
c19dcdba44 Add reminder to keep healthcheck.js 2023-02-14 12:31:29 +08:00
Nelson Chan
d9316f43ac Update README: Add npm as requirement (#2773) 2023-02-14 08:51:55 +08:00
Nelson Chan
33bb9f1ade Feat: Add simple validation on input 2023-02-14 07:16:18 +08:00
Louis Lam
6048bc5dfc Revert #2083's change of healthcheck.js 2023-02-14 00:46:22 +08:00
Louis Lam
5bf00fbe0b Fix deploy-demo-server.js do not download the dist 2023-02-13 17:40:25 +08:00
Louis Lam
76bdb62a5b Update to 1.20.0 2023-02-13 17:23:55 +08:00
Louis Lam
99eebf18b8 Merge pull request #2713 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations update from Uptime Kuma Weblate
2023-02-13 17:07:26 +08:00
Nelson Chan
1bcca60574 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 93.9% (655 of 697 strings)

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:28 +00:00
aditya wahyudi
aeea1ff03f Translated using Weblate (Indonesian)
Currently translated at 83.3% (581 of 697 strings)

Co-authored-by: aditya wahyudi <aditbaco@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:28 +00:00
Jonne Saloranta
b49e3b65c1 Translated using Weblate (Finnish)
Currently translated at 15.2% (106 of 697 strings)

Added translation using Weblate (Finnish)

Co-authored-by: Jonne Saloranta <saloranta.jonne@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fi/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
hamx01
e9876986eb Translated using Weblate (Ukrainian)
Currently translated at 78.6% (548 of 697 strings)

Translated using Weblate (Russian)

Currently translated at 94.4% (658 of 697 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: hamx01 <asolianik2015@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Louis Lam
9268ad2f2c Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 82.0% (572 of 697 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Istratov Dmitrii
f1aa567a50 Translated using Weblate (Russian)
Currently translated at 86.6% (604 of 697 strings)

Co-authored-by: Istratov Dmitrii <funkill2@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Marchel Fahrezi
9d53db1504 Translated using Weblate (Indonesian)
Currently translated at 82.3% (574 of 697 strings)

Co-authored-by: Marchel Fahrezi <marchel.ace@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Asdrubal Duarte
a6f68a2e06 Translated using Weblate (Hungarian)
Currently translated at 58.8% (410 of 697 strings)

Translated using Weblate (Spanish)

Currently translated at 96.9% (676 of 697 strings)

Co-authored-by: Asdrubal Duarte <magyarlatin@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Super Admin
2ef98c1b10 Translated using Weblate (English)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Super Admin <uptime@kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Leonardo Lope
fea33a6475 Translated using Weblate (Portuguese (Portugal))
Currently translated at 63.2% (441 of 697 strings)

Co-authored-by: Leonardo Lope <tutoriaisleo3@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_PT/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Ferenc
3816c696cd Translated using Weblate (German)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Ferenc <ferenc.y@tutanota.de>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
René Dyhr
51860261e9 Translated using Weblate (Danish)
Currently translated at 50.6% (353 of 697 strings)

Co-authored-by: René Dyhr <bazzo39@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Julien Millau
d8a517e843 Translated using Weblate (French)
Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Julien Millau <mxjulien@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
Marcos
971977b295 Translated using Weblate (Spanish)
Currently translated at 96.4% (672 of 697 strings)

Co-authored-by: Marcos <djoser.horus@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:27 +00:00
AnnAngela
36c32c3636 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (697 of 697 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
2023-02-13 08:59:27 +00:00
Ömer Faruk Genç
49396e2ccc Translated using Weblate (Turkish)
Currently translated at 100.0% (697 of 697 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
2023-02-13 08:59:26 +00:00
Tomasz Ad
90d6fbd20b Translated using Weblate (Polish)
Currently translated at 99.8% (696 of 697 strings)

Co-authored-by: Tomasz Ad <djtms84@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Alex Javadi
db918be126 Translated using Weblate (Persian)
Currently translated at 28.1% (196 of 697 strings)

Co-authored-by: Alex Javadi <dev@aljm.org>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fa/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Eduard Dev
5f71515253 Translated using Weblate (Romanian)
Currently translated at 80.3% (560 of 697 strings)

Translated using Weblate (English)

Currently translated at 100.0% (697 of 697 strings)

Co-authored-by: Eduard Dev <legocuedy09@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ro/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Jason Houk
bcac18cc2b Translated using Weblate (Japanese)
Currently translated at 25.2% (175 of 694 strings)

Co-authored-by: Jason Houk <dubsectordevelopment@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Cyril59310
06d1309d78 Translated using Weblate (French)
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (French)

Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (French)

Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (French)

Currently translated at 100.0% (694 of 694 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Rachatat Bunpat
fe66a24f00 Translated using Weblate (Thai)
Currently translated at 86.7% (601 of 693 strings)

Co-authored-by: Rachatat Bunpat <rbunpat@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
David F
cb563950e5 Translated using Weblate (Hebrew (Israel))
Currently translated at 99.8% (692 of 693 strings)

Co-authored-by: David F <me@thefourcraft.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/he_IL/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Dim
b9dd04ab05 Translated using Weblate (French)
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (French)

Currently translated at 100.0% (693 of 693 strings)

Co-authored-by: Dim <DimitriDR@users.noreply.weblate.kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Andriy Skoropad
c70ccd1183 Translated using Weblate (Ukrainian)
Currently translated at 78.0% (541 of 693 strings)

Co-authored-by: Andriy Skoropad <scan4u@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Cyril59310
25d50e7660 Translated using Weblate (French)
Currently translated at 100.0% (693 of 693 strings)

Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
Savvas Mantzouranidis
050c388bc3 Translated using Weblate (Greek)
Currently translated at 99.8% (696 of 697 strings)

Translated using Weblate (Greek)

Currently translated at 99.4% (689 of 693 strings)

Co-authored-by: Savvas Mantzouranidis <mohito6@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/el/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:26 +00:00
401Unauthorized
34b1169ad6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (694 of 694 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (693 of 693 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
UfukArt
6bda8d0b55 Translated using Weblate (Turkish)
Currently translated at 100.0% (693 of 693 strings)

Co-authored-by: UfukArt <ufukatbas@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Nikita Ganzikov
0b9c5c70b2 Translated using Weblate (Russian)
Currently translated at 84.7% (587 of 693 strings)

Co-authored-by: Nikita Ganzikov <nganzikov@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Francesco Giuffré
73f85f4861 Translated using Weblate (Italian)
Currently translated at 60.3% (418 of 693 strings)

Translated using Weblate (Italian)

Currently translated at 55.4% (384 of 693 strings)

Co-authored-by: Francesco Giuffré <ciccio.giuffre@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Edoardo Ridolfi
48d89d8e61 Translated using Weblate (Italian)
Currently translated at 60.3% (418 of 693 strings)

Translated using Weblate (Italian)

Currently translated at 55.4% (384 of 693 strings)

Co-authored-by: Edoardo Ridolfi <edo2313@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
BlackScreen
727de9838b Translated using Weblate (German)
Currently translated at 100.0% (693 of 693 strings)

Co-authored-by: BlackScreen <florian@barthold.tv>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Michal
a16ea4c6f3 Translated using Weblate (Czech)
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Czech)

Currently translated at 99.8% (696 of 697 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (694 of 694 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (693 of 693 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
2023-02-13 08:59:25 +00:00
MrEddX
46413a57e8 Translated using Weblate (Bulgarian)
Currently translated at 99.8% (696 of 697 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (694 of 694 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (693 of 693 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
2023-02-13 08:59:25 +00:00
Adam Stachowicz
e10ea1049d Translated using Weblate (Polish)
Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (697 of 697 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (693 of 693 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (692 of 692 strings)

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Giuseppe Monaco
7984a52929 Translated using Weblate (Italian)
Currently translated at 53.1% (368 of 692 strings)

Co-authored-by: Giuseppe Monaco <GMonaco260@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Federico Lazcano
8f78c54ca2 Translated using Weblate (Spanish)
Currently translated at 96.8% (670 of 692 strings)

Co-authored-by: Federico Lazcano <federico.lazcano@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-02-13 08:59:25 +00:00
Louis Lam
c5ff010669 Add loose dependency qs which is used by aliyun-sms.js 2023-02-13 16:48:05 +08:00
Louis Lam
29976d8a03 minor 2023-02-13 16:35:12 +08:00
Louis Lam
f1bac7ce8a Add a script that deploy to the demo server 2023-02-13 16:26:45 +08:00
Nelson Chan
51dbb23230 Feat: Add "Add New Tag" button in settings 2023-02-13 05:05:30 +08:00
Louis Lam
8092640e20 Update security report guide (#2762) 2023-02-13 00:33:37 +08:00
Faruk Genç
19c8538149 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-02-11 23:56:38 +03:00
Louis Lam
c30e88ece2 Update dependencies 2023-02-10 17:52:46 +08:00
Louis Lam
cb953361b1 Update SECURITY.md 2023-02-10 17:46:44 +08:00
Louis Lam
c12b06348b Fix parsing issues of status page's og tags 2023-02-10 17:29:32 +08:00
Bobby Ore
48b637d4c8 Refactor to not introduce a breaking change 2023-02-09 08:49:19 -06:00
Nelson Chan
3439074835 Feat: Use message to improve errror status code 2023-02-09 17:42:02 +08:00
OidaTiftla
36d160ad02 Rename "consequently" to "consecutively" as suggested by @skylarv
https://github.com/louislam/uptime-kuma/pull/1212#issuecomment-1423373045
2023-02-09 09:04:47 +01:00
Bobby Ore
3a361d2621 lint fix 2023-02-08 14:16:02 -06:00
Bobby Ore
53d9e98e47 Added required to LunaSea notification type select field 2023-02-08 14:13:41 -06:00
Bobby Ore
8725e5daf9 Add ability to use User ID for LunaSea notifications 2023-02-08 14:08:25 -06:00
Brayan Lozano
d45aee450d Removes unecessary ternary operator 2023-02-07 22:34:10 -05:00
Brayan Lozano
727acb32bf Adds name + status + message to slack notification 2023-02-07 21:18:26 -05:00
Louis Lam
e241728419 Merge pull request #2729 from chakflying/patch-1
Fix [MySQL monitor]: Fix error when connection failed
2023-02-07 16:41:38 +08:00
Suriya Soutmun
43941fa2c6 feat: add mtls authen method in http/http keyword 2023-02-07 09:40:47 +07:00
Suriya Soutmun
faa78443d6 chore: alter table monitor add column tls_ca, tls_cert, tls_key for certificate data 2023-02-07 09:40:44 +07:00
Suriya Soutmun
ab3b2bddba [empty commit] pull request for http/http keyword mTLS authen 2023-02-07 09:37:55 +07:00
Nelson Chan
e1f956879d Fix: Use .destroy() instead of .end() 2023-02-07 05:01:53 +08:00
Austin Miller
1c0174c319 ESLint and verbiage changes 2023-02-06 13:07:56 -07:00
Austin Miller
ef54d9e3b6 Add PagerTree Notification Provider 2023-02-06 11:33:14 -07:00
Louis Lam
0197778af1 Fix change language issue in the setup page 2023-02-06 22:35:56 +08:00
Louis Lam
271cca0d23 Add Romanian in the dropdown 2023-02-06 15:21:45 +08:00
Faruk Genç
39c99b0ec4 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors
# Conflicts:
#	server/database.js
#	src/lang/en.json
2023-02-05 18:19:46 +03:00
Louis Lam
b6d7af988d Merge pull request #2718 from cyril59310/master
Add keys for translation
2023-02-05 12:04:55 +08:00
cyril59310
5fff63cd59 add keys for translation 2023-02-05 01:07:20 +01:00
Haytham Salama
c42e550382 style: formats 2023-02-04 23:46:19 +02:00
Haytham Salama
4323dee781 feat: add message thread id to lang 2023-02-04 22:54:19 +02:00
Haytham Salama
1bfb290718 feat: add message thread id for telegram nonfiction 2023-02-04 22:53:38 +02:00
Louis Lam
06dc61b343 Merge pull request #2567 from clcninja/feature-google-analytics
Feature - Added Optional Google Analytics tag for Status Page.
2023-02-04 17:58:18 +08:00
Louis Lam
afadfe32d5 Trim 2023-02-04 17:03:00 +08:00
Louis Lam
5f2affb38c Relocate and fix jsesc issue 2023-02-04 16:58:39 +08:00
Louis Lam
10c6f3b688 Merge remote-tracking branch 'origin/master' into feature-google-analytics 2023-02-04 15:40:13 +08:00
Faruk Genç
666838f334 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-02-04 00:03:05 +03:00
c
a823ed8ccc Feature - Google Analytics - Removed unused import. 2023-02-03 11:49:25 +00:00
Louis Lam
121ab82cc3 Merge pull request #2714 from Saibamen/auto_test_ignore_markdown
Do not run auto-test for markdown-only commits. Update versions
2023-02-03 17:41:17 +08:00
Adam Stachowicz
e0f0178644 Do not run auto-test for markdown-only commits. Update versions 2023-02-03 07:10:10 +01:00
Louis Lam
ec78d2a39b Update README.md 2023-02-03 13:39:45 +08:00
Louis Lam
ff09276de2 Update README.md 2023-02-03 13:38:14 +08:00
Louis Lam
e631db89b8 Update to 1.20.0-beta.0 2023-02-03 13:21:19 +08:00
Louis Lam
d39508a007 Change nightly version format 2023-02-03 13:19:51 +08:00
Louis Lam
b0673ba9ce Merge pull request #2570 from Computroniks/feature/#2365-allow-markdown-in-status-page-footer
Add support for markdown on status page
2023-02-03 12:36:50 +08:00
Joseph
2a6d98ff01 Feat: Expand and Simplify Badge Functionality (#2211)
* [expanding badges] added new configs

* [expanding badges] recieve ping in getPreviousHeartbeat()

* [expanding badges] re-added original new badges

* [expanding badges] recreate parity between old and new badges

* [expanding badges] fix linting
2023-02-03 12:33:48 +08:00
Louis Lam
f153082184 Drop en.js 2023-02-02 21:52:45 +00:00
c
913bb611d5 Feature - Google Analytics - Removed regex to validate a Google Analytics tag. 2023-02-02 21:52:45 +00:00
c
3afe8013ca Feature - Google Analytics - Change TEXT type to VARCHAR. 2023-02-02 21:52:45 +00:00
c
5a94a3fe3c Google Analytics - Moved string to updated file. 2023-02-02 21:52:44 +00:00
c
c08d8a5eaf Google Analytics - Simplified retrieving Tag ID from Status Page. 2023-02-02 21:51:03 +00:00
c
3ff0cbe311 Feature - Google Analytics - Simplified Module & Escaped the Script to prevent XXS. 2023-02-02 21:51:03 +00:00
c
fb2999706c Feature - Google Analytics - Added JSDoc to Google Analytics functions. 2023-02-02 21:51:03 +00:00
c
2b3a3895b3 Feature - Google Analytics - Use Regex to validate UA as per https://support.google.com/analytics/answer/9310895 2023-02-02 21:51:03 +00:00
c
99c0b8cb71 Feature - Google Analytics - Addressing PR Comments. 2023-02-02 21:51:03 +00:00
c
29e24e0de9 Feature - Added Optional Google Analytics tag for Status Page. 2023-02-02 21:51:03 +00:00
Matthew Nickson
3819266fa8 Fixed style of links in markdown
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-02-02 17:55:40 +00:00
Peace
e10ba9ed7e Merge branch 'master' into group-monitors 2023-02-02 17:59:48 +01:00
Faruk Genç
603b3a7fb6 Dummy commit for build 2023-02-02 19:50:29 +03:00
Faruk Genç
b2ddb5c9eb Dummy commit for build 2023-02-02 19:50:14 +03:00
Faruk Genç
4287f7e885 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors
# Conflicts:
#	src/lang/en.json
2023-02-02 19:43:17 +03:00
Louis Lam
d0ac3fc207 Merge pull request #2676 from UptimeKumaBot/weblate-uptime-kuma-uptime-kuma
Translations update from Uptime Kuma Weblate
2023-02-03 00:09:56 +08:00
오로라
2b1cb66ff7 Translated using Weblate (Korean)
Currently translated at 100.0% (692 of 692 strings)

Co-authored-by: 오로라 <dhfhfk1203@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:50 +00:00
mrkbaji
99d4b8ba50 Translated using Weblate (Hungarian)
Currently translated at 58.8% (407 of 692 strings)

Co-authored-by: mrkbaji <mrkbaji13@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:50 +00:00
Dim
e1021ba38a Translated using Weblate (French)
Currently translated at 100.0% (692 of 692 strings)

Co-authored-by: Dim <DimitriDR@users.noreply.weblate.kuma.pet>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:50 +00:00
rubesaca
c2ca60aaa2 Translated using Weblate (Spanish)
Currently translated at 94.6% (655 of 692 strings)

Translated using Weblate (Spanish)

Currently translated at 57.8% (400 of 692 strings)

Translated using Weblate (Spanish)

Currently translated at 56.6% (392 of 692 strings)

Translated using Weblate (Spanish)

Currently translated at 49.2% (341 of 692 strings)

Co-authored-by: rubesaca <rubesaca@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:50 +00:00
Ömer Faruk Genç
30fb5f0b7b Translated using Weblate (Turkish)
Currently translated at 100.0% (692 of 692 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
2023-02-02 16:04:50 +00:00
Louis Lam
a8af763f23 Translated using Weblate (Yue)
Currently translated at 14.3% (99 of 692 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:50 +00:00
Michal
47dd7ef432 Translated using Weblate (Czech)
Currently translated at 100.0% (692 of 692 strings)

Translated using Weblate (Czech)

Currently translated at 99.8% (691 of 692 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
2023-02-02 16:04:50 +00:00
MrEddX
3bc9c19e7f Translated using Weblate (Bulgarian)
Currently translated at 100.0% (692 of 692 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (692 of 692 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
2023-02-02 16:04:50 +00:00
Nelson Chan
c1461fd01f Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 82.8% (573 of 692 strings)

Translated using Weblate (Yue)

Currently translated at 2.6% (18 of 692 strings)

Translated using Weblate (Yue)

Currently translated at 2.1% (15 of 692 strings)

Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
Cyril59310
1aaf251840 Translated using Weblate (French)
Currently translated at 98.6% (683 of 692 strings)

Translated using Weblate (French)

Currently translated at 98.6% (682 of 691 strings)

Co-authored-by: Cyril59310 <contact@cyril59310.fr>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
401Unauthorized
3208d98738 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (692 of 692 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (692 of 692 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (691 of 691 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.5% (681 of 691 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
Adam Stachowicz
fef09d3abd Translated using Weblate (Polish)
Currently translated at 100.0% (691 of 691 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (684 of 684 strings)

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
Louis Lam
1a601c9377 Translated using Weblate (Chinese (Traditional))
Currently translated at 97.2% (673 of 692 strings)

Translated using Weblate (English)

Currently translated at 100.0% (684 of 684 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 62.7% (429 of 684 strings)

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
Anonymous
15ec8db48c Translated using Weblate (English)
Currently translated at 100.0% (692 of 692 strings)

Translated using Weblate (Turkish)

Currently translated at 97.9% (670 of 684 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 58.6% (401 of 684 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma
2023-02-02 16:04:49 +00:00
Peace
9446c2d102 fix: use active instead of isActive in uploadBackup 2023-02-01 23:39:42 +01:00
Peace
2c581ade90 Merge branch 'louislam:master' into group-monitors 2023-02-01 20:44:09 +01:00
Peace
f286386f59 fix: add message for empty group pending state 2023-02-01 20:19:47 +01:00
Peace
9286dcb6ce fix: add serverside check against endless loops 2023-02-01 20:16:56 +01:00
Louis Lam
89465e6768 Update CONTRIBUTING.md 2023-02-01 22:39:09 +08:00
Louis Lam
683f446cf5 Add support for .env 2023-02-01 20:07:08 +08:00
Louis Lam
a8f0f1d872 Merge manually and remove to devDependencies 2023-02-01 15:51:33 +08:00
Louis Lam
f82d7b4007 Merge remote-tracking branch 'origin/master' into feature/#2365-allow-markdown-in-status-page-footer
# Conflicts:
#	package-lock.json
#	package.json
#	src/languages/en.js
2023-02-01 15:38:33 +08:00
Louis Lam
806eb799c1 Merge pull request #2647 from chakflying/fix/ip-regex
Fix: [Regex] Do not allow white space around IP
2023-02-01 15:24:03 +08:00
Louis Lam
c699868bb9 Merge pull request #2709 from chakflying/fix/use-constants
Chore: Use constants instead of int
2023-02-01 13:11:21 +08:00
Nelson Chan
95c934e08b Fix: Do not allow white space around IP
Feat: Trim input on submit

Test: Add test for whitespace regex match
2023-02-01 08:25:16 +08:00
Nelson Chan
348d0170fa Chore: Use constants instead of int 2023-02-01 05:33:36 +08:00
Faruk Genç
7dacc6a002 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-01-30 18:00:42 +03:00
Sebastian Kaempfe
a6894d36f2 [#2501] Dashboard: Details Page
- enable clickable URL on Dashboard Details if monitor is of type `mp-health`
2023-01-30 15:55:12 +01:00
Louis Lam
ce82ad1c12 Merge pull request #2083 from DevKyleS/patch-1
Bugfix: Fix healthcheck port value in healthcheck.js for Kubernetes support
2023-01-30 21:48:39 +08:00
Louis Lam
4fb43034cd Handle k8s in healthcheck.go 2023-01-30 21:46:27 +08:00
Louis Lam
18ae6fa6c1 Merge remote-tracking branch 'origin/master' into patch-1_k8s 2023-01-30 21:34:45 +08:00
Louis Lam
664da4a317 Merge pull request #2684 from gitstart/UPTM-3
Save button can't be found while edit and add in Mobile version
2023-01-30 21:20:39 +08:00
Faruk Genç
064bc00f46 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-01-30 13:09:16 +03:00
Louis Lam
fca0198d35 Merge pull request #2525 from chakflying/fix/maintenance-badge
Fix: Add support for pending & maintenance in badges
2023-01-30 15:32:28 +08:00
Louis Lam
6828d337ae Disable HTTP(s) - Browser Engine
Reason: Unfortunately, after some test, I found that Playwright requires a lot of libraries to be installed on the Linux host in order to start Chrome or Firefox. It will be hard to install, so I hide this feature for now.
2023-01-30 00:00:41 +08:00
Peace
66573934f6 refactor: remove old code 2023-01-28 15:21:17 +01:00
Peace
c444d78706 style: fix linting errors 2023-01-28 15:20:40 +01:00
Peace
661fa87134 feat: make parent link clickable 2023-01-28 14:53:40 +01:00
Peace
d48eb24046 docs: more comments 2023-01-28 14:28:53 +01:00
Peace
aee4c22dee perf: only do one filter instead of 3 in editMonitor 2023-01-28 14:28:34 +01:00
Peace
9a46b50989 docs: add comments 2023-01-28 14:22:15 +01:00
Peace
faf3488b1e fix: unfold tree if monitor is accessed directly 2023-01-28 14:15:25 +01:00
Peace
f3ac351d75 feat: set childs under maintenance if parent is too 2023-01-28 14:02:10 +01:00
Faruk Genç
35bd129d66 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-01-28 15:47:42 +03:00
Peace
aba515e172 feat: disable childs if parent is disabled 2023-01-28 13:39:17 +01:00
Louis Lam
ddce8f0cb0 Fix plugin installation 2023-01-28 19:00:13 +08:00
Louis Lam
1dc2546a39 Lint 2023-01-28 13:39:23 +08:00
Louis Lam
98f5bc51a8 Change golang version 2023-01-28 12:38:39 +08:00
Peace
97bd306a09 Merge branch 'louislam:master' into group-monitors 2023-01-28 03:07:42 +01:00
Peace
645fd94bba feat: add ability to group monitors in dashboard 2023-01-28 02:58:03 +01:00
Louis Lam
82f875beca Update README.md 2023-01-27 23:45:10 +08:00
Louis Lam
50573e6c89 Merge pull request #2635 from Computroniks/bug/2628-uptime-over-100
Perform sanity check on uptime for status page
2023-01-27 18:33:37 +08:00
Louis Lam
e5ca67d062 HTTPS Monitor using Real Browsers + Limited plugin support (#1787) 2023-01-27 18:25:57 +08:00
gitstart
54e63f3e25 Save button can't be found while edit and add in Mobile version 2023-01-26 12:47:33 +00:00
Faruk Genç
2673b509a5 Add "Body Encoding" to en.json 2023-01-25 20:22:50 +03:00
Faruk Genç
9329ec9234 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors
# Conflicts:
#	server/database.js
#	server/model/monitor.js
2023-01-25 20:20:11 +03:00
Louis Lam
d99d37898e Fix 2023-01-26 00:59:38 +08:00
UptimeKumaBot
dcda520d59 Translations update from Uptime Kuma Weblate (#2670)
* Update translation files

Updated by "Squash Git commits" hook in Weblate.

Translated using Weblate (Estonian)

Currently translated at 29.9% (205 of 685 strings)

Translated using Weblate (Spanish)

Currently translated at 29.7% (204 of 685 strings)

Translated using Weblate (Greek)

Currently translated at 84.6% (580 of 685 strings)

Translated using Weblate (German)

Currently translated at 94.1% (645 of 685 strings)

Translated using Weblate (German)

Currently translated at 94.2% (645 of 684 strings)

Translated using Weblate (German)

Currently translated at 94.2% (645 of 684 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 92.2% (632 of 685 strings)

Translated using Weblate (German (Switzerland))

Currently translated at 92.3% (632 of 684 strings)

Translated using Weblate (Danish)

Currently translated at 50.6% (347 of 685 strings)

Translated using Weblate (Danish)

Currently translated at 50.7% (347 of 684 strings)

Translated using Weblate (Czech)

Currently translated at 98.8% (677 of 685 strings)

Translated using Weblate (Arabic (ar_SY))

Currently translated at 96.3% (660 of 685 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (685 of 685 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (684 of 684 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (684 of 684 strings)

Translated using Weblate (Persian)

Currently translated at 29.7% (204 of 685 strings)

Translated using Weblate (Basque)

Currently translated at 77.9% (534 of 685 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.0% (288 of 685 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.1% (288 of 684 strings)

Translated using Weblate (Polish)

Currently translated at 99.8% (684 of 685 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (684 of 684 strings)

Translated using Weblate (Dutch)

Currently translated at 76.3% (523 of 685 strings)

Translated using Weblate (Dutch)

Currently translated at 76.4% (523 of 684 strings)

Translated using Weblate (Korean)

Currently translated at 76.4% (524 of 685 strings)

Translated using Weblate (Japanese)

Currently translated at 28.6% (196 of 685 strings)

Translated using Weblate (Italian)

Currently translated at 52.5% (360 of 685 strings)

Translated using Weblate (Italian)

Currently translated at 52.6% (360 of 684 strings)

Translated using Weblate (Indonesian)

Currently translated at 84.3% (578 of 685 strings)

Translated using Weblate (Hungarian)

Currently translated at 53.8% (369 of 685 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (677 of 685 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (677 of 685 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 40.8% (280 of 685 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 40.9% (280 of 684 strings)

Translated using Weblate (Croatian)

Currently translated at 83.5% (572 of 685 strings)

Translated using Weblate (Hebrew (Israel))

Currently translated at 96.7% (663 of 685 strings)

Translated using Weblate (Yue)

Currently translated at 57.9% (397 of 685 strings)

Translated using Weblate (Yue)

Currently translated at 57.9% (397 of 685 strings)

Translated using Weblate (Yue)

Currently translated at 9.4% (65 of 685 strings)

Translated using Weblate (Yue)

Currently translated at 9.4% (65 of 685 strings)

Translated using Weblate (Yue)

Currently translated at 2.0% (14 of 684 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 96.9% (664 of 685 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 57.9% (397 of 685 strings)

Translated using Weblate (Vietnamese)

Currently translated at 67.4% (462 of 685 strings)

Translated using Weblate (Vietnamese)

Currently translated at 67.5% (462 of 684 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.8% (513 of 685 strings)

Translated using Weblate (Turkish)

Currently translated at 98.6% (676 of 685 strings)

Translated using Weblate (Thai)

Currently translated at 83.5% (572 of 685 strings)

Translated using Weblate (Swedish)

Currently translated at 15.7% (108 of 685 strings)

Translated using Weblate (Serbian)

Currently translated at 29.0% (199 of 685 strings)

Translated using Weblate (Serbian (latin))

Currently translated at 29.0% (199 of 685 strings)

Translated using Weblate (Serbian (latin))

Currently translated at 29.0% (199 of 685 strings)

Translated using Weblate (Slovenian)

Currently translated at 51.0% (350 of 685 strings)

Translated using Weblate (Russian)

Currently translated at 85.1% (583 of 685 strings)

Translated using Weblate (Portuguese (Portugal))

Currently translated at 29.0% (199 of 685 strings)

Translated using Weblate (French)

Currently translated at 98.9% (678 of 685 strings)

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Cyril59310 <contact@cyril59310.fr>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Victor Monteiro <victor@bbhost.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: cetteup <cetteup@dasemail.de>
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ar_SY/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/bg/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/da/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/de_CH/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/el/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/es/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/et/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/eu/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fa/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/he_IL/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/hu/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/id/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/it/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ja/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ko/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nb_NO/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/nl/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pl/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_BR/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/pt_PT/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sl/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sr_Latn/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/sv/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/th/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/uk/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/vi/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/
Translation: Uptime Kuma/Uptime Kuma

* Revert autofill mistake

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Co-authored-by: Cyril59310 <contact@cyril59310.fr>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: MrEddX <mreddx@chatrix.one>
Co-authored-by: Victor Monteiro <victor@bbhost.com.br>
Co-authored-by: cetteup <cetteup@dasemail.de>
2023-01-26 00:55:59 +08:00
Louis Lam
8816be24d8 Merge pull request #1892 from Computroniks/feature/#1891-set-ping-packet-size
Added #1891: Set ping packet size
2023-01-25 16:16:43 +08:00
Louis Lam
e3828f09a3 Merge en.js to en.json 2023-01-25 16:13:09 +08:00
Louis Lam
5050ebc249 Merge remote-tracking branch 'origin/master' into feature/#1891-set-ping-packet-size
# Conflicts:
#	server/util-server.js
#	src/languages/en.js
2023-01-25 16:12:33 +08:00
UptimeKumaBot
82f33f4445 Translations update from Uptime Kuma Weblate (#2663)
* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.2% (677 of 682 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 56.4% (385 of 682 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (682 of 682 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (682 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 56.5% (386 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Translated using Weblate (Czech)

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Czech)

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 98.2% (671 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 56.8% (388 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Translated using Weblate (Czech)

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Russian)

Currently translated at 86.2% (589 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/ru/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/tr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (683 of 683 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Added translation using Weblate (Aramaic)

* Added translation using Weblate (Yue)

* Translated using Weblate (Czech)

Currently translated at 100.0% (684 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (684 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/fr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (684 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hans/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 57.6% (394 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Translated using Weblate (Yue)

Currently translated at 0.1% (1 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/

* Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 58.6% (401 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/zh_Hant_HK/

* Translated using Weblate (English)

Currently translated at 100.0% (684 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/en/

* Translated using Weblate (Yue)

Currently translated at 2.0% (14 of 684 strings)

Translation: Uptime Kuma/Uptime Kuma
Translate-URL: https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/yue/

Co-authored-by: 401Unauthorized <yehowahliu@4o1.to>
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
Co-authored-by: test <tori@weblate2.louislam.net>
Co-authored-by: Buchtič <martin.buchta@gmail.com>
Co-authored-by: Michal <black23@gmail.com>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Co-authored-by: Cyril59310 <archas.cyril@hotmail.fr>
Co-authored-by: sovushik <evgeniy@grachev.biz>
Co-authored-by: Ömer Faruk Genç <omer@farukgenc.com>
2023-01-25 02:00:56 +08:00
Louis Lam
a9b7bbcd9e Add 繁體中文 (廣東話 / 粵語) 2023-01-25 01:58:31 +08:00
Louis Lam
edd5592dca Update CONTRIBUTING.md 2023-01-25 01:37:19 +08:00
Louis Lam
e3246a2705 Update README.md 2023-01-25 01:30:58 +08:00
Louis Lam
e1e6227245 Update README.md 2023-01-25 01:29:29 +08:00
Louis Lam
b0e1bb4057 Create README.md 2023-01-25 01:28:10 +08:00
Louis Lam
2a86b43d69 Move notification related language keys to the bottom. 2023-01-25 01:10:25 +08:00
Louis Lam
1dabbd6442 Merge pull request #2666 from chakflying/fix/log-call
Fix: Fix incorrect log call format in docker monitor
2023-01-25 00:22:51 +08:00
Louis Lam
9cc3bd0de4 Avoid the multiple queries for Gamedig monitor 2023-01-25 00:19:54 +08:00
Nelson Chan
c4c720027c Fix: Use correct log call format 2023-01-24 23:47:33 +08:00
Louis Lam
3eab6e8238 Merge pull request #2566 from WhyKickAmooCow/master
Add GameDig monitor
2023-01-24 23:15:29 +08:00
Louis Lam
e637fa4e40 Add language key 2023-01-24 23:09:24 +08:00
Louis Lam
83e0401dd8 Show game list for GameDig monitor 2023-01-24 23:03:01 +08:00
Louis Lam
aab04f6644 Merge remote-tracking branch 'origin/master' into WhyKickAmooCow_master 2023-01-24 19:44:21 +08:00
Louis Lam
2408b1bffa Update README.md 2023-01-24 19:20:35 +08:00
Thomas Spalinger
f155ec9ba8 remember prometheus instance and expose it
in preperation for #2491,#680 and #898
2023-01-24 10:32:49 +00:00
Louis Lam
417efd9711 Update README.md 2023-01-24 18:13:31 +08:00
Faruk Genç
7866d1ec12 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors
# Conflicts:
#	src/languages/en.js
2023-01-24 12:49:12 +03:00
Louis Lam
bf5ac3fc19 Update CONTRIBUTING.md 2023-01-24 16:55:16 +08:00
Louis Lam
434bff6714 Add Help language key 2023-01-24 16:52:36 +08:00
Louis Lam
1d64b0c11b Merge pull request #2662 from YehowahLiu/weblate
Follow-up work of migrating to weblate
2023-01-24 16:36:15 +08:00
401Unauthorized
f125534829 remove WIP 2023-01-24 16:02:43 +08:00
401Unauthorized
ea83af3404 clean up codes 2023-01-24 16:00:51 +08:00
Louis Lam
b05c620ec2 Merge pull request #2611 from YehowahLiu/weblate
Prepare for using Weblate
2023-01-24 15:25:46 +08:00
401Unauthorized
9c4b03aee2 sync language changes from upstream 2023-01-24 15:18:30 +08:00
401Unauthorized
912686a299 Merge from upstream 2023-01-24 15:16:59 +08:00
Cyril59310
ae0ef79060 Update french translation (#2634) 2023-01-24 15:16:18 +08:00
Louis Lam
a2045b59bb Merge pull request #2638 from amworx/master
Arabic language support is now in action ✌️
2023-01-24 14:25:55 +08:00
Louis Lam
8ade7120ff Update src/i18n.js
Co-authored-by: 401Unauthorized <redme@live.cn>
2023-01-24 13:24:42 +08:00
Matthew Nickson
e9044ae956 Removed repetitiion of %
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-23 18:10:45 +00:00
Louis Lam
0c86a4d4e7 Merge pull request #2659 from Buchtic/master
Update cs-CZ.js
2023-01-24 00:13:17 +08:00
401Unauthorized
5683896910 docs: prepare for weblate 2023-01-23 21:06:58 +08:00
Buchtič
b288d71535 Update cs-CZ.js 2023-01-23 10:20:22 +01:00
Abdulrahman Mustafa
861ddc6117 Merge branch 'master' of https://github.com/amworx/uptime-kuma 2023-01-22 21:31:22 +00:00
Abdulrahman Mustafa
1197f881a1 Checked with eslint, with no errors 2023-01-22 21:31:02 +00:00
Abdulrahman Mustafa
211cbd4687 Merge branch 'louislam:master' into master 2023-01-22 23:28:24 +03:00
Faruk Genç
cd017fce98 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-01-22 02:22:59 +03:00
Louis Lam
dd6a76c4cc Merge pull request #2652 from Metatropics/main
Removed superflous 'Message' prefix from Pushover
2023-01-21 22:16:17 +08:00
alejandrohernandezrosales
fa23e7ad19 Removed superflous Message prefix 2023-01-20 23:59:11 -06:00
Faruk Genç
aef85078eb reorder fix 2023-01-20 12:29:56 +03:00
Faruk Genç
86ba6f829e Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors 2023-01-20 12:27:28 +03:00
Louis Lam
6ccf741bc4 Merge pull request #2632 from chakflying/fix/docker-timeout
Fix: Use default timeout & CachebleDnsHttpsAgent for docker monitor
2023-01-19 19:26:40 +08:00
Louis Lam
0a58069742 Merge pull request #2641 from louislam/1.19.X
Merge 1.19.6 to 1.20.X
2023-01-19 14:27:45 +08:00
Abdulrahman Mustafa
316599210d Arabic language support is now in action ✌️ 2023-01-18 19:03:04 +00:00
Louis Lam
2b57b3e863 Update to 1.19.6 2023-01-19 02:17:17 +08:00
Louis Lam
6cd6a2edf0 Fix ping issue on Windows #2636 2023-01-19 02:16:07 +08:00
Matthew Nickson
86bcb85e9b Perform sanity check on uptime for status page
Fixes #2628
A sanity check is performed when calculating the uptime of a monitor on
status page. If it is greater than 100%, we just show 100%. This hasn't
been implemented on the dashboard at the request of @louislam due to
concerns it would make debugging more difficult in future if changes
were made to the uptime calculation.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-18 16:38:55 +00:00
Nelson Chan
6961b1bdd2 Fix: Use default timeout & CachebleDnsHttpsAgent 2023-01-18 09:53:04 +08:00
Louis Lam
54d4c4d3f7 Merge package-lock.json 2023-01-17 21:18:13 +08:00
Louis Lam
c47b6c5995 Merge remote-tracking branch 'origin/1.19.X'
# Conflicts:
#	package-lock.json
#	package.json
#	src/util-frontend.js
2023-01-17 21:17:04 +08:00
Louis Lam
7ef404ccc1 Update to 1.19.5 2023-01-17 20:32:44 +08:00
Louis Lam
a5ff27da7a Drop the property monitor.maintenance, use lastHeartBeat.status to check status instead 2023-01-17 17:34:47 +08:00
Louis Lam
7bb12a7e00 Fix #2608 2023-01-17 17:25:35 +08:00
Louis Lam
27585d0812 Fix #2618 2023-01-17 01:21:01 +08:00
Louis Lam
e675316635 Merge pull request #2586 from PopcornPanda/fix-2544
Fix: Allow long sms in PromoSMS
2023-01-16 13:21:56 +08:00
Louis Lam
b073ec2287 Add Help button which links to wiki 2023-01-16 12:39:24 +08:00
Louis Lam
31f45dcfc9 Merge pull request #2540 from twiggotronix/add-mqtt-schemes
Add mqtt, mqtts, ws and wss protocols to the mqtt monitor
2023-01-15 20:14:11 +08:00
Louis Lam
49ac71e25c Merge pull request #2549 from Computroniks/docs/update-jsdoc-2023-01-05
Added missing JSDoc comments
2023-01-15 13:10:17 +08:00
401Unauthorized
8128c8081b sync language file changes 2023-01-15 10:50:52 +08:00
401Unauthorized
e99652c5a2 sync language file changes 2023-01-15 10:46:29 +08:00
401Unauthorized
ceb7d48118 add convert script 2023-01-15 10:46:29 +08:00
401Unauthorized
bfa32f6b07 comment not allowed in json file 2023-01-15 10:46:29 +08:00
401Unauthorized
ae3a543b3b convert language files to json format 2023-01-15 10:46:29 +08:00
Louis Lam
1a9b013fc2 Merge pull request #2328 from rmarops/mongodb-ping
added MongoDB ping monitor
2023-01-15 01:43:43 +08:00
Louis Lam
1326761a8a Update mongodb and simplify the logic of mongodbPing 2023-01-15 01:36:49 +08:00
Louis Lam
e48a987b9c Merge remote-tracking branch 'origin/master' into mongodb-ping
# Conflicts:
#	server/model/monitor.js
#	server/util-server.js
#	src/pages/EditMonitor.vue
2023-01-15 01:13:11 +08:00
Faruk Genç
cf21aa3737 Fix lint 2023-01-14 16:51:07 +03:00
Faruk Genç
9890a0754b Fix lint 2023-01-14 16:48:26 +03:00
Faruk Genç
15c64d458b Fix lint 2023-01-14 16:48:12 +03:00
Faruk Genç
be850dd596 Merge remote-tracking branch 'remote/master' into feature/add-xml-support-to-http-monitors
# Conflicts:
#	server/database.js
#	server/model/monitor.js
#	src/languages/en.js
2023-01-14 16:40:13 +03:00
Faruk Genç
3adc9e65d6 Add only xml support to http monitors 2023-01-14 16:33:21 +03:00
Louis Lam
712a3c29d4 Fix Postgres monitor do not handle some error cases correctly 2023-01-14 21:06:10 +08:00
Louis Lam
e9497ac1ab Fix knex.js issue 2023-01-14 20:49:34 +08:00
Louis Lam
6437ef198f Merge pull request #2541 from long2ice/master
feat: support redis monitor
2023-01-14 20:16:53 +08:00
Louis Lam
973d5692d0 Merge pull request #2604 from black23/patch-1
Update cs-CZ.js
2023-01-14 13:04:41 +08:00
Louis Lam
468cb004d6 Merge pull request #1690 from chakflying/feat/tags-manager
Feat: Tags Manager
2023-01-13 23:29:01 +08:00
Louis Lam
f7d41a30fa Update src/components/TagEditDialog.vue
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-13 23:15:41 +08:00
black23
0ef686ac2f Update cs-CZ.js
new string
2023-01-13 14:52:03 +01:00
long2ice
3b5893ea60 fix: add preserve line in redisPingAsync 2023-01-13 21:30:10 +08:00
long2ice
21cd4d64c3 fix: redisPingAsync 2023-01-13 19:10:07 +08:00
long2ice
db757123ba refactor: reuse databaseConnectionString 2023-01-13 16:32:49 +08:00
Louis Lam
4dcf31621e Update README.md 2023-01-13 15:34:48 +08:00
Ruben
71f00b3690 Parse push ping parameter with parseInt. 2023-01-12 18:33:39 +01:00
shyneko
e427c70fef Translate fixes 2023-01-12 16:00:02 +02:00
shyneko
27e0b1eea1 Remove required attribute for optional field 2023-01-12 15:52:50 +02:00
Nelson Chan
9c1ba97e7d Chore: Fix typo 2023-01-12 21:25:33 +08:00
Nelson Chan
e9564619f1 Feat: Implement tags manager in settings
Fix: Remove unused color options

Chore: Fix typo
2023-01-12 21:25:33 +08:00
shyneko
521356e38a LINT fixes 2023-01-12 15:21:56 +02:00
shyneko
b91fe9d96d Added a more telegram options
such as thread id, silent notifications and forward protect
2023-01-12 15:09:05 +02:00
Sebastian Kaempfe
a21a47de93 [#2593] renamed the method sendCertNotification to better represent what id does. Evaluate certificate expiry from all certs in chain. Send a separate notification for every cert in chain, including cert type and CN. 2023-01-12 11:39:36 +01:00
Sebastian Kaempfe
f6d0f28b3a [#2593] during certificate evaluation also set the cert type for improved notifications 2023-01-12 11:34:37 +01:00
Łukasz Szczepański
8433bceb32 Trim message to maximum allowed length 2023-01-12 08:14:31 +01:00
Louis Lam
98d001b38b Merge pull request #2575 from Joseph-Irving/victorops_notifications
Add Splunk Notification Provider
2023-01-12 14:15:36 +08:00
Nelson Chan
0ed3dd5e4f Fix: Add support for pending in badges 2023-01-12 04:14:46 +08:00
Louis Lam
d9f12a6376 Fallback to /bin/ping if ping is not found 2023-01-12 01:05:16 +08:00
Łukasz Szczepański
56ba133a1f Missing semicolon 2023-01-11 14:36:33 +01:00
Łukasz Szczepański
ec30147a7f Add option for allowing long sms in PromoSMS 2023-01-11 14:32:57 +01:00
Sjouke de Vries
6de0c6a90c chore: remove yarn lockfile and add it to gitignore 2023-01-11 14:25:54 +01:00
David Twigger
2bc165379a Add unit test for hostNameRegexPattern 2023-01-11 13:28:30 +01:00
Luke
2172112144 Setting for allowing long sms 2023-01-11 12:13:47 +01:00
Luke
ecd661c801 Allow long sms in PromoSMS 2023-01-11 12:06:09 +01:00
twiggotronix
8fab7112a1 Merge branch 'louislam:master' into add-mqtt-schemes 2023-01-11 10:34:24 +01:00
Louis Lam
cc4ed308b0 Merge pull request #2581 from twiggotronix/add-frontend-unit-tests
Add frontend unit tests
2023-01-11 13:36:20 +08:00
Louis Lam
362280af14 Merge pull request #2578 from DimitriDR/master
Updating French localization
2023-01-10 22:48:20 +08:00
Nelson Chan
21b418230c Chore: reorder cases
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2023-01-10 19:25:31 +08:00
David Twigger
636fc8fcfc Fix workflow 2023-01-10 08:43:39 +01:00
David Twigger
1c05ba09dc Add cypress unit tests to workflow 2023-01-10 08:24:15 +01:00
David Twigger
1565da87cf Implement cypress unit testing 2023-01-10 08:18:48 +01:00
Matthew Nickson
66d5408aad Added DB schema for api keys
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-09 20:20:09 +00:00
DimitriDR
890e3abf58 Updating French localization
Signed-off-by: DimitriDR <dimitridroeck@gmail.com>
2023-01-09 21:09:57 +01:00
Matthew Nickson
6e50784b6b Merge branch 'master' into feature/#2365-allow-markdown-in-status-page-footer 2023-01-09 20:03:11 +00:00
Joseph Irving
33355c51b7 Add Splunk Notifications 2023-01-09 13:33:10 +00:00
Louis Lam
5f5c2d7c46 Update to 1.19.4 2023-01-09 21:02:57 +08:00
Louis Lam
71f4ab0aa6 Improve dockerfile 2023-01-09 21:01:45 +08:00
Louis Lam
24d1dd4c34 [auto-test] Drop Node.js 17, add 19 2023-01-09 20:24:20 +08:00
Sjouke de Vries
94b69935fe chore(server): remove comments from status-page router 2023-01-09 11:16:47 +01:00
Sjouke de Vries
3f30feaefb feat(server): add badge for overall status of status-page 2023-01-09 11:04:32 +01:00
Louis Lam
c00abac834 Separate golang build layer 2023-01-09 13:43:08 +08:00
Louis Lam
439f963749 Merge pull request #2569 from Computroniks/bug/2565-negative-retention-value
Fixed negative retention time values
2023-01-09 13:08:35 +08:00
Louis Lam
f15c6470af Merge pull request #2543 from SlothCroissant/master
Removed redundant title in Pushover notification
2023-01-09 12:50:55 +08:00
Matthew Nickson
80f2d6e2a7 Added markdown support for maintenance
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-08 20:54:16 +00:00
Matthew Nickson
852a088529 Added mardown support for incident
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-08 20:46:18 +00:00
Matthew Nickson
6bc0bd84af Allowed markdown in footer of status page
Markdown support has been added using the marked module. To secure
against XSS attacks, DOMPurify is used to sanitize the generated HTML
before it is loaded on the page.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-08 20:39:27 +00:00
Matthew Nickson
32f7a0084a Fixed negative retention time values
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-08 19:09:06 +00:00
SlothCroissant
f8658d6160 Removed redundant title in Pushover notification 2023-01-08 10:32:16 -06:00
Nelson Chan
dd82f36da3 Fix: Improve syntax & fix weird label logic 2023-01-09 00:16:18 +08:00
Adam Spurgeon
774d754b21 Add GameDig monitor 2023-01-08 21:43:30 +13:00
Louis Lam
d596f8f7eb Merge pull request #2560 from DimitriDR/master
Adding translations for Kook & ZohoCliq
2023-01-08 14:03:35 +08:00
Louis Lam
23a525e36a Update CONTRIBUTING.md 2023-01-08 00:42:15 +08:00
Louis Lam
221d1d40f5 Update CONTRIBUTING.md 2023-01-08 00:32:13 +08:00
Louis Lam
60ec87941e Merge pull request #2552 from MrEddX/bulgarian
Update bg-BG.js
2023-01-08 00:10:18 +08:00
DimitriDR
e8e4361e09 Adding translations for Kook & ZohoCliq 2023-01-07 13:10:25 +01:00
Matthew Nickson
fe03170540 [empty commit] pull request for #1685 Add API key for metrics page 2023-01-06 20:41:25 +00:00
Matthew Nickson
d6c91869af Reverted changes to en.js
Some changes were carried over in the merge

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-06 20:15:16 +00:00
Matthew Nickson
5d6770c0db Removed excess space around function
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-06 20:12:21 +00:00
Matthew Nickson
7a13b959a3 Updated to match changes in #2223
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-06 20:09:40 +00:00
Matthew Nickson
675806829c Changed wording for safeDelete function JSDoc 2023-01-06 17:17:37 +00:00
Louis Lam
21c1921867 Update server/uptime-kuma-server.js
Co-authored-by: 琚致远 / Zhiyuan Ju <juzhiyuan@apache.org>
2023-01-06 23:04:02 +08:00
David Twigger
e490ec6d29 move hostname regex pattern function to frontend-utils 2023-01-06 11:00:20 +01:00
MrEddX
7ad4392529 Update bg-BG.js
Translation Updated
2023-01-06 09:00:45 +02:00
Louis Lam
f3d3e064f8 Merge pull request #2538 from deluxghost/master
Updated zh-CN.js
2023-01-06 10:46:37 +08:00
Louis Lam
80c91b8234 Merge pull request #2546 from Computroniks/bug/#2419-padding-around-clear-data-dropdown
Fixed #2419 Styling of clear data dropdown
2023-01-06 10:34:55 +08:00
Matthew Nickson
dc8289df12 Added JSDoc for src/
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-05 22:55:51 +00:00
Matthew Nickson
caff9ca736 Added JSDoc for server/
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-05 22:19:05 +00:00
Matthew Nickson
c7eb72e73b JSDoc for extra/
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-05 19:57:28 +00:00
Matthew Nickson
fc5ec5f492 Fixed styling of clear data dropdown
Fixed #2419

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-05 19:24:29 +00:00
long2ice
40ebc2df79 feat: support redis monitor 2023-01-05 23:02:56 +08:00
David Twigger
abf5e435fe move to utility function 2023-01-05 14:48:12 +01:00
David Twigger
8a372201f1 clean up 2023-01-05 14:23:05 +01:00
twiggotronix
8ec240fe19 Merge branch 'louislam:master' into add-mqtt-schemes 2023-01-05 14:08:05 +01:00
David Twigger
5362aab0e5 specify scheme for mqtt monitor type only 2023-01-05 14:06:13 +01:00
Louis Lam
bc7271b99c Merge pull request #2372 from SirMorfield/docker-compose
Fix spelling in README
2023-01-05 21:04:01 +08:00
Louis Lam
4ebf5a5f07 Update README.md 2023-01-05 21:03:28 +08:00
Louis Lam
fbceefec36 Merge pull request #2223 from Computroniks/feature/remove-hardcoded-ping-path
feat: Change ping module to danielzzz/node-ping
2023-01-05 20:40:41 +08:00
Louis Lam
0b959514f8 Fix timeout 2023-01-05 20:38:37 +08:00
Louis Lam
4c5e2ea237 Update CONTRIBUTING.md 2023-01-05 20:03:28 +08:00
Louis Lam
7d92351568 Match previous settings 2023-01-05 19:30:55 +08:00
Louis Lam
494c53971c Convert to UTF8 on Windows only 2023-01-05 19:22:15 +08:00
David Twigger
fc1914bccd Fix lint 2023-01-05 11:42:19 +01:00
Louis Lam
4239cf4255 Pin dependency of ping 2023-01-05 17:11:37 +08:00
David Twigger
c196c34840 Add mqtt, mqtts, ws and wss protocols to the mqtt monitor 2023-01-05 08:57:48 +01:00
DX
554402b484 Updated zh-CN.js 2023-01-05 15:38:51 +08:00
Louis Lam
b049e4e1b4 Merge pull request #2534 from furkanipek/tr-lang-update
Update tr-TR.js
2023-01-05 14:21:30 +08:00
Matthew Nickson
90a2668272 Restructured condition + ensure data is UTF-8
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-04 17:32:27 +00:00
Louis Lam
49b5de7d40 Update Apprise to 1.2.1 2023-01-05 00:48:49 +08:00
Matthew Nickson
69e1880cd3 Added not active condition to prevent false error
Added a check to see if the host is alive. This prevents failiures when
the user specifies a hostname of `unknown`.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2023-01-04 16:46:36 +00:00
Furkan İpek
610b6248aa Update tr-TR.js 2023-01-04 16:41:00 +03:00
Furkan İpek
e591647b60 Update tr-TR.js 2023-01-04 16:35:48 +03:00
Louis Lam
da99833d4c Merge pull request #2528 from chakflying/fix/tag-validation
Fix: Fix incorrect add tag form validation
2023-01-04 16:11:05 +08:00
Louis Lam
4bf23fdd1a Update jsonwebtoken from ~8 to ~9 2023-01-04 15:55:36 +08:00
Louis Lam
f99a64da67 Run npm update 2023-01-04 15:48:09 +08:00
Louis Lam
2e022789f6 Merge pull request #2527 from chakflying/fix/docker-down
Fix: Fix incorrect handling for container down
2023-01-04 15:33:59 +08:00
Matthew Nickson
73835f3328 Changed from ping-lite to ping module
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>

#Fixes 2126
2023-01-03 20:03:36 +00:00
Matthew Nickson
4819112e25 Merge remote-tracking branch 'origin/master' into feature/remove-hardcoded-ping-path 2023-01-03 19:10:17 +00:00
Joppe Koers
2d3fd738e4 Fix small spelling mistake 2023-01-03 15:37:32 +01:00
Nelson Chan
edd8fe2e22 Fix: Fix incorrect tag form validation 2023-01-03 22:18:45 +08:00
Nelson Chan
204792dd2d Fix: Fix incorrect handling for container down 2023-01-03 22:07:14 +08:00
Nelson Chan
942b55ca03 Fix: Add support for maintenance in badges 2023-01-03 21:45:55 +08:00
Louis Lam
b8e8c1b9db Update to 1.19.3 2023-01-03 18:05:19 +08:00
Louis Lam
0cead83705 Fix #2516 2023-01-03 14:50:41 +08:00
Louis Lam
7b0093b8b3 Merge pull request #2514 from lionep/patch-1
Improve french translation
2023-01-03 13:14:25 +08:00
Mathias Haugsbø
239910a27c Change clone icon from plus to clone
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2023-01-02 13:17:38 +01:00
lionep
cd7e362b81 Improve french translation
Set "Not available, please setup" translation more accurate, because it's in use in notifications and proxies page.
2023-01-02 08:46:42 +01:00
Arniwatt Chonkiattipoom
a8af2a418e Slack notification block not working (#1958)
* [empty commit] pull request for slack notification

* Add attachments block for slack notification

* chore: update action button in new attachment block

* chore: loop in attachments to push blocks

* chore: missing semicolon

Co-authored-by: pruekanw <arniwatt.c@linecorp.com>
2023-01-02 15:01:50 +08:00
Louis Lam
39ac9b887e Fix #2504 2023-01-01 22:27:14 +08:00
Louis Lam
28c3291020 Merge pull request #2513 from louislam/revert-2433-mathias/Auth-case-insensitive-login
Revert "Auth: Case insensitive login check on username"
2023-01-01 22:19:27 +08:00
Louis Lam
50711391d1 Revert "Auth: Case insensitive login check on username" 2023-01-01 22:19:00 +08:00
Louis Lam
e88e10cc8e Fix #2494 2023-01-01 21:43:54 +08:00
Louis Lam
27146ffeef Merge pull request #2433 from mathiash98/mathias/Auth-case-insensitive-login
Auth: Case insensitive login check on username
2023-01-01 14:16:59 +08:00
Louis Lam
41a9f2ff8a Merge pull request #2495 from minhhoangvn/fix/update-service-name-grpc
Bug fix: gRPC check throws errors when response data size > 50 chars
2023-01-01 13:57:10 +08:00
Louis Lam
cd7a6e4019 Merge pull request #2478 from YehowahLiu/master
Add Kook notification provider
2023-01-01 02:53:03 +08:00
Louis Lam
8bb064c6fa Merge pull request #2157 from Mikkel-T/fix-discord-embed
Improve the URL field in Discord embeds
2022-12-31 22:41:40 +08:00
Louis Lam
1006fbd873 A possible fix for #2447 2022-12-30 13:46:53 +08:00
Louis Lam
5554432b31 Merge pull request #2377 (Zoho Cliq Notification Provider)
Zoho Cliq Notification Provider
2022-12-29 19:00:50 +08:00
minhhoang
d111db0321 fix: add accurate error message when user input invalid service name or method name 2022-12-29 08:10:58 +07:00
minhhoang
4147a4c404 fix: #2480 2022-12-28 22:31:33 +07:00
Louis Lam
8c684e9293 Update SECURITY.md 2022-12-28 19:59:33 +08:00
Louis Lam
f025de6eaf Merge pull request #2490 from 5idereal/patch-1
update zh-TW.js
2022-12-28 18:17:10 +08:00
Ruben
9404efd86d Fixed the metrics for the push type. 2022-12-28 10:37:25 +01:00
5idereal
7f394d0630 update zh-TW.js 2022-12-28 17:29:46 +08:00
Louis Lam
9fe9e235ca Merge pull request #2236 from mishankov/fix/stats-30-days
Simple fix for Uptime component
2022-12-28 15:37:46 +08:00
Mathias Haugsbø
4d0bdae6bf Add jsdoc for Tag type
Does not work properly but is still useful
2022-12-27 23:27:23 +01:00
Mathias Haugsbø
608e3f5582 Feature: Clone existing monitor
Closes #565
Closes #2319

Adds the feature of cloning existing monitor, I have briefly tested it with ping and https and ensured that all properties was cloned including notifications.
2022-12-27 23:26:05 +01:00
401Unauthorized
50b84f5f45 fix code style: add missing semicolon 2022-12-27 14:12:22 +08:00
401Unauthorized
c60b741406 Add kook notification provider 2022-12-27 14:12:22 +08:00
thefourCraft
f6ea1fe9a5 he-IL (#2460) 2022-12-27 14:04:53 +08:00
Louis Lam
b7e3ec2372 Merge pull request #2476 from DimitriDR/master
Huge improvement for French localization.
2022-12-27 14:02:25 +08:00
DimitriDR
625fd7c2aa Huge improvement for French localization. 2022-12-27 01:02:43 +01:00
Louis Lam
aec80b53d5 Update to 1.19.2 2022-12-27 00:22:52 +08:00
Louis Lam
06852bbf0d Fix the UI broken after removed a monitor 2022-12-27 00:22:09 +08:00
Louis Lam
056d957c1e Update to 1.19.1 2022-12-26 23:49:20 +08:00
Louis Lam
e12225e595 Fix #2475 #2468 #2455, add Accept-Encoding only if encountered the abort error 2022-12-26 21:00:46 +08:00
Louis Lam
1b6c587cc9 Fix #2472 2022-12-26 14:46:29 +08:00
Louis Lam
4a1db336df Merge pull request #2465 from augustin64/patch-1
(fr) Fix typo
2022-12-25 19:18:46 +08:00
Augustin
9e9c5cd1d2 (fr) Fix typo 2022-12-24 19:41:55 +01:00
Louis Lam
1e689d99b4 Merge pull request #2393 from zImPatrick/discord-docker-fix
Fix discord notification not sending when docker container goes down
2022-12-24 14:26:53 +08:00
Louis Lam
14fffcf06b Globally fix if heartbeatJSON["msg"] is undefined 2022-12-24 14:23:50 +08:00
Louis Lam
6962e056ce Update to 1.19.0 2022-12-23 22:44:49 +08:00
Louis Lam
b7a898326e Merge pull request #2437 from MrEddX/bulgarian
Update bg-BG.js
2022-12-19 20:22:47 +08:00
MrEddX
a89be0e6d4 Update bg-BG.js
Translation Update
2022-12-19 13:37:42 +02:00
Mathias Haugsbø
b3ac7c3d43 Username case insensitive, patch db instead of using LIKE 2022-12-19 12:18:33 +01:00
Mathias Haugsbø
c79b2913a2 Auth: Case insensitive login check on username
Allows users to add users with capital letters and then login with just lowercase letters.

We accidentally capitalized the first letter of our username so the other people using it frequently thinks they wrote the wrong password.
2022-12-18 17:16:19 +01:00
Louis Lam
b58b83541b Merge pull request #2428 from rbunpat/master
Update th-TH.js
2022-12-18 15:40:40 +08:00
Cyril59310
df4f91c20d Update EN language (#2429)
* Update EN language
2022-12-18 15:39:54 +08:00
Rachatat Bunpat
fc6b040a4e Update th-TH.js 2022-12-17 17:34:03 +07:00
Louis Lam
9838f36b50 Merge pull request #2418 from Johno95CZ/patch-1
Update cs-CZ.js
2022-12-17 17:44:55 +08:00
Louis Lam
a60072adbc Merge pull request #2423 from rbunpat/master
Update th-TH.js
2022-12-17 17:43:51 +08:00
Louis Lam
e7aeb6f6bf Merge pull request #2422 from Justman10000/master
Update
2022-12-17 17:43:25 +08:00
Rachatat Bunpat
06e570c52d Update th-TH.js 2022-12-16 19:15:14 +07:00
Justman10000
890b8f8333 Updated German 2022-12-16 10:42:41 +00:00
Louis Lam
df21f7da76 Check login for initServerTimezone 2022-12-16 12:56:40 +08:00
Joppe Koers
3ea6711053 Remove docker compose again 2022-12-15 23:03:06 +01:00
JohnoCZ
20c37a70f7 Update cs-CZ.js 2022-12-15 14:35:59 +01:00
Louis Lam
b75db27658 Fix lint 2022-12-15 13:57:28 +08:00
Louis Lam
765d8e1297 Fix #2318 2022-12-15 13:39:48 +08:00
Louis Lam
9dc2cc1f0d Copy timezone.js from dayjs 2022-12-15 13:05:04 +08:00
Louis Lam
2532becf61 Update to 1.19.0-beta.2 2022-12-14 23:37:00 +08:00
Louis Lam
6154776b34 Merge pull request #2409 from Justman10000/master
Update
2022-12-14 22:39:00 +08:00
Louis Lam
7e6b92203d Merge pull request #2406 from MrEddX/bulgarian
Bulgarian
2022-12-14 22:38:13 +08:00
Louis Lam
1da00d19fd Try to fix incorrect header check 2022-12-14 21:34:13 +08:00
Justman10000
da4bdab4f6 Updated german 2022-12-14 13:16:32 +00:00
MrEddX
86ab97ef56 Update bg-BG.js
Translation Update
2022-12-14 09:56:28 +02:00
MrEddX
345b0c1829 Update bg-BG.js
Fixed Style
2022-12-14 09:49:31 +02:00
MrEddX
2ac87fcea7 Update bg-BG.js
Fixed Typos
2022-12-14 09:26:43 +02:00
Cyril59310
4862bec965 Update Fr language + added variable for missing translation (#2395)
* Update FR language
2022-12-13 22:00:54 +08:00
Louis Lam
aa784fb3b2 Fix #2394 2022-12-13 16:48:23 +08:00
Louis Lam
466b403a96 Handle unexpected error of checkCertificate 2022-12-13 02:21:12 +08:00
zImPatrick
f32441e2f6 fix discord notification not sending when docker container is down 2022-12-12 18:05:10 +01:00
Louis Lam
39987ba9ac Init server timezone 2022-12-12 22:57:57 +08:00
Louis Lam
3b87209e26 Add configurable dns cache 2022-12-12 17:19:22 +08:00
Louis Lam
e6dc0a0293 Slightly improve maintenance page's css on mobile 2022-12-12 16:06:17 +08:00
Louis Lam
5c5a339a36 Add links for status pages and maintenance for mobile (Fix #2257) 2022-12-12 15:54:46 +08:00
Louis Lam
3040bd41d9 Speed up armv7 build time of healthcheck by using go compiler cross-build feature in the host 2022-12-12 15:42:00 +08:00
Louis Lam
3b58fd3b3c Cache uptime 2022-12-11 21:33:26 +08:00
Louis Lam
bc86f8bb5f Reset busy_timeout to default 2022-12-11 20:25:15 +08:00
Louis Lam
ab5f6dc82c Fix css 2022-12-11 18:52:24 +08:00
Louis Lam
5176fd02c1 Fix healthcheck do not check https 2022-12-10 23:30:32 +08:00
Louis Lam
02b5cae577 Fix #2371 by left join maintenance_timeslot 2022-12-09 21:03:12 +08:00
Louis Lam
54aa7d5dca Merge remote-tracking branch 'origin/master' 2022-12-08 23:22:09 +08:00
Louis Lam
4cd5b5563f Fix #1145 2022-12-08 23:21:55 +08:00
Louis Lam
f1c30204b6 Merge pull request #2373 from saw303/master
Fixed some typos in the German translations 🇩🇪🇨🇭
2022-12-08 23:01:48 +08:00
panos
9da28fbbc7 zoho cliq code style 2022-12-08 13:56:02 +02:00
panos
851a04b082 zoho cliq code style 2022-12-08 13:53:02 +02:00
panos
68bc7ac421 zoho cliq code style 2022-12-08 13:41:05 +02:00
panos
73bfdb9ef9 zoho cliq notification provider 2022-12-08 13:32:10 +02:00
Louis Lam
e478084ff9 Fix Uptime Kuma cannot be stopped 2022-12-08 19:13:47 +08:00
Louis Lam
2dff7dd380 Make dockerfile slightly clear and improve the build flow 2022-12-08 18:29:17 +08:00
Louis Lam
9bfa43100b Compile healthcheck.go 2022-12-08 18:29:17 +08:00
Louis Lam
ad5e1957b1 Deprecate healthcheck.js 2022-12-08 18:29:17 +08:00
Louis Lam
cc68ebca39 Convert healthcheck.js into go-lang 2022-12-08 18:29:17 +08:00
Silvio Wangler
aa27d976c2 Fixed some typos in the German translations 🇩🇪🇨🇭 2022-12-07 09:10:05 +01:00
Louis Lam
ecbc0f0477 Merge pull request #2369 from saw303/master
Added new language German (Switzerland)
2022-12-07 15:14:52 +08:00
Joppe Koers
f8c7da7995 Add docker-compose to README 2022-12-06 18:44:16 +01:00
Joppe Koers
f3660a0cec Fix spelling in README 2022-12-06 18:43:28 +01:00
Silvio Wangler
92caec95fe Added new language German (Switzerland) 2022-12-06 13:43:37 +01:00
Louis Lam
2c3abdc146 [stale-bot] Do not close pr 2022-12-05 20:11:28 +08:00
Louis Lam
b1170211b7 Update to 1.19.0-beta.1 2022-12-05 19:24:04 +08:00
Louis Lam
eadf2c810a Fix check version 2022-12-05 19:17:24 +08:00
Louis Lam
8aa97635ec Improve the clear filter button 2022-12-05 18:21:16 +08:00
Louis Lam
ee1a56caae Update /test-webhook and reevaluate sensitive fields 2022-12-05 18:18:19 +08:00
Louis Lam
e886df4788 Fix typo 2022-12-05 17:55:45 +08:00
Louis Lam
5196abfd36 Merge remote-tracking branch 'origin/master' into feat/add-auth-header-to-webhook-notification-#1919 2022-12-05 17:52:02 +08:00
Louis Lam
3e68cf2a1c Specify Accept-Encoding for axios request (Fix #2253) 2022-12-04 22:55:05 +08:00
Louis Lam
0ab82e6de3 Generate random nightly version 2022-12-04 22:44:50 +08:00
Louis Lam
8cdbe37f6f Update core-js 2022-12-04 21:41:08 +08:00
Nikita Lutsenko
da16796ec4 Add ability to send Telegram notifications silently. 2022-12-03 23:10:56 -08:00
Louis Lam
28d13e198c Merge pull request #2350 from MrEddX/bulgarian
Bulgarian
2022-11-26 20:52:33 +08:00
MrEddX
14a062804e Update bg-BG.js
- Translation fixes
2022-11-25 22:00:52 +02:00
MrEddX
cf3e03ab40 Update bg-BG.js
- Added new  fields
- Translated new fields
- Fixed some typos
2022-11-25 21:56:00 +02:00
Louis Lam
191f3ad53b Merge pull request #2339 from jbrunner/fix-2296
Add socks5h support
2022-11-25 16:24:21 +08:00
Louis Lam
370d522920 Pin dependency of axios-ntlm to 1.3.0. As 1.3.1 causes error 2022-11-25 14:00:33 +08:00
Louis Lam
e0a1ad8a1c Update dependencies and drop start-server-watch-dev as it is unstable 2022-11-25 01:32:33 +08:00
Louis Lam
9720006934 Merge pull request #2151 from Computroniks/feature/#1817-add-mysql-monitor
Feat  Add MySQL/MariaDB monitor #1817
2022-11-25 01:27:40 +08:00
Joshua Brunner
cd270bd8b5 Add socks5h support
Add socks5h support as an extra option to not break previous socks5 implementation.
Allows to toggle between socks5 and socks5h explicit.

Fixes #2296
2022-11-22 11:18:16 +01:00
Louis Lam
bc3229828e Merge remote-tracking branch 'origin/master' 2022-11-20 00:11:38 +08:00
Louis Lam
a5f23b9839 Update Apprise from 1.0 to 1.2 2022-11-20 00:07:19 +08:00
Matthew Nickson
2052fa175f Merge branch 'master' into feature/#1817-add-mysql-monitor
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-11-17 19:04:14 +00:00
Matthew Nickson
15b63c82c3 Merge remote-tracking branch 'upstream/master' into feature/#1817-add-mysql-monitor
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-11-17 18:46:58 +00:00
Matthew Nickson
b053bc61ce Fixed MySQL monitor to close connection
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-11-17 18:34:02 +00:00
rmarops
0e30843a75 fixed lint check missing semicolon 2022-11-16 22:27:18 -05:00
rmarops
2103edb604 moved client close out of finally block and fixed linting errors 2022-11-16 22:21:15 -05:00
rmarops
b059a36e66 added MongoDB ping monitor 2022-11-16 20:50:34 -05:00
Jan Hartje
258ff56962 Merge branch 'louislam:master' into feat/add-auth-header-to-webhook-notification-#1919 2022-11-14 20:17:36 +01:00
Louis Lam
cb4e512dc6 Merge pull request #2316 from Dafnik/patch-fix-link-preview-description
Fix 'undefined' in link preview generation
2022-11-15 02:37:28 +08:00
Dafnik
4042c26390 Fix 'undefined' in link preview generation 2022-11-14 18:05:52 +01:00
Louis Lam
5da2315534 Merge pull request #2310 from Ealrang/patch-1
Update zh-CN.js
2022-11-14 22:02:43 +08:00
Ealrang
204015f1f5 Update zh-CN.js
Correct typos
2022-11-12 22:15:04 +08:00
Louis Lam
cc6d17d2e0 Merge pull request #1964 from minhhoangvn/feat/add-gRPC-protocol
Feat/add gRPC protocol
2022-11-11 12:34:35 +08:00
Louis Lam
68862c0b3f Fix Pushbullet do not handle general message correctly and fix name convention (Close #1890) 2022-11-01 20:27:40 +08:00
Louis Lam
fd15e7c2dc Merge remote-tracking branch 'origin/master' into ntfy-icon
# Conflicts:
#	server/notification-providers/ntfy.js
#	src/components/notifications/Ntfy.vue
#	src/languages/en.js
2022-10-31 17:10:20 +08:00
Louis Lam
5c4cf68937 Merge pull request #2260 from m-kiszka/smseagle
Added support for SMSEagle device API notifications
2022-10-31 17:03:34 +08:00
Louis Lam
214ddc264d Fix mistake 2022-10-29 23:40:09 +08:00
Louis Lam
2ea71839d1 Add npm run start-server-watch-dev for watching server code changes and restart (Node.js 19 only) 2022-10-29 23:37:05 +08:00
Louis Lam
54efde8185 Update socket.io and remove an useless event listener 2022-10-29 23:29:33 +08:00
Louis Lam
705124d4ac Merge pull request #2274 from 5idereal/patch-1
update zh-tw translation
2022-10-28 16:50:24 +08:00
5idereal
1cb6940590 update zh-tw translation 2022-10-28 15:50:00 +08:00
Louis Lam
0f8ad288f3 Merge pull request #2255 from b-reich/update-german-translation
Add german translations
2022-10-27 16:47:11 +08:00
Adam Stachowicz
434174d350 I18n PL update (#2264)
* [PL] Only formatting by ESLint for now

* Translate new i18n keys to polish + small grammar/typo fixes

* ESLint again after npm install...
2022-10-27 16:46:32 +08:00
minhhn3
3d1237ed53 fix: resolve conflict 2022-10-26 20:50:34 +07:00
minhhn3
b459408b10 fix: resolve conflict 2022-10-26 20:41:21 +07:00
Benjamin Reich
f04fe4d230 add new german translations 2022-10-25 10:50:58 +02:00
Louis Lam
e579610426 Merge pull request #2265 from Saibamen/patch-1
Add info about `npm install` to translators
2022-10-25 14:32:43 +08:00
Louis Lam
b115d3f8b9 Merge pull request #2266 from Saibamen/fix_linters
Fix 'dayjs' is never used warning
2022-10-25 14:23:59 +08:00
Adam Stachowicz
134b3b8ac1 Fix 'dayjs' is never used warning 2022-10-25 01:27:25 +02:00
Adam Stachowicz
e7e7751e7b Correct order 2022-10-24 23:38:38 +02:00
Adam Stachowicz
5cd58e6fa3 Add info about npm install to translators
Without this, you can have wrong indentation from ESLint
2022-10-24 23:36:21 +02:00
Marcin Kiszka
08763b700a Added support for SMSEagle device API notifications 2022-10-24 12:45:56 +02:00
Marcin Kiszka
781f855921 [empty commit] pull request for Added support for SMSEagle device API notifications 2022-10-24 12:44:29 +02:00
Matthew Nickson
4339ca7eb5 Merge branch 'master' into feature/#1891-set-ping-packet-size 2022-10-22 16:22:28 +01:00
Louis Lam
9e81fe120f Merge pull request #2235 from dave9123/patch-3
Update id-ID.js
2022-10-20 15:57:39 +08:00
Denis Mishankov
7313aa6563 fix spaces 2022-10-17 20:36:52 +03:00
Denis Mishankov
c7871427c3 compute title value 2022-10-17 20:20:51 +03:00
Dave
c0e67b6de9 Update id-ID.js 2022-10-17 20:09:25 +07:00
Louis Lam
a17084f75d Merge pull request #2229 from falentio/fix-id-lang
fix typos in id lang
2022-10-16 16:25:35 +08:00
Louis Lam
e4fe7b802a Update bg-BG.js #2228 2022-10-16 16:24:39 +08:00
falentio
5761bc9b90 fix typos in id lang 2022-10-16 13:49:25 +07:00
MrEddX
92ea019fd4 Update bg-BG.js
- Added new  fields
- Translated new fields
2022-10-16 07:21:23 +03:00
Cyril59310
a774b37369 Update FR language + fixed daytime error (#2226)
* Update FR language

* fix a daytime error + add for translation

* Update language file FR + fixed daytime error
2022-10-16 01:42:28 +08:00
Louis Lam
06755f249d Update to 1.19.0-beta.0 2022-10-15 21:02:56 +08:00
Louis Lam
64f84eb118 Update Details.vue's button styles 2022-10-15 21:01:48 +08:00
Louis Lam
afe12ccf24 A complete maintenance planning system (#1213)
A complete maintenance planning system from karelkryda/master
2022-10-15 20:54:28 +08:00
Louis Lam
6f4424de28 Remove unused language keys 2022-10-15 20:44:02 +08:00
Louis Lam
24cb212a37 Fix recurring 2022-10-15 20:15:50 +08:00
Louis Lam
d8a676abb6 Implement recurring day of month and day of week 2022-10-15 18:49:09 +08:00
Louis Lam
0b8d4cdaac Generate Next Timeslot for recurring interval 2022-10-15 17:17:26 +08:00
Louis Lam
268cbdbf8d Merge remote-tracking branch 'origin/master' into maintenance
# Conflicts:
#	server/server.js
#	src/components/settings/General.vue
2022-10-15 15:57:39 +08:00
Louis Lam
b60dde0b2d Update SQLite 2022-10-15 15:18:54 +08:00
Louis Lam
aecf95864e Add index for maintenance tables 2022-10-14 13:26:41 +08:00
Louis Lam
c662d259b0 Firefox Better Support #2206 2022-10-13 19:28:02 +08:00
Matthew Nickson
6b47ad07ca [empty commit] pull request for #2126 remove hardcoded ping 2022-10-12 22:03:05 +01:00
Matthew Nickson
f459ea845c Added #2182 Add support for custom radius ports (#2197)
This commit adds support for the port to be specified when using the
radius monitor type. A check has been implemented to ensure that a null
value is not passed to the radius check function as could occur with
monitors that were created before this change was introduced. The
default port of 1812 is displayed when the user selects the radius
monitor in much the same way as the DNS port is handled. The port was
not included in the hostname in the form hostname:port in order to avoid
issues with IPv6 addresses and monitors that had been created before
this change was implemented.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-10-13 00:32:05 +08:00
Louis Lam
b24c75eec5 Merge pull request #2162 from UltraWelfare/fix-entry-page-redirect
Fixed entry route not redirecting correctly.
2022-10-13 00:28:34 +08:00
MagicFun1241
cb5f90aa89 Update Russian locale (#2218)
* Update ru-RU.js

* Remove duplicates

* Remove duplicates x2

* Revert to previous version for one translation

* Removed conflicting lines

* Remove conflicting 'Reverse Proxy' key
2022-10-13 00:27:50 +08:00
Louis Lam
edacff123b Add UTC in the serverTimezone dropdown 2022-10-12 22:13:07 +08:00
Louis Lam
2faf866e9e Implement generateTimeslot() for recurring interval type 2022-10-12 17:02:16 +08:00
Louis Lam
8cc3e4b7c1 Revert 2022-10-11 22:28:00 +08:00
Louis Lam
7b9766091e Revert testing 2022-10-11 22:18:09 +08:00
Louis Lam
d95e722658 Init dayjs for backend.spec.js 2022-10-11 22:09:18 +08:00
Louis Lam
39b6725163 Update maintenance tables 2022-10-11 21:48:43 +08:00
Louis Lam
dfb75c8afb Update status page's maintenance message 2022-10-11 20:56:48 +08:00
Louis Lam
e07aa982c3 WIP 2022-10-11 18:23:17 +08:00
Christian Meis
1e8a16504b Make icon optional for ntfy notificaation provider. Add Icon header to ntfy request only, if icon is actually defined. 2022-10-11 11:15:33 +02:00
Alexander Borzov
180d881ac1 Update ru-RU.js (#2217) 2022-10-11 15:35:08 +08:00
Louis Lam
2271ac4a5a Add info.serverTimezoneOffset and improve some styles 2022-10-11 14:52:47 +08:00
Louis Lam
f6bbd1ca67 Merge remote-tracking branch 'origin/master' into maintenance 2022-10-11 14:13:08 +08:00
Louis Lam
d5c02fc627 Update Maintenance list order by status 2022-10-11 01:59:47 +08:00
Louis Lam
c84de4d259 WIP: Add maintenance status 2022-10-11 01:45:30 +08:00
Louis Lam
c1ccaa7a9f WIP 2022-10-10 20:48:11 +08:00
Louis Lam
539683f8e9 Merge remote-tracking branch 'origin/master' into maintenance 2022-10-10 16:50:25 +08:00
Louis Lam
a577fba848 Change DateTime Range using serverTimezone 2022-10-10 02:28:03 +08:00
Louis Lam
a36f24d827 Add configurable server timezone 2022-10-09 20:59:58 +08:00
Louis Lam
b007681e67 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	server/model/monitor.js
#	server/model/status_page.js
#	src/languages/en.js
2022-10-09 19:26:00 +08:00
Louis Lam
a487347b33 [exe] install dependencies and download dist 2022-10-09 03:47:06 +08:00
Louis Lam
ad1a7c255f Drop exports.entryPage fully 2022-10-08 23:56:58 +08:00
Louis Lam
655ba015a0 WIP 2022-10-08 23:47:27 +08:00
Louis Lam
3eaccb560e Implement Download Logic 2022-10-08 16:23:11 +08:00
Louis Lam
e741e7582d Merge remote-tracking branch 'origin/master' into exe 2022-10-07 20:43:53 +08:00
Louis Lam
4c45654780 WIP 2022-10-07 18:38:14 +08:00
Louis Lam
da778f05ac Update 2022-10-07 00:16:07 +08:00
Louis Lam
4a7e96f9ea Init C# Project for building exe 2022-10-06 12:08:10 +08:00
janhartje
b879428a03 feat(notification): add additional Header to webhook 2022-10-05 17:48:07 +02:00
janhartje
3c5de1c889 Merge branch 'master' of https://github.com/louislam/uptime-kuma into feat/add-auth-header-to-webhook-notification-#1919 2022-10-05 16:44:13 +02:00
George Tsomlektsis
3e699f8ac3 Fix linting errors. 2022-10-03 18:01:52 +03:00
George Tsomlektsis
b0d6b5b13d Fixed entry route not redirecting correctly when the status entry page changes slug. 2022-10-03 17:48:34 +03:00
Mikkel-T
a42f7416b5 Improve the URL field in Discord embeds
Instead of having two different ways of showing the URL field in Discord embeds, always show the raw address.
2022-10-02 19:29:33 +02:00
Matthew Nickson
f9be918246 Add support for MySQL/MariaDB databases #1817
This commit adds support for monitoring MySQL and MariaDB database
servers. The mysql2 package was choosen over mysql as it provides a
promise wrapper and is reportedly faster than the original mysql package
whilst still maintaining the same API.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-10-02 01:52:53 +01:00
Matthew Nickson
314ae38f91 Changed name of SQL Server to avoid confusion
It appears that SQL Server causes some confusion among users as they
believe that it means any SQL database, not the Microsoft product SQL
Server. To avoid this issue, the display value has been changed to
Microsoft SQL Server. No backend changes have been made and it is still
stored as sqlserver in the database. This is only a frontent change.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-10-01 21:35:33 +01:00
Christian Meis
c03d911657 Update src/languages/en.js
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-09-28 11:39:13 +02:00
Christian Meis
e12642cf21 Fix double quotes in fallback for no icon url in ntfy notification provider settings 2022-09-28 10:24:56 +02:00
Christian Meis
618d904001 [empty commit] pull request for icon support in ntfy notification provider (fixes #2135) 2022-09-28 10:17:02 +02:00
Christian Meis
6f86236b63 Add support for icon to ntfy notification provider (requires minimum ntfy server version 1.28.0 and Android app 1.14.0, no iOS support as of today) 2022-09-28 10:13:18 +02:00
Louis Lam
204339fbed Make two functions to convert ISO 8601 <=> YYYY-MM-DD hh:mm:ss 2022-09-28 00:48:15 +08:00
Louis Lam
b1465c0282 - Maintenance standardize datetime format to YYYY-MM-DD hh:mm:ss
- Import dayjs extensions one time only
- Maintenance activeCondition centralize
2022-09-28 00:20:17 +08:00
Louis Lam
4002b9f577 [WIP] Checking maintenance time using maintenance_timeslot table 2022-09-27 20:44:44 +08:00
Justin Tisdale
f6919aef1d remove TODO 2022-09-26 17:10:56 -04:00
Justin Tisdale
6537f4fe74 content-type change 2022-09-26 17:09:10 -04:00
Justin Tisdale
5809088f27 Don't override a user-defined content-type header 2022-09-26 15:52:43 -04:00
Justin Tisdale
0814d643c1 Merge branch 'master' into feature/expand-http-payload-support 2022-09-25 10:45:32 -04:00
Louis Lam
3f63cb246b [WIP] Handle timezone offset for timeRange 2022-09-25 19:38:28 +08:00
Louis Lam
f11dfc8f43 [WIP] Add/Edit Maintenance with new UI and recurring 2022-09-24 19:18:24 +08:00
Louis Lam
9d99c39f30 Update Maintenance UI for recurring 2022-09-24 02:33:29 +08:00
Louis Lam
617ba49e6c Fix race condition of selectedStatusPagesOptions 2022-09-18 22:40:53 +08:00
Louis Lam
7853c2cc38 Update Maintenance UI 2022-09-18 22:34:05 +08:00
Louis Lam
f61c1c47aa Update Maintenance UI 2022-09-18 02:13:29 +08:00
Louis Lam
9fe07742ea Linting 2022-09-18 02:07:32 +08:00
Louis Lam
a29eae3213 Update Maintenance UI 2022-09-18 02:02:18 +08:00
Louis Lam
80698a58b8 Tidy up 2022-09-17 22:09:09 +08:00
Louis Lam
bb883e6fa0 Move maintenance under /maintenance 2022-09-17 22:00:11 +08:00
Louis Lam
120e578398 Move maintenance code to maintenance-socket-handler.js 2022-09-17 16:58:08 +08:00
Louis Lam
7017c2e625 Move maintenance code to maintenance-socket-handler.js 2022-09-17 16:54:21 +08:00
Louis Lam
2f67d26702 Merge manually, as this part had been moved 2022-09-17 16:20:10 +08:00
Louis Lam
90761cf831 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	server/database.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	src/components/HeartbeatBar.vue
#	src/components/MonitorList.vue
#	src/icon.js
#	src/layouts/Layout.vue
#	src/mixins/datetime.js
#	src/mixins/socket.js
#	src/router.js
#	src/util.js
2022-09-17 16:12:57 +08:00
Kyle
7aa3f6c559 Corrected default hostname port for healthcheck 2022-09-14 15:04:21 -06:00
Kyle
db4b2cd984 Re-add support for UPTIME_KUMA_HOST and _PORT in healthcheck.js 2022-09-14 14:25:56 -06:00
Kyle
b4f0f8bca5 Replace healthcheck hostname env variable name 2022-09-13 22:18:00 -06:00
Kyle
b382064384 Replace port env var in healthcheck.js 2022-09-13 21:52:32 -06:00
Louis Lam
68875c3091 Fix merging issue 2022-09-13 22:22:01 +08:00
Louis Lam
f35d7c0a1a Merge remote-tracking branch 'origin/master' into feat/add-gRPC-protocol
# Conflicts:
#	package-lock.json
2022-09-13 22:19:41 +08:00
Matthew Nickson
742b1337be Merge branch 'master' into feature/#1891-set-ping-packet-size 2022-09-10 21:20:03 +01:00
Justin Tisdale
fa1fc0fb05 Merge branch 'master' into feature/expand-http-payload-support 2022-09-07 11:34:58 -04:00
minhhn3
3a90d246a4 fix: wrong type 2022-08-20 22:45:11 +07:00
Justin Tisdale
6ec6410808 Merge branch 'master' into feature/expand-http-payload-support 2022-08-20 10:24:18 -04:00
Matthew Nickson
c3d655afb4 Merge branch 'master' into feature/#1891-set-ping-packet-size 2022-08-13 21:15:16 +02:00
minhhn3
6bb79597e8 fix: resolve merge conflict 2022-08-13 13:26:05 +07:00
Justin Tisdale
31cc328839 fix lint 2022-08-11 21:08:13 -04:00
Justin Tisdale
0d58526f25 Merge branch 'master' into feature/expand-http-payload-support 2022-08-11 21:04:11 -04:00
Justin Tisdale
2b9bf095a6 Add non-json support for http body 2022-08-11 20:57:03 -04:00
Justin Tisdale
3a18801722 Add Body Encoding field 2022-08-10 21:46:43 -04:00
minhhn3
34ab6142db fix: remove new space line 2022-08-08 19:38:43 +07:00
minhhn3
2232236a7a [empty commit] pull request for add gRPC protocol 2022-08-03 13:39:31 +07:00
Minh Hoàng
dcecd10c88 Feat/add gRPC protocol (#1)
* feat: added monitor with gRPC

Co-authored-by: minhhn3 <minhhn3@vng.com.vn>
2022-08-03 12:00:39 +07:00
Jan Hartje
af07c7f050 feat(notification): add Authorization Header option to backend 2022-07-18 16:04:27 +00:00
Jan Hartje
95dba6dcaf feat(notification): add Authorization Header option to frontend 2022-07-18 16:04:18 +00:00
Jan Hartje
90c2bf7c94 [empty commit] pull request for #1919 2022-07-18 15:56:53 +00:00
Matthew Nickson
b5f04573f2 Added formatting to ping options
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-07-14 09:19:40 +01:00
Matthew Nickson
a54e58b4d6 Added Ping packet size #1891
This should fully implement #1891 by adding an extra field to the edit
monitor page and an extra column to the database. The user can now
set the size of the packet to send, it defaults to 56. A maximum limit
of 65500 was chosen to ensure that the total size of the packet does
not exceed the IPv4 maximum packet size and to comply with the limit
imposed by Windows.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-07-14 08:32:51 +01:00
Matthew Nickson
219b00f660 [empty commit] pull request for #1891 set ping size 2022-07-13 23:08:35 +01:00
Karel Krýda
fa777c5bc0 Update server/server.js
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-05-30 15:32:42 +02:00
Karel Krýda
6d0683b055 Update server/routers/api-router.js
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-05-30 15:32:19 +02:00
Karel Krýda
25262cfb91 Update server/model/monitor.js
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-05-30 15:31:45 +02:00
Louis Lam
7a46b44d25 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	src/components/HeartbeatBar.vue
2022-05-18 19:49:54 +08:00
Karel Krýda
42f931f6cf Merge branch 'master' into master 2022-05-09 10:28:14 +02:00
Karel Krýda
2fe5c090aa small fixes 2022-05-08 20:50:08 +02:00
Karel Krýda
ed218e73bb UI improvements 2022-05-08 20:03:24 +02:00
Karel Krýda
9a35386841 Merge branch 'master' into master 2022-05-06 11:24:21 +02:00
Karel Krýda
2b14bdae62 Merge branch 'master' into master 2022-05-01 12:40:34 +02:00
Karel Krýda
31b90d12a4 Added the ability to choose on which status pages maintenance information should be displayed 2022-04-30 17:17:22 +02:00
Karel Krýda
b4ffcc5555 Added JSDoc 2022-04-30 15:50:05 +02:00
Karel Krýda
57368c8c6c More modern look of maintenance information on status page (same design as for the new incident system) 2022-04-30 15:32:56 +02:00
Karel Krýda
11ef22edec Fixed remaining lint errors 2022-04-30 15:13:13 +02:00
Karel Krýda
f78d01d770 Resolve lint errors 2022-04-30 14:57:08 +02:00
Karel Krýda
7532acc95d Resolve conflicts 2022-04-30 14:33:54 +02:00
Karel Krýda
ed84e56a85 Merge remote-tracking branch 'origin_kuma/master'
# Conflicts:
#	package-lock.json
#	server/database.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	src/components/MonitorList.vue
#	src/components/PingChart.vue
#	src/icon.js
#	src/pages/DashboardHome.vue
#	src/pages/StatusPage.vue
#	src/router.js
#	src/util.js
2022-04-30 13:40:34 +02:00
Karel Krýda
b49e5d5c39 The SQL query to determine if the monitor is under maintenance is now in its own method. 2022-01-25 19:07:27 +01:00
Karel Krýda
e7b2832967 The start and end dates of the maintenance are now stored in UTC, which allows it to be converted between time zones 2022-01-24 22:33:15 +01:00
Karel Krýda
5fda1f0f59 minor fixes (missing commas, spaces, translations) 2022-01-23 20:33:39 +01:00
Karel Krýda
0d3414c6d6 A complete maintenance planning system has been created 2022-01-23 15:22:00 +01:00
Juan Cruz Vincenti
fbf2df9e7a Add conditional rendering to description
* Modify Details component
* Modify MonitorList component
2021-12-14 19:11:32 -03:00
Juan Cruz Vincenti
934d633d4d Add description to monitor
* Add description to monitor model
* Add description field to database
* Add english and spanish translation for description
* Closes: #482
2021-12-14 19:11:32 -03:00
379 changed files with 50845 additions and 33349 deletions

28
.devcontainer/README.md Normal file
View File

@@ -0,0 +1,28 @@
# Codespaces
You can modifiy Uptime Kuma in your browser without setting up a local development.
![image](https://github.com/louislam/uptime-kuma/assets/1336778/31d9f06d-dd0b-4405-8e0d-a96586ee4595)
1. Click `Code` -> `Create codespace on master`
2. Wait a few minutes until you see there are two exposed ports
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)
## Frontend
Since the frontend is using [Vite.js](https://vitejs.dev/), all changes in this area will be hot-reloaded.
You don't need to restart the frontend, unless you try to add a new frontend dependency.
## Backend
The backend does not automatically hot-reload.
You will need to restart the backend after changing something using these steps:
1. Click `Terminal`
2. Click `Codespaces: server-dev` in the right panel
3. Press `Ctrl + C` to stop the server
4. Press `Up` to run `npm run start-server-dev`
![image](https://github.com/louislam/uptime-kuma/assets/1336778/e0c0a350-fe46-4588-9f37-e053c85834d1)

View File

@@ -0,0 +1,22 @@
{
"image": "mcr.microsoft.com/devcontainers/javascript-node:dev-18-bookworm",
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"updateContentCommand": "npm ci",
"postCreateCommand": "",
"postAttachCommand": {
"frontend-dev": "npm run start-frontend-devcontainer",
"server-dev": "npm run start-server-dev",
"open-port": "gh codespace ports visibility 3001:public -c $CODESPACE_NAME"
},
"customizations": {
"vscode": {
"extensions": [
"streetsidesoftware.code-spell-checker",
"dbaeumer.vscode-eslint"
]
}
},
"forwardPorts": [3000, 3001]
}

View File

@@ -18,6 +18,7 @@ README.md
.vscode
.eslint*
.stylelint*
/.devcontainer
/.github
yarn.lock
app.json
@@ -31,6 +32,15 @@ tsconfig.json
/tmp
/babel.config.js
/ecosystem.config.js
/extra/healthcheck.exe
/extra/healthcheck
/extra/exe-builder
/extra/push-examples
/extra/uptime-kuma-push
# Comment the following line if you want to rebuild the healthcheck binary
/extra/healthcheck-armv7
### .gitignore content (commented rules are duplicated)
@@ -45,6 +55,4 @@ dist-ssr
#!/data/.gitkeep
#.vscode
### End of .gitignore content

View File

@@ -19,3 +19,6 @@ indent_size = 2
[*.vue]
trim_trailing_whitespace = false
[*.go]
indent_style = tab

View File

@@ -78,7 +78,7 @@ module.exports = {
"checkLoops": false,
}],
"space-before-blocks": "warn",
//'no-console': 'warn',
//"no-console": "warn",
"no-extra-boolean-cast": "off",
"no-multiple-empty-lines": [ "warn", {
"max": 1,
@@ -90,7 +90,8 @@ module.exports = {
"no-unneeded-ternary": "error",
"array-bracket-newline": [ "error", "consistent" ],
"eol-last": [ "error", "always" ],
//'prefer-template': 'error',
//"prefer-template": "error",
"template-curly-spacing": [ "warn", "never" ],
"comma-dangle": [ "warn", "only-multiline" ],
"no-empty": [ "error", {
"allowEmptyCatch": true

View File

@@ -26,6 +26,12 @@ body:
label: "📝 Describe your problem"
description: "Please walk us through it step by step."
placeholder: "Describe what are you asking for..."
- type: textarea
id: error-msg
validations:
required: false
attributes:
label: "📝 Error Message(s) or Log"
- type: input
id: uptime-kuma-version
attributes:
@@ -38,7 +44,7 @@ body:
id: operating-system
attributes:
label: "💻 Operating System and Arch"
description: "Which OS is your server/device running on?"
description: "Which OS is your server/device running on? (For Replit, please do not report this bug)"
placeholder: "Ex. Ubuntu 20.04 x86"
validations:
required: true
@@ -46,7 +52,7 @@ body:
id: browser-vendor
attributes:
label: "🌐 Browser"
description: "Which browser are you running on?"
description: "Which browser are you running on? (For Replit, please do not report this bug)"
placeholder: "Ex. Google Chrome 95.0.4638.69"
validations:
required: true

View File

@@ -61,8 +61,8 @@ body:
id: operating-system
attributes:
label: "💻 Operating System and Arch"
description: "Which OS is your server/device running on?"
placeholder: "Ex. Ubuntu 20.04 x86"
description: "Which OS is your server/device running on? (For Replit, please do not report this bug)"
placeholder: "Ex. Ubuntu 20.04 x64 "
validations:
required: true
- type: input

19
.github/ISSUE_TEMPLATE/security.md vendored Normal file
View File

@@ -0,0 +1,19 @@
---
name: "Security Issue"
about: "Just for alerting @louislam, do not provide any details here"
title: "Security Issue"
ref: "main"
labels:
- security
---
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.
Your GitHub Advisory URL:

View File

@@ -16,7 +16,6 @@ Please delete any options that are not relevant.
- User interface (UI)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- Translation update
- Other
- This change requires a documentation update

1
.github/config/exclude.txt vendored Normal file
View File

@@ -0,0 +1 @@
# This is a .gitignore style file for 'GrantBirki/json-yaml-validate' Action workflow

View File

@@ -1,13 +1,17 @@
# 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
name: Auto Test
on:
push:
branches: [ master ]
branches: [ master, 1.23.X ]
paths-ignore:
- '*.md'
pull_request:
branches: [ master ]
branches: [ master, 1.23.X ]
paths-ignore:
- '*.md'
jobs:
auto-test:
@@ -17,52 +21,89 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
node: [ 14, 16, 17, 18 ]
os: [macos-latest, ubuntu-latest, windows-latest, ARM64]
node: [ 14, 20 ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- run: npm install npm@9 -g
- run: npm install
- run: npm run build
- run: npm test
env:
HEADLESS_TEST: 1
JUST_FOR_TEST: ${{ secrets.JUST_FOR_TEST }}
# As a lot of dev dependencies are not supported on ARMv7, we have to test it separately and just test if `npm ci --production` works
armv7-simple-test:
needs: [ check-linters ]
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
matrix:
os: [ ARMv7 ]
node: [ 14, 20 ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- run: npm install npm@9 -g
- run: npm ci --production
check-linters:
runs-on: ubuntu-latest
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js 14
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 14
cache: 'npm'
- run: npm install
- run: npm run lint
- run: npm run lint:prod
e2e-tests:
needs: [ check-linters ]
runs-on: ubuntu-latest
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js 14
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 14
cache: 'npm'
- run: npm install
- run: npm run build
- run: npm run cy:test
frontend-unit-tests:
needs: [ check-linters ]
runs-on: ubuntu-latest
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v4
- name: Use Node.js 14
uses: actions/setup-node@v4
with:
node-version: 14
- run: npm install
- run: npm run build
- run: npm run cy:run:unit

View File

@@ -1,4 +1,3 @@
name: Close Incorrect Issue
on:
@@ -12,13 +11,13 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
node-version: [16.x]
node-version: [16]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

View File

@@ -0,0 +1,27 @@
name: json-yaml-validate
on:
push:
branches:
- master
pull_request:
branches:
- master
- 1.23.X
workflow_dispatch:
permissions:
contents: read
pull-requests: write # enable write permissions for pull request comments
jobs:
json-yaml-validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: json-yaml-validate
id: json-yaml-validate
uses: GrantBirki/json-yaml-validate@v2.4.0
with:
comment: "true" # enable comment mode
exclude_file: ".github/config/exclude.txt" # gitignore style file for exclusions

View File

@@ -3,22 +3,20 @@ on:
workflow_dispatch:
schedule:
- cron: '0 */6 * * *'
#Run every 6 hours
#Run every 6 hours
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
- uses: actions/stale@v8
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-pr-message: 'We are clearing up our old Pull Requests and yours has been open for 3 months with no activity. Remove stale label or comment or this will be closed in 2 days.'
close-issue-message: 'This issue was closed because it has been stalled for 2 days with no activity.'
close-pr-message: 'This PR was closed because it has been stalled for 2 days with no activity.'
days-before-stale: 90
days-before-close: 2
days-before-pr-stale: 999999999
days-before-pr-close: 1
exempt-issue-labels: 'News,Medium,High,discussion,bug,doc,feature-request'
exempt-pr-labels: 'awaiting-approval,work-in-progress,enhancement,feature-request'
exempt-issue-assignees: 'louislam'
exempt-pr-assignees: 'louislam'
operations-per-run: 200

10
.gitignore vendored
View File

@@ -16,3 +16,13 @@ dist-ssr
cypress/videos
cypress/screenshots
/extra/healthcheck.exe
/extra/healthcheck
/extra/healthcheck-armv7
extra/exe-builder/bin
extra/exe-builder/obj
.vs
.vscode

View File

@@ -10,5 +10,7 @@
"color-function-notation": "legacy",
"shorthand-property-no-redundant-values": null,
"color-hex-length": null,
"declaration-block-no-redundant-longhand-properties": null,
"at-rule-no-unknown": null
}
}

View File

@@ -1,14 +1,14 @@
# Project Info
First of all, thank you everyone who made pull requests for Uptime Kuma, I never thought GitHub Community can be that nice! And also because of this, I also never thought other people actually read my code and edit my code. It is not structured and commented so well, lol. 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
- 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
- SCSS
- Vue.js
@@ -17,8 +17,11 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
## Directories
- config (dev config files)
- data (App data)
- db (Base database and migration scripts)
- dist (Frontend build)
- docker (Dockerfiles)
- extra (Extra useful scripts)
- public (Frontend resources for dev only)
- server (Server source code)
@@ -27,32 +30,40 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
## 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 discuss 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:
✅ Usually Accept:
- Bug/Security fix
- Translations
### ✅ Usually accepted:
- Bug fix
- Security fix
- 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 keys: `$t("...")`
⚠️ Discussion First
### ⚠️ Discussion required:
- Large pull requests
- New features
❌ Won't Merge
- Do not pass auto test
### ❌ 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))
- Do not pass the auto-test
- Any breaking changes
- Duplicated pull request
- Duplicated pull requests
- 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
- Unnecessary large code changes (Hard to review, causes code conflicts to other pull requests)
- 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.
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.
The above cases may not cover all possible situations.
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.
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 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 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
@@ -72,13 +83,13 @@ Before deep into coding, discussion first is preferred. Creating an empty pull r
## Project Styles
I personally do not like something need to learn so much and need to config so much before you can finally start the 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 (at least for x86_64), no extra config, no extra effort to get it run
- 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
- 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
- The web UI styling should be consistent and nice.
- The web UI styling should be consistent and nice
## Coding Styles
@@ -87,7 +98,7 @@ I personally do not like something need to learn so much and need to config so m
- Follow ESLint
- Methods and functions should be documented with JSDoc
## Name convention
## Name Conventions
- Javascript/Typescript: camelCaseType
- SQLite: snake_case (Underscore)
@@ -95,13 +106,13 @@ I personally do not like something need to learn so much and need to config so m
## Tools
- Node.js >= 14
- NPM >= 8.5
- Git
- IDE that supports ESLint and EditorConfig (I am using IntelliJ IDEA)
- A SQLite GUI tool (SQLite Expert Personal is suggested)
- [`Node.js`](https://nodejs.org/) >= 14
- [`npm`](https://www.npmjs.com/) >= 8.5
- [`git`](https://git-scm.com/)
- IDE that supports [`ESLint`](https://eslint.org/) and EditorConfig (I am using [`IntelliJ IDEA`](https://www.jetbrains.com/idea/))
- A SQLite GUI tool (f.ex. [`SQLite Expert Personal`](https://www.sqliteexpert.com/download.html) or [`DBeaver Community`](https://dbeaver.io/download/))
## Install dependencies
## Install Dependencies for Development
```bash
npm ci
@@ -119,6 +130,12 @@ Port `3000` and port `3001` will be used.
npm run dev
```
But sometimes, you would like to restart the server, but not the frontend, you can run these commands in two terminals:
```
npm run start-frontend-dev
npm run start-server-dev
```
## Backend Server
It binds to `0.0.0.0:3001` by default.
@@ -129,21 +146,24 @@ It is mainly a socket.io app + express.js.
express.js is used for:
- entry point such as redirecting to a status page or the dashboard
- serving the frontend built files (index.html, .js and .css etc.)
- serving internal APIs of status page
- serving internal APIs of the status page
### Structure in /server/
- model/ (Object model, auto mapping to the database table name)
- jobs/ (Jobs that are running in another process)
- model/ (Object model, auto-mapping to the database table name)
- modules/ (Modified 3rd-party modules)
- monitor_types (Monitor Types)
- notification-providers/ (individual notification logic)
- routers/ (Express Routers)
- socket-handler (Socket.io Handlers)
- server.js (Server entry point and main logic)
- server.js (Server entry point)
- uptime-kuma-server.js (UptimeKumaServer class, main logic should be here, but some still in `server.js`)
## Frontend Dev Server
It binds to `0.0.0.0:3000` by default. 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.
@@ -161,7 +181,7 @@ Uptime Kuma Frontend is a single page application (SPA). Most paths are handled
The router is in `src/router.js`
As you can see, most data in frontend is stored in root level, even though you changed the current router to any other pages.
As you can see, most data in the frontend is stored at the root level, even though you changed the current router to any other pages.
The data and socket logic are in `src/mixins/socket.js`.
@@ -172,15 +192,11 @@ The data and socket logic are in `src/mixins/socket.js`.
## Unit Test
It is an end-to-end testing. It is using Jest and Puppeteer.
```bash
npm run build
npm test
```
By default, the Chromium window will be shown up during the test. Specifying `HEADLESS_TEST=1` for terminal environments.
## Dependencies
Both frontend and backend share the same package.json. However, the frontend dependencies are eventually not used in the production environment, because it is usually also baked into dist files. So:
@@ -194,21 +210,25 @@ Both frontend and backend share the same package.json. However, the frontend dep
### Update Dependencies
Install `ncu`
https://github.com/raineorshine/npm-check-updates
```bash
ncu -u -t patch
npm install
```
Since previously updating Vite 2.5.10 to 2.6.0 broke the application completely, from now on, it should update patch release version only.
Since previously updating Vite 2.5.10 to 2.6.0 broke the application completely, from now on, it should update the patch release version only.
Patch release = the third digit ([Semantic Versioning](https://semver.org/))
If for security / bug / other reasons, a library must be updated, breaking changes need to be checked by the person proposing the change.
## Translations
Please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages
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
@@ -225,12 +245,13 @@ https://github.com/louislam/uptime-kuma/issues?q=sort%3Aupdated-desc
1. Draft a release note
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. `npm run release-final with env vars: `VERSION` and `GITHUB_TOKEN`
4. Wait until the `Press any key to continue`
5. `git push`
6. Publish the release note as 1.X.X
7. Press any key to continue
8. SSH to demo site server and update to 1.X.X
8. Deploy to the demo server: `npm run deploy-demo-server`
Checking:

View File

@@ -1,38 +1,39 @@
# Uptime Kuma
<a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/stars/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/pulls/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/v/louislam/uptime-kuma/latest?label=docker%20image%20ver." /></a> <a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/last-commit/louislam/uptime-kuma" /></a> <a target="_blank" href="https://opencollective.com/uptime-kuma"><img src="https://opencollective.com/uptime-kuma/total/badge.svg?label=Open%20Collective%20Backers&color=brightgreen" /></a>
[![GitHub Sponsors](https://img.shields.io/github/sponsors/louislam?label=GitHub%20Sponsors)](https://github.com/sponsors/louislam)
<div align="center" width="100%">
<img src="./public/icon.svg" width="128" alt="" />
</div>
It is a self-hosted monitoring tool like "Uptime Robot".
# Uptime Kuma
<img src="https://uptime.kuma.pet/img/dark.jpg" width="700" alt="" />
Uptime Kuma is an easy-to-use self-hosted monitoring tool.
<a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/stars/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/pulls/louislam/uptime-kuma" /></a> <a target="_blank" href="https://hub.docker.com/r/louislam/uptime-kuma"><img src="https://img.shields.io/docker/v/louislam/uptime-kuma/latest?label=docker%20image%20ver." /></a> <a target="_blank" href="https://github.com/louislam/uptime-kuma"><img src="https://img.shields.io/github/last-commit/louislam/uptime-kuma" /></a> <a target="_blank" href="https://opencollective.com/uptime-kuma"><img src="https://opencollective.com/uptime-kuma/total/badge.svg?label=Open%20Collective%20Backers&color=brightgreen" /></a>
[![GitHub Sponsors](https://img.shields.io/github/sponsors/louislam?label=GitHub%20Sponsors)](https://github.com/sponsors/louislam) <a href="https://weblate.kuma.pet/projects/uptime-kuma/uptime-kuma/">
<img src="https://weblate.kuma.pet/widgets/uptime-kuma/-/svg-badge.svg" alt="Translation status" />
</a>
<img src="https://user-images.githubusercontent.com/1336778/212262296-e6205815-ad62-488c-83ec-a5b0d0689f7c.jpg" width="700" alt="" />
## 🥔 Live Demo
Try it!
- Tokyo Demo Server: https://demo.uptime.kuma.pet (Sponsored by [Uptime Kuma Sponsors](https://github.com/louislam/uptime-kuma#%EF%B8%8F-sponsors))
- Europe Demo Server: https://demo.uptime-kuma.karimi.dev:27000 (Provided by [@mhkarimi1383](https://github.com/mhkarimi1383))
It is a temporary live demo, all data will be deleted after 10 minutes. Use the one that is closer to you, but I suggest that you should install and try it out for the best demo experience.
## ⭐ Features
* Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers.
* 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).
* 20 second intervals.
* [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/languages)
* Multiple Status Pages
* Map Status Page to Domain
* Ping Chart
* Certificate Info
* Proxy Support
* 2FA available
* 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
* Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and [90+ notification services, click here for the full list](https://github.com/louislam/uptime-kuma/tree/master/src/components/notifications)
* 20-second intervals
* [Multi Languages](https://github.com/louislam/uptime-kuma/tree/master/src/lang)
* Multiple status pages
* Map status pages to specific domains
* Ping chart
* Certificate info
* Proxy support
* 2FA support
## 🔧 How to Install
@@ -44,14 +45,19 @@ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name upti
⚠️ Please use a **local volume** only. Other types such as NFS are not supported.
Browse to http://localhost:3001 after starting.
Uptime Kuma is now running on http://localhost:3001
### 💪🏻 Non-Docker
Required Tools:
- [Node.js](https://nodejs.org/en/download/) >= 14
- [Git](https://git-scm.com/downloads)
- [pm2](https://pm2.keymetrics.io/) - For run in background
Requirements:
- Platform
- ✅ Major Linux distros such as Debian, Ubuntu, CentOS, Fedora and ArchLinux etc.
- ✅ Windows 10 (x64), Windows Server 2012 R2 (x64) or higher
- ❌ Replit / Heroku
- [Node.js](https://nodejs.org/en/download/) 14 / 16 / 18 / 20.4
- [npm](https://docs.npmjs.com/cli/) >= 7
- [Git](https://git-scm.com/downloads)
- [pm2](https://pm2.keymetrics.io/) - For running Uptime Kuma in the background
```bash
# Update your npm to the latest version
@@ -64,8 +70,8 @@ npm run setup
# Option 1. Try it
node server/server.js
# (Recommended) Option 2. Run in background using PM2
# Install PM2 if you don't have it:
# (Recommended) Option 2. Run in the background using PM2
# Install PM2 if you don't have it:
npm install pm2 -g && pm2 install pm2-logrotate
# Start Server
@@ -73,7 +79,7 @@ pm2 start server/server.js --name uptime-kuma
```
Browse to http://localhost:3001 after starting.
Uptime Kuma is now running on http://localhost:3001
More useful PM2 Commands
@@ -85,6 +91,10 @@ pm2 monit
pm2 save && pm2 startup
```
### Windows Portable (x64)
https://github.com/louislam/uptime-kuma/releases/download/1.23.1/uptime-kuma-windows-x64-portable-1.23.1.zip
### Advanced Installation
If you need more options or need to browse via a reverse proxy, please read:
@@ -99,7 +109,7 @@ https://github.com/louislam/uptime-kuma/wiki/%F0%9F%86%99-How-to-Update
## 🆕 What's Next?
I will mark requests/issues to the next milestone.
I will assign requests/issues to the next milestone.
https://github.com/louislam/uptime-kuma/milestones
@@ -142,17 +152,18 @@ Telegram Notification Sample:
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 response 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:
### Subreddit
- [GitHub Issues](https://github.com/louislam/uptime-kuma/issues)
- [Subreddit r/Uptime kuma](https://www.reddit.com/r/UptimeKuma/)
My Reddit account: [u/louislamlam](https://reddit.com/u/louislamlam).
You can mention me if you ask a question on Reddit.
[r/Uptime kuma](https://www.reddit.com/r/UptimeKuma/)
## Contribute
@@ -171,9 +182,12 @@ Check out the latest beta release here: https://github.com/louislam/uptime-kuma/
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
If you want to translate Uptime Kuma into your language, please read: https://github.com/louislam/uptime-kuma/tree/master/src/languages
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
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

View File

@@ -2,15 +2,20 @@
## Reporting a Vulnerability
Please report security issues to uptime@kuma.pet.
1. Please report security issues to https://github.com/louislam/uptime-kuma/security/advisories/new.
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 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?
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
### 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.
### Upgradable Docker Tags

View File

@@ -4,8 +4,4 @@ if (process.env.TEST_FRONTEND) {
config.presets = [ "@babel/preset-env" ];
}
if (process.env.TEST_BACKEND) {
config.plugins = [ "babel-plugin-rewire" ];
}
module.exports = config;

View File

@@ -0,0 +1,10 @@
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
supportFile: false,
specPattern: [
"test/cypress/unit/**/*.js"
],
}
});

View File

@@ -16,6 +16,9 @@ export default defineConfig({
},
define: {
"FRONTEND_VERSION": JSON.stringify(process.env.npm_package_version),
"DEVCONTAINER": JSON.stringify(process.env.DEVCONTAINER),
"GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN": JSON.stringify(process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN),
"CODESPACE_NAME": JSON.stringify(process.env.CODESPACE_NAME),
},
plugins: [
vue(),
@@ -42,6 +45,9 @@ export default defineConfig({
}
},
build: {
commonjsOptions: {
include: [ /.js$/ ],
},
rollupOptions: {
output: {
manualChunks(id, { getModuleInfo, getModuleIds }) {

View File

@@ -0,0 +1,7 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE status_page
ADD show_certificate_expiry BOOLEAN default 0 NOT NULL;
COMMIT;

View File

@@ -0,0 +1,7 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD description TEXT default null;
COMMIT;

View File

@@ -0,0 +1,7 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD gamedig_given_port_only BOOLEAN default 1 not null;
COMMIT;

View File

@@ -0,0 +1,5 @@
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD game VARCHAR(255);
COMMIT

View File

@@ -0,0 +1,4 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE status_page ADD google_analytics_tag_id VARCHAR;
COMMIT;

View File

@@ -0,0 +1,7 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD invert_keyword BOOLEAN default 0 not null;
COMMIT;

View File

@@ -0,0 +1,6 @@
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD parent INTEGER REFERENCES [monitor] ([id]) ON DELETE SET NULL ON UPDATE CASCADE;
COMMIT

View File

@@ -0,0 +1,6 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD timeout DOUBLE default 0 not null;
COMMIT;

View File

@@ -0,0 +1,10 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD json_path TEXT;
ALTER TABLE monitor
ADD expected_value VARCHAR(255);
COMMIT;

View File

@@ -0,0 +1,22 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD kafka_producer_topic VARCHAR(255);
ALTER TABLE monitor
ADD kafka_producer_brokers TEXT;
ALTER TABLE monitor
ADD kafka_producer_ssl INTEGER;
ALTER TABLE monitor
ADD kafka_producer_allow_auto_topic_creation VARCHAR(255);
ALTER TABLE monitor
ADD kafka_producer_sasl_options TEXT;
ALTER TABLE monitor
ADD kafka_producer_message TEXT;
COMMIT;

View File

@@ -0,0 +1,13 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
CREATE TABLE [api_key] (
[id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[key] VARCHAR(255) NOT NULL,
[name] VARCHAR(255) NOT NULL,
[user_id] INTEGER NOT NULL,
[created_date] DATETIME DEFAULT (DATETIME('now')) NOT NULL,
[active] BOOLEAN DEFAULT 1 NOT NULL,
[expires] DATETIME DEFAULT NULL,
CONSTRAINT FK_user FOREIGN KEY ([user_id]) REFERENCES [user]([id]) ON DELETE CASCADE ON UPDATE CASCADE
);
COMMIT;

View File

@@ -0,0 +1,34 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
-- Rename COLUMNs to another one (suffixed by `_old`)
ALTER TABLE monitor
RENAME COLUMN kafka_producer_ssl TO kafka_producer_ssl_old;
ALTER TABLE monitor
RENAME COLUMN kafka_producer_allow_auto_topic_creation TO kafka_producer_allow_auto_topic_creation_old;
-- Add correct COLUMNs
ALTER TABLE monitor
ADD COLUMN kafka_producer_ssl BOOLEAN default 0 NOT NULL;
ALTER TABLE monitor
ADD COLUMN kafka_producer_allow_auto_topic_creation BOOLEAN default 0 NOT NULL;
-- These SQL is still not fully safe. See https://github.com/louislam/uptime-kuma/issues/4039.
-- Set bring old values from `_old` COLUMNs to correct ones
-- UPDATE monitor SET kafka_producer_allow_auto_topic_creation = monitor.kafka_producer_allow_auto_topic_creation_old
-- WHERE monitor.kafka_producer_allow_auto_topic_creation_old IS NOT NULL;
-- UPDATE monitor SET kafka_producer_ssl = monitor.kafka_producer_ssl_old
-- WHERE monitor.kafka_producer_ssl_old IS NOT NULL;
-- Remove old COLUMNs
ALTER TABLE monitor
DROP COLUMN kafka_producer_allow_auto_topic_creation_old;
ALTER TABLE monitor
DROP COLUMN kafka_producer_ssl_old;
COMMIT;

25
db/patch-grpc-monitor.sql Normal file
View File

@@ -0,0 +1,25 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD grpc_url VARCHAR(255) default null;
ALTER TABLE monitor
ADD grpc_protobuf TEXT default null;
ALTER TABLE monitor
ADD grpc_body TEXT default null;
ALTER TABLE monitor
ADD grpc_metadata TEXT default null;
ALTER TABLE monitor
ADD grpc_method VARCHAR(255) default null;
ALTER TABLE monitor
ADD grpc_service_name VARCHAR(255) default null;
ALTER TABLE monitor
ADD grpc_enable_tls BOOLEAN default 0 not null;
COMMIT;

View File

@@ -0,0 +1,12 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor ADD http_body_encoding VARCHAR(25);
COMMIT;
BEGIN TRANSACTION;
UPDATE monitor SET http_body_encoding = 'json' WHERE (type = 'http' or type = 'keyword') AND http_body_encoding IS NULL;
COMMIT;

View File

@@ -0,0 +1,11 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
DROP TABLE maintenance_timeslot;
-- 999 characters. https://stackoverflow.com/questions/46134830/maximum-length-for-cron-job
ALTER TABLE maintenance ADD cron TEXT;
ALTER TABLE maintenance ADD timezone VARCHAR(255);
ALTER TABLE maintenance ADD duration INTEGER;
COMMIT;

View File

@@ -0,0 +1,83 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
-- Just for someone who tested maintenance before (patch-maintenance-table.sql)
DROP TABLE IF EXISTS maintenance_status_page;
DROP TABLE IF EXISTS monitor_maintenance;
DROP TABLE IF EXISTS maintenance;
DROP TABLE IF EXISTS maintenance_timeslot;
-- maintenance
CREATE TABLE [maintenance] (
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[title] VARCHAR(150) NOT NULL,
[description] TEXT NOT NULL,
[user_id] INTEGER REFERENCES [user]([id]) ON DELETE SET NULL ON UPDATE CASCADE,
[active] BOOLEAN NOT NULL DEFAULT 1,
[strategy] VARCHAR(50) NOT NULL DEFAULT 'single',
[start_date] DATETIME,
[end_date] DATETIME,
[start_time] TIME,
[end_time] TIME,
[weekdays] VARCHAR2(250) DEFAULT '[]',
[days_of_month] TEXT DEFAULT '[]',
[interval_day] INTEGER
);
CREATE INDEX [manual_active] ON [maintenance] (
[strategy],
[active]
);
CREATE INDEX [active] ON [maintenance] ([active]);
CREATE INDEX [maintenance_user_id] ON [maintenance] ([user_id]);
-- maintenance_status_page
CREATE TABLE maintenance_status_page (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
status_page_id INTEGER NOT NULL,
maintenance_id INTEGER NOT NULL,
CONSTRAINT FK_maintenance FOREIGN KEY (maintenance_id) REFERENCES maintenance (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_status_page FOREIGN KEY (status_page_id) REFERENCES status_page (id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE INDEX [status_page_id_index]
ON [maintenance_status_page]([status_page_id]);
CREATE INDEX [maintenance_id_index]
ON [maintenance_status_page]([maintenance_id]);
-- maintenance_timeslot
CREATE TABLE [maintenance_timeslot] (
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[maintenance_id] INTEGER NOT NULL CONSTRAINT [FK_maintenance] REFERENCES [maintenance]([id]) ON DELETE CASCADE ON UPDATE CASCADE,
[start_date] DATETIME NOT NULL,
[end_date] DATETIME,
[generated_next] BOOLEAN DEFAULT 0
);
CREATE INDEX [maintenance_id] ON [maintenance_timeslot] ([maintenance_id] DESC);
CREATE INDEX [active_timeslot_index] ON [maintenance_timeslot] (
[maintenance_id] DESC,
[start_date] DESC,
[end_date] DESC
);
CREATE INDEX [generated_next_index] ON [maintenance_timeslot] ([generated_next]);
-- monitor_maintenance
CREATE TABLE monitor_maintenance (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
monitor_id INTEGER NOT NULL,
maintenance_id INTEGER NOT NULL,
CONSTRAINT FK_maintenance FOREIGN KEY (maintenance_id) REFERENCES maintenance (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_monitor FOREIGN KEY (monitor_id) REFERENCES monitor (id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE INDEX [maintenance_id_index2] ON [monitor_maintenance]([maintenance_id]);
CREATE INDEX [monitor_id_index] ON [monitor_maintenance]([monitor_id]);
COMMIT;

View File

@@ -0,0 +1,19 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD oauth_client_id TEXT default null;
ALTER TABLE monitor
ADD oauth_client_secret TEXT default null;
ALTER TABLE monitor
ADD oauth_token_url TEXT default null;
ALTER TABLE monitor
ADD oauth_scopes TEXT default null;
ALTER TABLE monitor
ADD oauth_auth_method TEXT default null;
COMMIT;

13
db/patch-monitor-tls.sql Normal file
View File

@@ -0,0 +1,13 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD tls_ca TEXT default null;
ALTER TABLE monitor
ADD tls_cert TEXT default null;
ALTER TABLE monitor
ADD tls_key TEXT default null;
COMMIT;

View File

@@ -0,0 +1,10 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
-- SQLite: Change the data type of the column "config" from VARCHAR to TEXT
ALTER TABLE notification RENAME COLUMN config TO config_old;
ALTER TABLE notification ADD COLUMN config TEXT;
UPDATE notification SET config = config_old;
ALTER TABLE notification DROP COLUMN config_old;
COMMIT;

View File

@@ -0,0 +1,5 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
ALTER TABLE monitor
ADD packet_size INTEGER DEFAULT 56 NOT NULL;
COMMIT;

7
db/patch-timeout.sql Normal file
View File

@@ -0,0 +1,7 @@
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
UPDATE monitor SET timeout = (interval * 0.8)
WHERE timeout IS NULL OR timeout <= 0;
COMMIT;

View File

@@ -3,6 +3,6 @@ FROM node:16-alpine3.12
WORKDIR /app
# Install apprise, iputils for non-root ping, setpriv
RUN apk add --no-cache iputils setpriv dumb-init python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib && \
pip3 --no-cache-dir install apprise==1.0.0 && \
RUN apk add --no-cache iputils setpriv dumb-init python3 py3-cryptography py3-pip py3-six py3-yaml py3-click py3-markdown py3-requests py3-requests-oauthlib git && \
pip3 --no-cache-dir install apprise==1.4.0 && \
rm -rf /root/.cache

View File

@@ -0,0 +1,16 @@
############################################
# Build in Golang
# Run npm run build-healthcheck-armv7 in the host first, another it will be super slow where it is building the armv7 healthcheck
############################################
FROM golang:1.19-buster
WORKDIR /app
ARG TARGETPLATFORM
COPY ./extra/ ./extra/
# Compile healthcheck.go
RUN apt update && \
apt --yes --no-install-recommends install curl && \
curl -sL https://deb.nodesource.com/setup_18.x | bash && \
apt --yes --no-install-recommends install nodejs && \
node ./extra/build-healthcheck.js $TARGETPLATFORM && \
apt --yes remove nodejs

View File

@@ -1,28 +1,48 @@
# DON'T UPDATE TO node:14-bullseye-slim, see #372.
# If the image changed, the second stage image should be changed too
FROM node:16-buster-slim
# DON'T UPDATE TO bullseye-slim, see #372.
# There is no 20-buster-slim for armv7 unfortunately, 18-buster-slim is the last one for Uptime Kuma v1.
FROM node:18-buster-slim
ARG TARGETPLATFORM
WORKDIR /app
# Install Curl
# Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv
# 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!
RUN apt update && \
apt --yes --no-install-recommends install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
sqlite3 iputils-ping util-linux dumb-init && \
pip3 --no-cache-dir install apprise==1.0.0 && \
# Specify --no-install-recommends to skip unused dependencies, make the base much smaller!
# python3* = apprise's dependencies
# sqlite3 = for debugging
# iputils-ping = for ping
# util-linux = for setpriv (Should be dropped in 2.0.0?)
# dumb-init = avoid zombie processes (#480)
# curl = for debugging
# ca-certificates = keep the cert up-to-date
# sudo = for start service nscd with non-root user
# nscd = for better DNS caching
# (pip) apprise = for notifications
RUN apt-get update && \
apt-get --yes --no-install-recommends install \
python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
sqlite3 \
iputils-ping \
util-linux \
dumb-init \
curl \
ca-certificates \
sudo \
nscd && \
pip3 --no-cache-dir install apprise==1.6.0 && \
rm -rf /var/lib/apt/lists/* && \
apt --yes autoremove
# Install cloudflared
# dpkg --add-architecture arm: cloudflared do not provide armhf, this is workaround. Read more: https://github.com/cloudflare/cloudflared/issues/583
COPY extra/download-cloudflared.js ./extra/download-cloudflared.js
RUN node ./extra/download-cloudflared.js $TARGETPLATFORM && \
dpkg --add-architecture arm && \
apt update && \
apt --yes --no-install-recommends install ./cloudflared.deb && \
RUN set -eux && \
mkdir -p --mode=0755 /usr/share/keyrings && \
curl --fail --show-error --silent --location --insecure https://pkg.cloudflare.com/cloudflare-main.gpg --output /usr/share/keyrings/cloudflare-main.gpg && \
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared buster main' | tee /etc/apt/sources.list.d/cloudflared.list && \
apt-get update && \
apt-get install --yes --no-install-recommends cloudflared && \
cloudflared version && \
rm -rf /var/lib/apt/lists/* && \
rm -f cloudflared.deb && \
apt --yes autoremove
# For nscd
COPY ./docker/etc/nscd.conf /etc/nscd.conf
COPY ./docker/etc/sudoers /etc/sudoers

View File

@@ -1,30 +1,52 @@
############################################
# Build in Golang
# Run npm run build-healthcheck-armv7 in the host first, another it will be super slow where it is building the armv7 healthcheck
# Check file: builder-go.dockerfile
############################################
FROM louislam/uptime-kuma:builder-go AS build_healthcheck
############################################
# Build in Node.js
############################################
FROM louislam/uptime-kuma:base-debian AS build
WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY .npmrc .npmrc
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN npm ci --omit=dev
COPY . .
RUN npm ci --production && \
chmod +x /app/extra/entrypoint.sh
COPY --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck
RUN chmod +x /app/extra/entrypoint.sh
############################################
# ⭐ Main Image
############################################
FROM louislam/uptime-kuma:base-debian AS release
WORKDIR /app
ENV UPTIME_KUMA_IS_CONTAINER=1
# Copy app files from build layer
COPY --from=build /app /app
EXPOSE 3001
VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD extra/healthcheck
ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"]
CMD ["node", "server/server.js"]
############################################
# Mark as Nightly
############################################
FROM release AS nightly
RUN npm run mark-as-nightly
############################################
# Build an image for testing pr
############################################
FROM louislam/uptime-kuma:base-debian AS pr-test
WORKDIR /app
@@ -50,12 +72,12 @@ RUN git clone https://github.com/louislam/uptime-kuma.git .
RUN npm ci
EXPOSE 3000 3001
VOLUME ["/app/data"]
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD node extra/healthcheck.js
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD extra/healthcheck
CMD ["npm", "run", "start-pr-test"]
############################################
# Upload the artifact to Github
############################################
FROM louislam/uptime-kuma:base-debian AS upload-artifact
WORKDIR /
RUN apt update && \

View File

@@ -3,10 +3,12 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
COPY .npmrc .npmrc
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN npm ci --omit=dev
COPY . .
RUN npm ci --production && \
chmod +x /app/extra/entrypoint.sh
RUN chmod +x /app/extra/entrypoint.sh
FROM louislam/uptime-kuma:base-alpine AS release
WORKDIR /app

90
docker/etc/nscd.conf Normal file
View File

@@ -0,0 +1,90 @@
#
# /etc/nscd.conf
#
# An example Name Service Cache config file. This file is needed by nscd.
#
# Legal entries are:
#
# logfile <file>
# debug-level <level>
# threads <initial #threads to use>
# max-threads <maximum #threads to use>
# server-user <user to run server as instead of root>
# server-user is ignored if nscd is started with -S parameters
# stat-user <user who is allowed to request statistics>
# reload-count unlimited|<number>
# paranoia <yes|no>
# restart-interval <time in seconds>
#
# enable-cache <service> <yes|no>
# positive-time-to-live <service> <time in seconds>
# negative-time-to-live <service> <time in seconds>
# suggested-size <service> <prime number>
# check-files <service> <yes|no>
# persistent <service> <yes|no>
# shared <service> <yes|no>
# max-db-size <service> <number bytes>
# auto-propagate <service> <yes|no>
#
# Currently supported cache names (services): passwd, group, hosts, services
#
# logfile /var/log/nscd.log
# threads 4
# max-threads 32
# server-user node
# stat-user somebody
debug-level 0
# reload-count 5
paranoia no
# restart-interval 3600
enable-cache passwd no
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd yes
shared passwd yes
max-db-size passwd 33554432
auto-propagate passwd yes
enable-cache group no
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
check-files group yes
persistent group yes
shared group yes
max-db-size group 33554432
auto-propagate group yes
enable-cache hosts yes
positive-time-to-live hosts 3600
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
# Set shared to "no" to display stats in `nscd -g`
# Read more: https://stackoverflow.com/questions/40429245/nscdcentos7curl-0-dns-cache-hit-rate
shared hosts no
max-db-size hosts 33554432
enable-cache services no
positive-time-to-live services 28800
negative-time-to-live services 20
suggested-size services 211
check-files services yes
persistent services yes
shared services yes
max-db-size services 33554432
enable-cache netgroup no
positive-time-to-live netgroup 28800
negative-time-to-live netgroup 20
suggested-size netgroup 211
check-files netgroup yes
persistent netgroup yes
shared netgroup yes
max-db-size netgroup 33554432

31
docker/etc/sudoers Normal file
View File

@@ -0,0 +1,31 @@
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
# Allow `node` to control service (mainly for nscd)
node ALL=(root) NOPASSWD: /usr/sbin/nscdservice
node ALL=(root) NOPASSWD: /usr/sbin/service

View File

@@ -22,7 +22,8 @@ if (! exists) {
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
// Also update package-lock.json
childProcess.spawnSync("npm", [ "install" ]);
const npm = /^win/.test(process.platform) ? "npm.cmd" : "npm";
childProcess.spawnSync(npm, [ "install" ]);
commit(version);
tag(version);
@@ -32,6 +33,10 @@ if (! exists) {
process.exit(1);
}
/**
* Commit updated files
* @param {string} version Version to update to
*/
function commit(version) {
let msg = "Update to " + version;
@@ -47,6 +52,10 @@ function commit(version) {
console.log(res.stdout.toString().trim());
}
/**
* Create a tag with the specified version
* @param {string} version Tag to create
*/
function tag(version) {
let res = childProcess.spawnSync("git", [ "tag", version ]);
console.log(res.stdout.toString().trim());
@@ -55,6 +64,11 @@ function tag(version) {
console.log(res.stdout.toString().trim());
}
/**
* Check if a tag exists for the specified version
* @param {string} version Version to check
* @returns {boolean} Does the tag already exist
*/
function tagExists(version) {
if (! version) {
throw new Error("invalid version");

View File

@@ -0,0 +1,27 @@
const childProcess = require("child_process");
const fs = require("fs");
const platform = process.argv[2];
if (!platform) {
console.error("No platform??");
process.exit(1);
}
if (platform === "linux/arm/v7") {
console.log("Arch: armv7");
if (fs.existsSync("./extra/healthcheck-armv7")) {
fs.renameSync("./extra/healthcheck-armv7", "./extra/healthcheck");
console.log("Already built in the host, skip.");
process.exit(0);
} else {
console.log("prebuilt not found, it will be slow! You should execute `npm run build-healthcheck-armv7` before build.");
}
} else {
if (fs.existsSync("./extra/healthcheck-armv7")) {
fs.rmSync("./extra/healthcheck-armv7");
}
}
const output = childProcess.execSync("go build -x -o ./extra/healthcheck ./extra/healthcheck.go").toString("utf8");
console.log(output);

View File

@@ -0,0 +1,60 @@
require("dotenv").config();
const { NodeSSH } = require("node-ssh");
const readline = require("readline");
const rl = readline.createInterface({ input: process.stdin,
output: process.stdout });
const prompt = (query) => new Promise((resolve) => rl.question(query, resolve));
(async () => {
try {
console.log("SSH to demo server");
const ssh = new NodeSSH();
await ssh.connect({
host: process.env.UPTIME_KUMA_DEMO_HOST,
port: process.env.UPTIME_KUMA_DEMO_PORT,
username: process.env.UPTIME_KUMA_DEMO_USERNAME,
privateKeyPath: process.env.UPTIME_KUMA_DEMO_PRIVATE_KEY_PATH
});
let cwd = process.env.UPTIME_KUMA_DEMO_CWD;
let result;
const version = await prompt("Enter Version: ");
result = await ssh.execCommand("git fetch --all", {
cwd,
});
console.log(result.stdout + result.stderr);
await prompt("Press any key to continue...");
result = await ssh.execCommand(`git checkout ${version} --force`, {
cwd,
});
console.log(result.stdout + result.stderr);
result = await ssh.execCommand("npm run download-dist", {
cwd,
});
console.log(result.stdout + result.stderr);
result = await ssh.execCommand("npm install --production", {
cwd,
});
console.log(result.stdout + result.stderr);
/*
result = await ssh.execCommand("pm2 restart 1", {
cwd,
});
console.log(result.stdout + result.stderr);*/
} catch (e) {
console.log(e);
} finally {
rl.close();
}
})();
// When done reading prompt, exit program
rl.on("close", () => process.exit(0));

View File

@@ -1,44 +0,0 @@
//
const http = require("https"); // or 'https' for https:// URLs
const fs = require("fs");
const platform = process.argv[2];
if (!platform) {
console.error("No platform??");
process.exit(1);
}
let arch = null;
if (platform === "linux/amd64") {
arch = "amd64";
} else if (platform === "linux/arm64") {
arch = "arm64";
} else if (platform === "linux/arm/v7") {
arch = "arm";
} else {
console.error("Invalid platform?? " + platform);
}
const file = fs.createWriteStream("cloudflared.deb");
get("https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-" + arch + ".deb");
function get(url) {
http.get(url, function (res) {
if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
console.log("Redirect to " + res.headers.location);
get(res.headers.location);
} else if (res.statusCode >= 200 && res.statusCode < 300) {
res.pipe(file);
res.on("end", function () {
console.log("Downloaded");
});
} else {
console.error(res.statusCode);
process.exit(1);
}
});
}

View File

@@ -47,6 +47,7 @@ function download(url) {
});
}
console.log("Done");
process.exit(0);
});
tarStream.on("error", () => {

1
extra/exe-builder/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
packages/

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.1" newVersion="4.1.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,84 @@
using System.ComponentModel;
namespace UptimeKuma {
partial class DownloadForm {
/// <summary>
/// Required designer variable.
/// </summary>
private IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DownloadForm));
this.progressBar = new System.Windows.Forms.ProgressBar();
this.label = new System.Windows.Forms.Label();
this.labelData = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// progressBar
//
this.progressBar.Location = new System.Drawing.Point(12, 12);
this.progressBar.Name = "progressBar";
this.progressBar.Size = new System.Drawing.Size(472, 41);
this.progressBar.TabIndex = 0;
//
// label
//
this.label.Location = new System.Drawing.Point(12, 59);
this.label.Name = "label";
this.label.Size = new System.Drawing.Size(472, 23);
this.label.TabIndex = 1;
this.label.Text = "Preparing...";
//
// labelData
//
this.labelData.Location = new System.Drawing.Point(12, 82);
this.labelData.Name = "labelData";
this.labelData.Size = new System.Drawing.Size(472, 23);
this.labelData.TabIndex = 2;
//
// DownloadForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(496, 117);
this.Controls.Add(this.labelData);
this.Controls.Add(this.label);
this.Controls.Add(this.progressBar);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "DownloadForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Uptime Kuma";
this.Load += new System.EventHandler(this.DownloadForm_Load);
this.ResumeLayout(false);
}
private System.Windows.Forms.Label labelData;
private System.Windows.Forms.Label label;
private System.Windows.Forms.ProgressBar progressBar;
#endregion
}
}

View File

@@ -0,0 +1,204 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json;
namespace UptimeKuma {
public partial class DownloadForm : Form {
private readonly Queue<DownloadItem> downloadQueue = new();
private readonly WebClient webClient = new();
private DownloadItem currentDownloadItem;
public DownloadForm() {
InitializeComponent();
}
private void DownloadForm_Load(object sender, EventArgs e) {
webClient.DownloadProgressChanged += DownloadProgressChanged;
webClient.DownloadFileCompleted += DownloadFileCompleted;
label.Text = "Reading latest version...";
// Read json from https://uptime.kuma.pet/version
var versionJson = new WebClient().DownloadString("https://uptime.kuma.pet/version");
var versionObj = JsonConvert.DeserializeObject<Version>(versionJson);
var nodeVersion = versionObj.nodejs;
var uptimeKumaVersion = versionObj.latest;
var hasUpdateFile = File.Exists("update");
if (!Directory.Exists("node")) {
downloadQueue.Enqueue(new DownloadItem {
URL = $"https://nodejs.org/dist/v{nodeVersion}/node-v{nodeVersion}-win-x64.zip",
Filename = "node.zip",
TargetFolder = "node"
});
}
if (!Directory.Exists("core") || hasUpdateFile) {
// It is update, rename the core folder to core.old
if (Directory.Exists("core")) {
// Remove the old core.old folder
if (Directory.Exists("core.old")) {
Directory.Delete("core.old", true);
}
Directory.Move("core", "core.old");
}
downloadQueue.Enqueue(new DownloadItem {
URL = $"https://github.com/louislam/uptime-kuma/archive/refs/tags/{uptimeKumaVersion}.zip",
Filename = "core.zip",
TargetFolder = "core"
});
File.WriteAllText("version.json", versionJson);
// Delete the update file
if (hasUpdateFile) {
File.Delete("update");
}
}
DownloadNextFile();
}
void DownloadNextFile() {
if (downloadQueue.Count > 0) {
var item = downloadQueue.Dequeue();
currentDownloadItem = item;
// Download if the zip file is not existing
if (!File.Exists(item.Filename)) {
label.Text = item.URL;
webClient.DownloadFileAsync(new Uri(item.URL), item.Filename);
} else {
progressBar.Value = 100;
label.Text = "Use local " + item.Filename;
DownloadFileCompleted(null, null);
}
} else {
npmSetup();
}
}
void npmSetup() {
labelData.Text = "";
var npm = "..\\node\\npm.cmd";
var cmd = $"{npm} ci --production & {npm} run download-dist & exit";
var startInfo = new ProcessStartInfo {
FileName = "cmd.exe",
Arguments = $"/k \"{cmd}\"",
RedirectStandardOutput = false,
RedirectStandardError = false,
RedirectStandardInput = true,
UseShellExecute = false,
CreateNoWindow = false,
WorkingDirectory = "core"
};
var process = new Process();
process.StartInfo = startInfo;
process.EnableRaisingEvents = true;
process.Exited += (_, e) => {
progressBar.Value = 100;
if (process.ExitCode == 0) {
Task.Delay(2000).ContinueWith(_ => {
Application.Restart();
});
label.Text = "Done";
} else {
label.Text = "Failed, exit code: " + process.ExitCode;
}
};
process.Start();
label.Text = "Installing dependencies and download dist files";
progressBar.Value = 50;
process.WaitForExit();
}
void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) {
progressBar.Value = e.ProgressPercentage;
var total = e.TotalBytesToReceive / 1024;
var current = e.BytesReceived / 1024;
if (total > 0) {
labelData.Text = $"{current}KB/{total}KB";
}
}
void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) {
Extract(currentDownloadItem);
DownloadNextFile();
}
void Extract(DownloadItem item) {
if (Directory.Exists(item.TargetFolder)) {
var dir = new DirectoryInfo(item.TargetFolder);
dir.Delete(true);
}
if (Directory.Exists("temp")) {
var dir = new DirectoryInfo("temp");
dir.Delete(true);
}
labelData.Text = $"Extracting {item.Filename}...";
ZipFile.ExtractToDirectory(item.Filename, "temp");
string[] dirList;
// Move to the correct level
dirList = Directory.GetDirectories("temp");
if (dirList.Length > 0) {
var dir = dirList[0];
// As sometime ExtractToDirectory is still locking the directory, loop until ok
while (true) {
try {
Directory.Move(dir, item.TargetFolder);
break;
} catch (Exception exception) {
Thread.Sleep(1000);
}
}
} else {
MessageBox.Show("Unexcepted Error: Cannot move extracted files, folder not found.");
}
labelData.Text = $"Extracted";
if (Directory.Exists("temp")) {
var dir = new DirectoryInfo("temp");
dir.Delete(true);
}
File.Delete(item.Filename);
}
}
public class DownloadItem {
public string URL { get; set; }
public string Filename { get; set; }
public string TargetFolder { get; set; }
}
}

View File

@@ -0,0 +1,377 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////BPT09Bfu7u4e8fHxJPPz8yv19fUy9fX1M/Pz8yvx8fEk9vb2HPPz8xXMzMwFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/wHv7+8f7u7uPPPz81Tx8fFs8fHxgPHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGB8fHxcfHx8V3x8fFI9PT0MOvr6w0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADy8vIU8fHxS/Dw8Hbx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fFr9PT0R/Dw8CIAAAABAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA8vLyFPHx8Vnx8fGB8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fFs9fX1Mb+/vwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAICAgALy8vI88fHxfvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvLy8nby8vI8gICAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAzMzMBfHx8Vrx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8vLyYf///wwAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwF8vLyYPHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8W/z8/MWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADv7+9R8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLw8PB26urqDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8ijx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgu7w7Ifj79ud2u7PtNLrw83P677dzeu85c3r
u+rM67rwzOu68c7rverQ68Dj0uvD3NbuyM3b7c+64u7apujv5ZPx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxXgAAAAEAAAAAAAAAAAAAAAAAAAAA4+PjCfDw
8Hfx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLd7tSmzeu92MbqsvvG6bH/xumy/8fq
s//H6rP/yOq0/8jqtf/J6rb/yeq2/8rrt//K67j/y+u4/8vruf/M67r/zOu7/83ru//Q7MDx1u7Kz9/t
163s8OuJ8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgu/v7y8AAAAAAAAAAAAA
AAAAAAAA7u7uPfHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC5PDdl8jqtuTE6a7/xOmv/8Xp
sP/G6bH/xumx/8bpsv/H6rP/x+qz/8jqtP/I6rX/yeq2/8nqtv/K67f/yuu4/8vruP/L67n/zOu6/8zr
u//N67v/zey8/87svf/P67742e3Mx+jv5ZLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvDw
8HWAgIACAAAAAAAAAACqqqoD8vLyc/Hx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLf7degxOiu+cPo
rf/D6a7/xOmu/8Xpr//F6bD/xumx/8bpsf/G6bL/x+qz/8fqs//I6rT/yOq1/8nqtv/J6rb/yuu3/8rr
uP/L67j/y+u5/8zruv/M67v/zeu7/83svP/O7L3/zuy9/87svfzc7tK28fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fEkAAAAAAAAAADz8/Mq8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgunv
5o3D6a/0wuis/8Lorf/D6K3/xOmu/8Tprv/F6a//xemw/8bpsf/G6bH/xumy/8fqs//H6rP/yOq0/8jq
tf/J6rb/yeq2/8rrt//K67j/y+u4/8vruf/M67r/zOu7/83ru//N7Lz/zuy9/87svf/O7L3/3e/TtPHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLy8vJNAAAAAAAAAADy8vJM8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgszqutDB6Kv/weir/8LorP/D6K3/w+it/8Tprv/E6a7/xemv/8XpsP/G6bH/xumx/8bp
sv/H6rP/x+qz/8jqtP/I6rX/yeq2/8nqtv/K67f/yuu4/8vruP/L67n/zOu6/8zru//N67v/zey8/87s
vf/O7L3/zuy++u3w6Yzx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLy8vJ1AAAAAAAAAADx8fFr8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC6O/kjsDoqvzA6Kr/weir/8Loq//C6Kz/w+it/8Porf/E6a7/xOmu/8Xp
r//F6bD/xumx/8bpsf/G6bL/x+qz/8fqtP/I6rT/yOq1/8nqtv/J6rb/yuu3/8rruP/L67n/y+u5/8zr
uv/M67v/zeu7/83svP/O7L3/zuy9/93u07Xx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC////Bv//
/wfx8fGB8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC1ezJsr/nqf/A56n/weiq/8Hoq//C6Kv/wuis/8Po
rf/D6K3/xOmu/8Pprv+856T/uOed/7bmmv+05Zf/teWZ/7jnnf+86KP/wOio/8fqs//J6rb/yeq2/8rr
t//K67j/y+u5/8vruf/M67r/zOu7/83ru//N7Lz/zuy9/9buyNLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8vLyE/Ly8hPx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGCy+q6zr/nqP/A56n/wOep/8Ho
qv/B6Kv/wuir/8LorP+u5Y//neF2/5bgav+V4Gr/luBr/5fhbP+Y4W7/meFv/5rhcf+b4nL/nOJ0/53i
dv+j5H//reaM/7nnnf/E6q//y+y4/8vruf/L67n/zOu6/8zru//N67v/zey8/9Lsxd/x8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC7+/vIPb29hzx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGCx+m03L/n
qP+/56j/wOep/8Dnqf/B6Kr/weir/7nmn/+R32T/kt9l/5PfZ/+U4Gj/leBq/5bga/+X4W3/mOFu/5nh
b/+a4XH/m+Jy/5zidP+d4nX/nuN3/5/jeP+f4nn/weqq/8rruP/L67n/y+u5/8zruv/M67v/zeu7/9Ls
w+Lx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8PDwI/Hx8SXx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGCxeix5L/nqP+/56j/v+eo/8Dnqf/A56n/weiq/7Pllv+Q3mP/kd9k/5LfZf+T32f/lOBo/5Xg
av+W4Gv/l+Ft/5jhbv+Z4W//muFx/5vicv+c4nT/neJ1/57jd/+f43j/xOmu/8rrt//K67j/y+u5/8vr
uf/M67r/zOu7/9Tsxtfx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC9PT0GO/v7yDx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGCx+m037/nqP+/56j/v+eo/7/nqP/A56n/wOip/7TmmP+P3mH/kN5j/5Hf
ZP+S32b/k99n/5TgaP+V4Gr/luBr/5fhbf+Y4W7/meFw/5rhcf+b4nL/nOJ0/53idf+h5Hz/yuu2/8nq
t//K67f/yuu4/8vruf/L67n/zOu6/9ftysrx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC7e3tDvT0
9Bfx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGCyOq117/nqP+/56j/v+eo/7/nqP+/56j/wOep/7vn
of+O3mD/j95h/5DeY/+R32T/kt9m/5PfZ/+U4Gj/leBq/5bga/+X4W3/mOFu/5nhcP+a4nH/m+Jy/5zi
dP+r5Yr/yOq1/8nqtv/J6rf/yuu3/8rruP/L67n/y+u5/9zu1LHx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLz8/OA////A+7u7g/x8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGCz+q+xb/nqP+/56j/v+eo/7/n
qP+/56j/v+eo/8Dnqf+S4Gb/jt5g/4/eYf+Q3mP/kd9k/5LfZv+T32f/lOBo/5Xgav+W4Gv/l+Ft/5jh
bv+Z4XD/muJx/5vic/+4553/yOq0/8jqtf/J6rb/yeq3/8rrt//K67j/y+u5/+bw4Zfx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fFrAAAAAP///wHz8/N88fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC1+zMrr/n
qP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+f4Xn/jd5f/47eYP+P3mH/kN5j/5HfZP+S32b/k99n/5Tg
af+V4Gr/luBr/5fhbf+Y4W7/meFw/5vic//F6rD/x+q0/8jqtP/I6rX/yeq2/8nqt//K67f/zOu88u/x
74Px8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLv7+9QAAAAAAAAAADw8PBm8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC5e7gk7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+u5I//jN1d/43eX/+O3mD/j95h/5De
Y/+R32T/kt9m/5PfZ/+U4Gn/leBq/5bga/+X4W3/mOFu/6rliP/G6rL/x+qz/8fqtP/I6rT/yOq1/8nq
tv/J6rf/1OzGy/Hx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YL19fUzAAAAAAAAAADy8vJO8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgsPoru2/56j/v+eo/7/nqP+/56j/v+eo/7/nqP++6Kf/j95i/4zd
Xf+N3l//jt5g/4/eYv+Q3mP/kd9k/5LfZv+T32f/lOBp/5Xgav+W4Gz/l+Ft/7voov/G6bL/xuqy/8fq
s//H6rT/yOq1/8jqtf/J6rb/4e/Zo/Hx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLw8PARAAAAAAAA
AADu7u4u8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgszpvMm/56j/v+eo/7/nqP+/56j/v+eo/7/n
qP+/56j/q+SL/4vdXP+M3V3/jd5f/47eYP+P3mL/kN9j/5HfZP+S32b/k99n/5Tgaf+V4Gr/qOOH/8Xp
sP/G6bH/xumy/8bqsv/H6rP/x+q0/8jqtf/K67jy8PHwhPHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8WoAAAAAAAAAAAAAAADo6OgL8fHxgfHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxguDv2J2/56j/v+eo/7/n
qP+/56j/v+eo/7/nqP+/56j/v+eo/6Xjgv+L3Vz/jN1d/43eX/+O3mD/j95i/5DfY/+R32T/kt9m/5Pf
Z/+k44D/xOmu/8XpsP/F6bD/xumx/8bpsv/G6rL/x+qz/8fqtP/W7cnB8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvPz80AAAAAAAAAAAAAAAAAAAAAA8PDwZ/Hx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLD6K/rv+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+u5I//kt5n/4zdXf+N3l//jt5g/4/e
Yv+Q32P/luFs/67kj//D6K3/xOmu/8Tpr//F6bD/xemw/8bpsf/G6bL/xuqy/8fqtP7o7+WR8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvPz8xYAAAAAAAAAAAAAAAAAAAAA8vLyPPHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLV7ci0v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/wOio/7Xl
mv+u5I7/rOSM/67kj/+35pz/wumr/8Lorf/D6K3/w+it/8Tprv/E6a//xemw/8XpsP/G6bH/xumy/9Ds
wNPx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8vLyZQAAAAAAAAAAAAAAAAAAAAAAAAAA////DPHx
8YDx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGCx+m03L/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/n
qP+/56j/v+eo/7/nqP+/56j/wOep/8Doqv/B6Kr/weir/8LorP/C6K3/w+it/8Porv/E6a7/xOmv/8Xp
sP/F6bD/yOq18uvw6Yvx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC7+/vMQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAPHx8Vzx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC6O/ij8LorPG/56j/v+eo/7/n
qP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/8Dnqf/A6Kr/weiq/8Hoq//C6Kz/wuit/8Po
rf/D6K7/xOmu/8Tpr//F6bH74u/anvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLw8PB6////BQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8yrx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxguHu
2pnB56v2v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP/A56n/wOiq/8Ho
q//B6Kv/wuis/8Lorf/D6K3/w+mu/8Tprv3b7dKq8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fFJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHy8vJf8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLi7tyXwumt8L/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/n
qP+/56j/wOep/8Doqv/B6Kv/weir/8LorP/C6K3/xOiv+d7u1aTx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvLy8nb///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADv7+8Q8/Pze/Hx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC6/Dpiszqu82/56j/v+eo/7/nqP+/56j/v+eo/7/n
qP+/56j/v+eo/7/nqP+/56j/v+eo/8Dnqf/A6Kr/weir/8Hoq//H6bTj5e7elfHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvPz8yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA9fX1MvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLe7tShx+mz3r/n
qP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/v+eo/7/nqP/A56n/xumy5drtz6rv8e+D8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8vLyTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPHx8Unx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgubv45DU68e2y+q6z8XoseTD6a7uweir9MPpru7F6bHly+q50tLsxLrl796U8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLy8vJh////AwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wHx8fFZ8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8Wzf398IAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D8/PzVfHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8PDwZujo
6AsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////AfHx8Ujx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fFa////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/Mp8vLydvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8/PzfPHx8TcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CvLy8lDz8/N/8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvPz84Hx8fFa8PDwEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADw8PAR8vLyTvHx8X3x8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fF/8/PzVvT09BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wXz8/Mq8/PzU/Hx8XDx8fGB8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLy8vJz8fHxWO/v7y////8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8G7e3tHfLy
8ifu7u4u8PDwNPT09C/y8vIo7+/vH+Pj4wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///////wAA////////AAD///////8AAP//gAf//wAA//gAAD//AAD/wAAAB/8AAP+A
AAAB/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADwAAAAAAcAAOAAAAAABwAA4AAAAAAD
AADAAAAAAAMAAMAAAAAAAwAAwAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA
AAAAAQAAgAAAAAABAACAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAABwAAwAAAAAAH
AADgAAAAAAcAAOAAAAAADwAA4AAAAAAPAADwAAAAAB8AAPAAAAAAHwAA+AAAAAA/AAD8AAAAAD8AAPwA
AAAAfwAA/gAAAAD/AAD/AAAAAf8AAP+AAAAD/wAA/8AAAAf/AAD/8AAAH/8AAP/8AAA//wAA//8AAf//
AAD//+AP//8AAP///////wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgICAAu/v7xD09PQX7u7uHvDw8CP29vYb8vLyFOrq6gwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA
gALy8vIm7+/vT/Pz82fz8/N98fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvDw8Hrw8PBm7+/vUPT0
9C3o6OgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj
4wnz8/NC8vLydPHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YHy8vJj8/PzKoCAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADx8fEl8vLydfHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxcfHx8SUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA9PT0LfHx8YDx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8/PzgPLy8j0AAAABAAAAAAAA
AAAAAAAAAAAAAO3t7Rzx8fGA8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLr8OmM5O7emeTv
3Z7h79mj5fDem+nv45Tu8u6H8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvLy
8joAAAAAAAAAAAAAAAD///8E8fHxbvHx8YLx8fGC8fHxgvHx8YLx8fGC7vDshtns0K7N67zayeq288fq
s//I6rT/yOq1/8nqtv/K67f/y+u4/8vruf/P7L7w0+zF29vv0Lrn8OKX8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8/PzfvPz8xUAAAAAAAAAAPX19TLx8fGC8fHxgvHx8YLx8fGC8fHxgt3u1KXF6rHzxOmv/8Xp
sP/G6bH/xumy/8fqs//I6rT/yOq1/8nqtv/K67f/y+u4/8vruf/M67v/zey8/87svf/S7MPj4u7Zp/Hx
8YLx8fGC8fHxgvHx8YLx8fGC8/PzVQAAAAAAAAAA8fHxavHx8YLx8fGC8fHxgvHx8YLf7defwuis/cPo
rf/E6a7/xOmv/8XpsP/G6bH/xumy/8fqs//I6rT/yOq1/8nqtv/K67f/y+u4/8vruv/M67v/zey8/87s
vf/N67z/3e7SufHx8YLx8fGC8fHxgvHx8YLz8/N8////Bf///w3x8fGC8fHxgvHx8YLx8fGC8fHxgsXp
sOnB6Kv/wuis/8Porf/E6a7/xOmv/8XpsP/G6bH/xumy/8fqs//I6rT/yOq1/8nqtv/K67f/y+u4/8vr
uv/M67v/zey8/87svf/O67z96/Hoj/Hx8YLx8fGC8fHxgvHx8YLy8vIm8/PzK/Hx8YLx8fGC8fHxgvHx
8YLg79icwOep/8Hoqv/B6Kv/wuis/8Porf/E6a7/wuit/73opP+76KL/u+eh/77opv/D6a3/yeu1/8nq
tv/K67f/y+u5/8zruv/M67v/zey8/87svf/d7tSz8fHxgvHx8YLx8fGC8fHxgvHx8Tby8vI68fHxgvHx
8YLx8fGC8fHxgtTrxre/56j/wOep/8Hoqv/B6Kv/uOad/53idv+V4Gn/leBq/5fhbP+Y4W//muFx/5vi
c/+e4Xb/puWD/7PmlP/D6a3/y+u5/8zruv/M67v/zey8/9rtzsHx8fGC8fHxgvHx8YLx8fGC8/PzQfPz
80Lx8fGC8fHxgvHx8YLx8fGC0OvAwr/nqP+/56j/wOep/8Hoqv+o44b/kd9k/5LfZv+U4Gj/leBq/5fh
bf+Y4W//muFx/5vic/+d4nX/n+N3/7fnm//K67j/y+u5/8zruv/M67v/2u3QvPHx8YLx8fGC8fHxgvHx
8YLy8vI98/PzP/Hx8YLx8fGC8fHxgvHx8YLQ6sK/v+eo/7/nqP+/56j/wOep/6jjhv+P3mL/kd9k/5Lf
Zv+U4Gj/leBr/5fhbf+Y4W//muFx/5zic/+d4nX/v+mm/8nqt//K67j/y+u5/8zruv/f79au8fHxgvHx
8YLx8fGC8fHxgvX19TLx8fE38fHxgvHx8YLx8fGC8fHxgtTrybO/56j/v+eo/7/nqP+/56j/sOSS/47e
YP+P3mL/kd9k/5LfZv+U4Gj/leBr/5fhbf+Z4W//muJx/5/jd//H6bP/yeq2/8nqt//K67j/y+u5/+nv
45Tx8fGC8fHxgvHx8YLx8fGC7+/vIPHx8SXx8fGC8fHxgvHx8YLx8fGC4e/Zm7/nqP+/56j/v+eo/7/n
qP+956X/jt5h/47eYP+P3mL/kd9k/5LfZv+U4Gn/luBr/5fhbf+Z4W//q+aK/8fqs//I6rT/yeq2/8nq
t//N7Lvw8fHxgvHx8YLx8fGC8fHxgvPz84D///8G6+vrDfHx8YLx8fGC8fHxgvHx8YLv8e+Dweis87/n
qP+/56j/v+eo/7/nqP+d4XX/jN1e/47eYP+P3mL/kd9k/5PfZ/+U4Gn/luBr/5fhbf+86KP/xuqy/8fq
s//I6rX/yeq2/9Tsx8nx8fGC8fHxgvHx8YLx8fGC8PDwaAAAAAAAAAAA8fHxbPHx8YLx8fGC8fHxgvHx
8YLM6rrMv+eo/7/nqP+/56j/v+eo/7blmv+N3V//jN1e/47eYP+Q3mL/kd9k/5PfZ/+U4Gn/qeSH/8Xp
sP/G6bH/xuqy/8fqs//I6rX/5fDem/Hx8YLx8fGC8fHxgvHx8YLz8/M/AAAAAAAAAADz8/NB8fHxgvHx
8YLx8fGC8fHxgt3s06O/56j/v+eo/7/nqP+/56j/v+eo/7Xmmf+U32n/jN1e/47eYP+Q3mL/k99o/6zk
i//D6a7/xemv/8XpsP/G6bH/xuqy/8vqu+jx8fGC8fHxgvHx8YLx8fGC8fHxgvPz8xUAAAAAAAAAAPT0
9Bfx8fGC8fHxgvHx8YLx8fGC8fHvg8Tpsee/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+35pz/suWV/7Xm
mf/A6Kj/wuit/8Porf/E6a7/xemv/8XpsP/G6bH/3e3UqvHx8YLx8fGC8fHxgvHx8YLw8PBmAAAAAAAA
AAAAAAAAAAAAAPHx8W7x8fGC8fHxgvHx8YLx8fGC4u7cmMHnqvm/56j/v+eo/7/nqP+/56j/v+eo/7/n
qP+/56j/wOep/8Hoqv/C6Kz/wuit/8Porf/E6a7/xemv/9Hrwszx8fGC8fHxgvHx8YLx8fGC8fHxgvX1
9TEAAAAAAAAAAAAAAAAAAAAA7u7uO/Hx8YLx8fGC8fHxgvHx8YLx8fGC3e7SpMHoqfq/56j/v+eo/7/n
qP+/56j/v+eo/7/nqP+/56j/wOip/8Hoq//C6Kz/wuit/8Porf/O67zV8PHwhPHx8YLx8fGC8fHxgvHx
8YLy8vJ2////BQAAAAAAAAAAAAAAAAAAAACqqqoD8PDwafHx8YLx8fGC8fHxgvHx8YLx8fGC4O/YnMTo
ruy/56j/v+eo/7/nqP+/56j/v+eo/7/nqP+/56j/wOip/8Hoq//C6Kz90uvEwe/x74Px8fGC8fHxgvHx
8YLx8fGC8fHxgvPz8ykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MW8fHxfPHx8YLx8fGC8fHxgvHx
8YLx8fGC8PLuhdXtyLXF6bHlv+eo/7/nqP+/56j/v+eo/7/nqP/B6Kv0zeq8zOXv4JTx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLy8vJNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADy8vIm8fHxgPHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLs8OmJ4e/Zm93u06Pf7def5+/hkvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxXf///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADy8vIo8/PzffHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8VnMzMwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD29vYb8fHxbvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvPz83/v7+9BgICAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwF8/PzQPLy8nnx8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgvPz84Hx8fFc9PT0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////B/X19TLx8fFc8PDwevHx
8YLx8fGC8fHxgvHx8YLx8fGC8fHxgPHx8Wv09PRE9PT0FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA7+/vEPb29hvw8PAj7+/vH/T09Be/v78EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////8B///wAA//wAAD/wAAAP4AAAB+AA
AAfAAAADwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAADwAAAA8AAAAPAAAAH4AAAB+AA
AA/wAAAP+AAAH/gAAD/+AAB//wAB///AA///+B////////////8oAAAAEAAAACAAAAABACAAAAAAAAAE
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CfDw8BH///8GAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAu7u7i7x8fFe8PDwevHx8YLx8fGC8fHxgvDw
8Hvx8fFs7+/vT/Dw8CMAAAABAAAAAAAAAAAAAAAA5ubmCvLy8l/x8fGC8fHxgvHx8YLx8fGC8fHxgvHx
8YLx8fGC8fHxgvHx8YLx8fGC8/PzZu7u7g8AAAAAAAAAAPHx8V3x8fGC8fHxgunv5o7Z7c200+vFytTs
xc7W7cnH2+7QueLu2qbu8OyH8fHxgvHx8YLx8fFu////BfHx8STx8fGC8fHxgtrtzq3D6a/8xemw/8bp
sv/I6rT/yeq2/8vruP/M67v/z+u++Nzu0bjx8fGC8fHxgu/v7zDx8fFI8fHxguzw6ojC56z3wuis/8Tp
rv/E6q3/weiq/8fqsv/J6rb/y+u5/8zru//N67z/6/HpjfHx8YLy8vJN8fHxXPHx8YLg79icv+eo/8Ho
qv+k4n//lOBo/5fhbf+a4XH/n+J5/7Pmlv/L67n/zOu7/+Xw353x8fGC8fHxXvHx8Vrx8fGC4O3Zm7/n
qP+/56j/nuF3/5HfZP+U4Gj/l+Ft/5ricf+x5pL/yeq3/8vruf/r8emN8fHxgu/v70/x8fFK8fHxguzw
6ojA6Kn8v+eo/6njiP+O3mD/kd9k/5Tgaf+X4W3/vuim/8jqtP/N67zr8fHxgvHx8YLy8vI68/PzK/Hx
8YLx8fGCx+m03L/nqP++6Kb/meBw/47eYP+S32X/q+SL/8XpsP/G6rL/1+zLvvHx8YLz8/OB8PDwEdXV
1Qbx8fF98fHxgt/t1Z/A56j9v+eo/7/nqP+656H/vuim/8Lorf/E6a7/yOq18Ovw6Yvx8fGC8vLyYwAA
AAAAAAAA8fHxR/Hx8YLx8fGC2O3NrMDnqfq/56j/v+eo/7/nqP/B6Kv/xumy7OTu3Zfx8fGC8/PzgfLy
8icAAAAAAAAAAP///wPz8/Nm8fHxgvHx8YLo7+SO0+zFuczquszM6bzJ1+zMru7w7Ibx8fGC8fHxgvHx
8UcAAAAAAAAAAAAAAAAAAAAA4+PjCfHx8Vzx8fGC8fHxgvHx8YLx8fGC8fHxgvHx8YLx8fGC8fHxgfPz
80D///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8/PzK/Ly8mDz8/N+8fHxgvHx8YLy8vJ68vLyUezs
7BsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAevr6w3j4+MJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD8fwAA4AcAAMADAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
AADAAwAAwAMAAOAHAADwDwAA/n8AAP//AAA=
</value>
</data>
</root>

View File

@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura DisableCompression='true' IncludeDebugSymbols='false' />
</Weavers>

View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeRuntimeReferences" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if runtime assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UseRuntimeReferencePaths" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCleanup" type="xs:boolean">
<xs:annotation>
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,243 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Win32;
using Newtonsoft.Json;
using UptimeKuma.Properties;
namespace UptimeKuma {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args) {
var cwd = Path.GetDirectoryName(Application.ExecutablePath);
if (cwd != null) {
Environment.CurrentDirectory = cwd;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new UptimeKumaApplicationContext());
}
}
public class UptimeKumaApplicationContext : ApplicationContext
{
private static Mutex mutex = null;
const string appName = "Uptime Kuma";
private NotifyIcon trayIcon;
private Process process;
private MenuItem statusMenuItem;
private MenuItem runWhenStarts;
private MenuItem openMenuItem;
private RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
public UptimeKumaApplicationContext() {
// Single instance only
bool createdNew;
mutex = new Mutex(true, appName, out createdNew);
if (!createdNew) {
return;
}
var startingText = "Starting server...";
trayIcon = new NotifyIcon();
trayIcon.Text = startingText;
runWhenStarts = new MenuItem("Run when system starts", RunWhenStarts);
runWhenStarts.Checked = registryKey.GetValue(appName) != null;
statusMenuItem = new MenuItem(startingText);
statusMenuItem.Enabled = false;
openMenuItem = new MenuItem("Open", Open);
openMenuItem.Enabled = false;
trayIcon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);
trayIcon.ContextMenu = new ContextMenu(new MenuItem[] {
statusMenuItem,
openMenuItem,
//new("Debug Console", DebugConsole),
runWhenStarts,
new("Check for Update...", CheckForUpdate),
new("Visit GitHub...", VisitGitHub),
new("About", About),
new("Exit", Exit),
});
trayIcon.MouseDoubleClick += new MouseEventHandler(Open);
trayIcon.Visible = true;
var hasUpdateFile = File.Exists("update");
if (!hasUpdateFile && Directory.Exists("core") && Directory.Exists("node") && Directory.Exists("core/node_modules") && Directory.Exists("core/dist")) {
// Go go go
StartProcess();
} else {
DownloadFiles();
}
}
void DownloadFiles() {
var form = new DownloadForm();
form.Closed += Exit;
form.Show();
}
private void RunWhenStarts(object sender, EventArgs e) {
if (registryKey == null) {
MessageBox.Show("Error: Unable to set startup registry key.");
return;
}
if (runWhenStarts.Checked) {
registryKey.DeleteValue(appName, false);
runWhenStarts.Checked = false;
} else {
registryKey.SetValue(appName, Application.ExecutablePath);
runWhenStarts.Checked = true;
}
}
void StartProcess() {
var startInfo = new ProcessStartInfo {
FileName = "node/node.exe",
Arguments = "server/server.js --data-dir=\"../data/\"",
RedirectStandardOutput = false,
RedirectStandardError = false,
UseShellExecute = false,
CreateNoWindow = true,
WorkingDirectory = "core"
};
process = new Process();
process.StartInfo = startInfo;
process.EnableRaisingEvents = true;
process.Exited += ProcessExited;
try {
process.Start();
//Open(null, null);
// Async task to check if the server is ready
Task.Run(() => {
var runningText = "Server is running";
using TcpClient tcpClient = new TcpClient();
while (true) {
try {
tcpClient.Connect("127.0.0.1", 3001);
statusMenuItem.Text = runningText;
openMenuItem.Enabled = true;
trayIcon.Text = runningText;
break;
} catch (Exception) {
System.Threading.Thread.Sleep(2000);
}
}
});
} catch (Exception e) {
MessageBox.Show("Startup failed: " + e.Message, "Uptime Kuma Error");
}
}
void StopProcess() {
process?.Kill();
}
void Open(object sender, EventArgs e) {
Process.Start("http://localhost:3001");
}
void DebugConsole(object sender, EventArgs e) {
}
void CheckForUpdate(object sender, EventArgs e) {
var needUpdate = false;
// Check version.json exists
if (File.Exists("version.json")) {
// Load version.json and compare with the latest version from GitHub
var currentVersionObj = JsonConvert.DeserializeObject<Version>(File.ReadAllText("version.json"));
var versionJson = new WebClient().DownloadString("https://uptime.kuma.pet/version");
var latestVersionObj = JsonConvert.DeserializeObject<Version>(versionJson);
// Compare version, if the latest version is newer, then update
if (new System.Version(latestVersionObj.latest).CompareTo(new System.Version(currentVersionObj.latest)) > 0) {
var result = MessageBox.Show("A new version is available. Do you want to update?", "Update", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) {
// Create a empty file `update`, so the app will download the core files again at startup
File.Create("update").Close();
trayIcon.Visible = false;
process?.Kill();
// Restart the app, it will download the core files again at startup
Application.Restart();
}
} else {
MessageBox.Show("You are using the latest version.");
}
}
}
void VisitGitHub(object sender, EventArgs e)
{
Process.Start("https://github.com/louislam/uptime-kuma");
}
void About(object sender, EventArgs e)
{
MessageBox.Show("Uptime Kuma Windows Runtime v1.0.0" + Environment.NewLine + "© 2023 Louis Lam", "Info");
}
void Exit(object sender, EventArgs e)
{
// Hide tray icon, otherwise it will remain shown until user mouses over it
trayIcon.Visible = false;
process?.Kill();
Application.Exit();
}
void ProcessExited(object sender, EventArgs e) {
if (process.ExitCode != 0) {
var line = "";
while (!process.StandardOutput.EndOfStream)
{
line += process.StandardOutput.ReadLine();
}
MessageBox.Show("Uptime Kuma exited unexpectedly. Exit code: " + process.ExitCode + " " + line);
}
trayIcon.Visible = false;
Application.Exit();
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Uptime Kuma")]
[assembly: AssemblyDescription("A portable executable for running Uptime Kuma")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Uptime Kuma")]
[assembly: AssemblyProduct("Uptime Kuma")]
[assembly: AssemblyCopyright("Copyright © 2023 Louis Lam")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("86B40AFB-61FC-433D-8C31-650B0F32EA8F")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]

View File

@@ -0,0 +1,62 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace UptimeKuma.Properties {
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder",
"4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance",
"CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState
.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if ((resourceMan == null)) {
global::System.Resources.ResourceManager temp =
new global::System.Resources.ResourceManager("UptimeKuma.Properties.Resources",
typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState
.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get { return resourceCulture; }
set { resourceCulture = value; }
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace UptimeKuma.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance =
((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get { return defaultInstance; }
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1,212 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>UptimeKuma</RootNamespace>
<AssemblyName>uptime-kuma</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<ApplicationIcon>..\..\public\favicon.ico</ApplicationIcon>
<LangVersion>9</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>COPY "$(SolutionDir)bin\Debug\uptime-kuma.exe" "%UserProfile%\Desktop\uptime-kuma-win64\"</PostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="Costura, Version=5.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Console, Version=4.0.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Console.4.3.1\lib\net46\System.Console.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=7.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Diagnostics.DiagnosticSource.7.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
</Reference>
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Extensions, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.Extensions.4.3.1\lib\net462\System.Runtime.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
</Reference>
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Text.RegularExpressions.4.3.1\lib\net463\System.Text.RegularExpressions.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DownloadForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DownloadForm.Designer.cs">
<DependentUpon>DownloadForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Version.cs" />
<EmbeddedResource Include="DownloadForm.resx">
<DependentUpon>DownloadForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="..\..\public\favicon.ico">
<Link>favicon.ico</Link>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include=".gitignore" />
<Content Include="app.manifest" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<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>
</PropertyGroup>
<Error Condition="!Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
<Error Condition="!Exists('packages\Fody.6.6.4\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Fody.6.6.4\build\Fody.targets'))" />
<Error Condition="!Exists('packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
</Target>
<Import Project="packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
<Import Project="packages\Fody.6.6.4\build\Fody.targets" Condition="Exists('packages\Fody.6.6.4\build\Fody.targets')" />
<Import Project="packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
</Project>

View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UptimeKuma", "UptimeKuma.csproj", "{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DB53988-1D93-4AC0-90C4-96ADEAAC5C04}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,3 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=UptimeKuma_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@@ -0,0 +1,9 @@
namespace UptimeKuma {
public class Version {
public string latest { get; set; }
public string slow { get; set; }
public string beta { get; set; }
public string nodejs { get; set; }
public string exe { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Costura.Fody" version="5.7.0" targetFramework="net472" developmentDependency="true" />
<package id="Fody" version="6.6.4" targetFramework="net472" developmentDependency="true" />
<package id="Microsoft.NETCore.Platforms" version="7.0.0" targetFramework="net472" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net472" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.2" targetFramework="net472" />
<package id="System.AppContext" version="4.3.0" targetFramework="net472" />
<package id="System.Console" version="4.3.1" targetFramework="net472" />
<package id="System.Diagnostics.DiagnosticSource" version="7.0.1" targetFramework="net472" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net472" />
<package id="System.Runtime.Extensions" version="4.3.1" targetFramework="net472" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net472" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net472" />
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net472" />
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Net.Primitives" version="4.3.1" targetFramework="net472" />
<package id="System.Runtime" version="4.3.1" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Collections" version="4.3.0" targetFramework="net472" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net472" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net472" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net472" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net472" />
<package id="System.Globalization" version="4.3.0" targetFramework="net472" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net472" />
<package id="System.IO" version="4.3.0" targetFramework="net472" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net472" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net472" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net472" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.Linq" version="4.3.0" targetFramework="net472" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net472" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net472" />
<package id="System.Reflection" version="4.3.0" targetFramework="net472" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net472" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net472" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net472" />
<package id="System.Threading" version="4.3.0" targetFramework="net472" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net472" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net472" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net472" />
</packages>

90
extra/healthcheck.go Normal file
View File

@@ -0,0 +1,90 @@
/*
* If changed, have to run `npm run build-docker-builder-go`.
* This script should be run after a period of time (180s), because the server may need some time to prepare.
*/
package main
import (
"crypto/tls"
"io/ioutil"
"log"
"net/http"
"os"
"runtime"
"strings"
"time"
)
func main() {
isFreeBSD := runtime.GOOS == "freebsd"
// Is K8S + uptime-kuma as the container name
// See #2083
isK8s := strings.HasPrefix(os.Getenv("UPTIME_KUMA_PORT"), "tcp://")
// process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{
InsecureSkipVerify: true,
}
client := http.Client{
Timeout: 28 * time.Second,
}
sslKey := os.Getenv("UPTIME_KUMA_SSL_KEY")
if len(sslKey) == 0 {
sslKey = os.Getenv("SSL_KEY")
}
sslCert := os.Getenv("UPTIME_KUMA_SSL_CERT")
if len(sslCert) == 0 {
sslCert = os.Getenv("SSL_CERT")
}
hostname := os.Getenv("UPTIME_KUMA_HOST")
if len(hostname) == 0 && !isFreeBSD {
hostname = os.Getenv("HOST")
}
if len(hostname) == 0 {
hostname = "127.0.0.1"
}
port := ""
// UPTIME_KUMA_PORT is override by K8S unexpectedly,
if !isK8s {
port = os.Getenv("UPTIME_KUMA_PORT")
}
if len(port) == 0 {
port = os.Getenv("PORT")
}
if len(port) == 0 {
port = "3001"
}
protocol := ""
if len(sslKey) != 0 && len(sslCert) != 0 {
protocol = "https"
} else {
protocol = "http"
}
url := protocol + "://" + hostname + ":" + port
log.Println("Checking " + url)
resp, err := client.Get(url)
if err != nil {
log.Fatalln(err)
}
defer resp.Body.Close()
_, err = ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
log.Printf("Health Check OK [Res Code: %d]\n", resp.StatusCode)
}

View File

@@ -1,7 +1,12 @@
/*
* ⚠️ ⚠️ ⚠️ ⚠️ Due to the weird issue in Portainer that the healthcheck script is still pointing to this script for unknown reason.
* IT CANNOT BE DROPPED, even though it looks like it is not used.
* See more: https://github.com/louislam/uptime-kuma/issues/2774#issuecomment-1429092359
*
* ⚠️ Deprecated: Changed to healthcheck.go, it will be deleted in the future.
* 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");
const FBSD = /^freebsd/.test(process.platform);
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

View File

@@ -5,15 +5,15 @@
// curl -o kuma_install.sh https://raw.githubusercontent.com/louislam/uptime-kuma/master/install.sh && sudo bash kuma_install.sh
println("=====================");
println("Uptime Kuma Installer");
println("Uptime Kuma Install Script");
println("=====================");
println("Supported OS: CentOS 7/8, Ubuntu >= 16.04 and Debian");
println("Supported OS: Ubuntu >= 16.04, Debian and CentOS/RHEL 7/8");
println("---------------------------------------");
println("This script is designed for Linux and basic usage.");
println("For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation");
println("---------------------------------------");
println("");
println("Local - Install Uptime Kuma in your current machine with git, Node.js 14 and pm2");
println("Local - Install Uptime Kuma on your current machine with git, Node.js and pm2");
println("Docker - Install Uptime Kuma Docker container");
println("");
@@ -29,14 +29,10 @@ function checkNode() {
bash("nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')");
println("Node Version: " ++ nodeVersion);
if (nodeVersion < "12") {
if (nodeVersion <= "12") {
println("Error: Required Node.js 14");
call("exit", "1");
}
if (nodeVersion == "12") {
println("Warning: NodeJS " ++ nodeVersion ++ " is not tested.");
}
}
function deb() {
@@ -60,8 +56,8 @@ function deb() {
bash("apt --yes install curl");
}
println("Installing Node.js 14");
bash("curl -sL https://deb.nodesource.com/setup_14.x | bash - > log.txt");
println("Installing Node.js 16");
bash("curl -sL https://deb.nodesource.com/setup_16.x | bash - > log.txt");
bash("apt --yes install nodejs");
bash("node -v");
@@ -91,6 +87,10 @@ if (type == "local") {
bash("os=$(head -n1 /etc/issue | cut -f 1 -d ' ')");
if (os == "Ubuntu") {
distribution = "ubuntu";
// Get ubuntu version
bash(". /etc/lsb-release");
version = DISTRIB_RELEASE;
}
if (os == "Debian") {
distribution = "debian";
@@ -101,6 +101,7 @@ if (type == "local") {
println("Your OS: " ++ os);
println("Distribution: " ++ distribution);
println("Version: " ++ version);
println("Arch: " ++ arch);
if ("$3" != "") {
@@ -131,15 +132,32 @@ if (type == "local") {
checkNode();
} else {
bash("curlCheck=$(curl --version)");
if (curlCheck == "") {
println("Installing Curl");
bash("yum -y -q install curl");
bash("dnfCheck=$(dnf --version)");
// Use yum
if (dnfCheck == "") {
bash("curlCheck=$(curl --version)");
if (curlCheck == "") {
println("Installing Curl");
bash("yum -y -q install curl");
}
println("Installing Node.js 16");
bash("curl -sL https://rpm.nodesource.com/setup_16.x | bash - > log.txt");
bash("yum install -y -q nodejs");
} else {
bash("curlCheck=$(curl --version)");
if (curlCheck == "") {
println("Installing Curl");
bash("dnf -y install curl");
}
println("Installing Node.js 16");
bash("curl -sL https://rpm.nodesource.com/setup_16.x | bash - > log.txt");
bash("dnf install -y nodejs");
}
println("Installing Node.js 14");
bash("curl -sL https://rpm.nodesource.com/setup_14.x | bash - > log.txt");
bash("yum install -y -q nodejs");
bash("node -v");
bash("nodeCheckAgain=$(node -v)");
@@ -171,13 +189,15 @@ if (type == "local") {
bash("check=$(git --version)");
if (check == "") {
error = 1;
println("Error: git is missing");
println("Error: git is not found!");
println("help: an installation guide is available at https://git-scm.com/book/en/v2/Getting-Started-Installing-Git");
}
bash("check=$(node -v)");
if (check == "") {
error = 1;
println("Error: node is missing");
println("Error: node is not found");
println("help: an installation guide is available at https://nodejs.org/en/download");
}
if (error > 0) {
@@ -193,6 +213,15 @@ if (type == "local") {
bash("pm2 startup");
}
// Check again
bash("check=$(pm2 --version)");
if (check == "") {
println("Error: pm2 is not found!");
println("help: an installation guide is available at https://pm2.keymetrics.io/docs/usage/quick-start/");
bash("exit 1");
}
bash("mkdir -p $installPath");
bash("cd $installPath");
bash("git clone https://github.com/louislam/uptime-kuma.git .");
@@ -206,6 +235,7 @@ if (type == "local") {
bash("check=$(docker -v)");
if (check == "") {
println("Error: docker is not found!");
println("help: an installation guide is available at https://docs.docker.com/desktop/");
bash("exit 1");
}
@@ -213,6 +243,7 @@ if (type == "local") {
bash("if [[ \"$check\" == *\"Is the docker daemon running\"* ]]; then
\"echo\" \"Error: docker is not running\"
\"echo\" \"help: a troubleshooting guide is available at https://docs.docker.com/config/daemon/troubleshoot/\"
\"exit\" \"1\"
fi");

View File

@@ -1,11 +1,12 @@
const pkg = require("../package.json");
const fs = require("fs");
const util = require("../src/util");
const dayjs = require("dayjs");
util.polyfill();
const oldVersion = pkg.version;
const newVersion = oldVersion + "-nightly";
const newVersion = oldVersion + "-nightly-" + dayjs().format("YYYYMMDDHHmmss");
console.log("Old Version: " + oldVersion);
console.log("New Version: " + newVersion);

View File

@@ -0,0 +1,44 @@
// Generate on GitHub
const input = `
* Add Korean translation by @Alanimdeo in https://github.com/louislam/dockge/pull/86
`;
const template = `
### 🆕 New Features
### 💇‍♀️ Improvements
### 🐞 Bug Fixes
### ⬆️ Security Fixes
### 🦎 Translation Contributions
### Others
- Other small changes, code refactoring and comment/doc updates in this repo:
`;
const lines = input.split("\n").filter((line) => line.trim() !== "");
for (const line of lines) {
// Split the last " by "
const usernamePullRequesURL = line.split(" by ").pop();
if (!usernamePullRequesURL) {
console.log("Unable to parse", line);
continue;
}
const [ username, pullRequestURL ] = usernamePullRequesURL.split(" in ");
const pullRequestID = "#" + pullRequestURL.split("/").pop();
let message = line.split(" by ").shift();
if (!message) {
console.log("Unable to parse", line);
continue;
}
message = message.split("* ").pop();
console.log("-", pullRequestID, message, `(Thanks ${username})`);
}
console.log(template);

View File

@@ -43,6 +43,11 @@ const main = async () => {
console.log("Finished.");
};
/**
* Ask question of user
* @param {string} question Question to ask
* @returns {Promise<string>} Users response
*/
function question(question) {
return new Promise((resolve) => {
rl.question(question, (answer) => {

View File

@@ -5,6 +5,8 @@ const { R } = require("redbean-node");
const readline = require("readline");
const { initJWTSecret } = require("../server/util-server");
const User = require("../server/model/user");
const { io } = require("socket.io-client");
const { localWebSocketURL } = require("../server/config");
const args = require("args-parser")(process.argv);
const rl = readline.createInterface({
input: process.stdin,
@@ -36,12 +38,16 @@ const main = async () => {
// Reset all sessions by reset jwt secret
await initJWTSecret();
// Disconnect all other socket clients of the user
await disconnectAllSocketClients(user.username, password);
break;
} else {
console.log("Passwords do not match, please try again.");
}
}
console.log("Password reset successfully.");
}
} catch (e) {
console.error("Error: " + e.message);
@@ -53,6 +59,11 @@ const main = async () => {
console.log("Finished.");
};
/**
* Ask question of user
* @param {string} question Question to ask
* @returns {Promise<string>} Users response
*/
function question(question) {
return new Promise((resolve) => {
rl.question(question, (answer) => {
@@ -61,6 +72,44 @@ function question(question) {
});
}
function disconnectAllSocketClients(username, password) {
return new Promise((resolve) => {
console.log("Connecting to " + localWebSocketURL + " to disconnect all other socket clients");
// Disconnect all socket connections
const socket = io(localWebSocketURL, {
reconnection: false,
timeout: 5000,
});
socket.on("connect", () => {
socket.emit("login", {
username,
password,
}, (res) => {
if (res.ok) {
console.log("Logged in.");
socket.emit("disconnectOtherSocketClients");
} else {
console.warn("Login failed.");
console.warn("Please restart the server to disconnect all sessions.");
}
socket.close();
});
});
socket.on("connect_error", function () {
// The localWebSocketURL is not guaranteed to be working for some complicated Uptime Kuma setup
// Ask the user to restart the server manually
console.warn("Failed to connect to " + localWebSocketURL);
console.warn("Please restart the server to disconnect all sessions manually.");
resolve();
});
socket.on("disconnect", () => {
resolve();
});
});
}
if (!process.env.TEST_BACKEND) {
main();
}

View File

@@ -135,6 +135,11 @@ server.listen({
udp: 5300
});
/**
* Get human readable request type from request code
* @param {number} code Request code to translate
* @returns {string} Human readable request type
*/
function type(code) {
for (let name in Packet.TYPE) {
if (Packet.TYPE[name] === code) {

View File

@@ -11,6 +11,7 @@ class SimpleMqttServer {
this.port = port;
}
/** Start the MQTT server */
start() {
this.server.listen(this.port, () => {
console.log("server started and listening on port ", this.port);

View File

@@ -0,0 +1,22 @@
const fs = require("fs");
// Read the file from private/sort-contributors.txt
const file = fs.readFileSync("private/sort-contributors.txt", "utf8");
// Convert to an array of lines
let lines = file.split("\n");
// Remove empty lines
lines = lines.filter((line) => line !== "");
// Remove duplicates
lines = [ ...new Set(lines) ];
// Remove @weblate and @UptimeKumaBot
lines = lines.filter((line) => line !== "@weblate" && line !== "@UptimeKumaBot" && line !== "@louislam");
// Sort the lines
lines = lines.sort();
// Output the lines, concat with " "
console.log(lines.join(" "));

9
extra/test-docker.js Normal file
View File

@@ -0,0 +1,9 @@
// Check if docker is running
const { exec } = require("child_process");
exec("docker ps", (err, stdout, stderr) => {
if (err) {
console.error("Docker is not running. Please start docker and try again.");
process.exit(1);
}
});

View File

@@ -26,7 +26,8 @@ if (! exists) {
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n");
// Also update package-lock.json
childProcess.spawnSync("npm", [ "install" ]);
const npm = /^win/.test(process.platform) ? "npm.cmd" : "npm";
childProcess.spawnSync(npm, [ "install" ]);
commit(newVersion);
tag(newVersion);
@@ -36,10 +37,8 @@ if (! exists) {
}
/**
* Updates the version number in package.json and commits it to git.
* @param {string} version - The new version number
*
* Generated by Trelent
* Commit updated files
* @param {string} version Version to update to
*/
function commit(version) {
let msg = "Update to " + version;
@@ -53,16 +52,19 @@ function commit(version) {
}
}
/**
* Create a tag with the specified version
* @param {string} version Tag to create
*/
function tag(version) {
let res = childProcess.spawnSync("git", [ "tag", version ]);
console.log(res.stdout.toString().trim());
}
/**
* Checks if a given version is already tagged in the git repository.
* @param {string} version - The version to check for.
*
* Generated by Trelent
* Check if a tag exists for the specified version
* @param {string} version Version to check
* @returns {boolean} Does the tag already exist
*/
function tagExists(version) {
if (! version) {

View File

@@ -10,6 +10,10 @@ if (!newVersion) {
updateWiki(newVersion);
/**
* Update the wiki with new version number
* @param {string} newVersion Version to update to
*/
function updateWiki(newVersion) {
const wikiDir = "./tmp/wiki";
const howToUpdateFilename = "./tmp/wiki/🆙-How-to-Update.md";
@@ -39,6 +43,10 @@ function updateWiki(newVersion) {
safeDelete(wikiDir);
}
/**
* Check if a directory exists and then delete it
* @param {string} dir Directory to delete
*/
function safeDelete(dir) {
if (fs.existsSync(dir)) {
fs.rm(dir, {

View File

@@ -2,15 +2,31 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" id="theme-color" content="" />
<meta name="description" content="Uptime Kuma monitoring tool" />
<title>Uptime Kuma</title>
<style>
.noscript-message {
font-size: 20px;
text-align: center;
padding: 10px;
max-width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<noscript>
<div class="noscript-message">
Sorry, you don't seem to have JavaScript enabled or your browser
doesn't support it.<br />This website requires JavaScript to function.
Please enable JavaScript in your browser settings to continue.
</div>
</noscript>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>

View File

@@ -3,15 +3,15 @@
# The command is working on Windows PowerShell and Docker for Windows only.
# curl -o kuma_install.sh https://raw.githubusercontent.com/louislam/uptime-kuma/master/install.sh && sudo bash kuma_install.sh
"echo" "-e" "====================="
"echo" "-e" "Uptime Kuma Installer"
"echo" "-e" "Uptime Kuma Install Script"
"echo" "-e" "====================="
"echo" "-e" "Supported OS: CentOS 7/8, Ubuntu >= 16.04 and Debian"
"echo" "-e" "Supported OS: Ubuntu >= 16.04, Debian and CentOS/RHEL 7/8"
"echo" "-e" "---------------------------------------"
"echo" "-e" "This script is designed for Linux and basic usage."
"echo" "-e" "For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation"
"echo" "-e" "---------------------------------------"
"echo" "-e" ""
"echo" "-e" "Local - Install Uptime Kuma in your current machine with git, Node.js 14 and pm2"
"echo" "-e" "Local - Install Uptime Kuma on your current machine with git, Node.js and pm2"
"echo" "-e" "Docker - Install Uptime Kuma Docker container"
"echo" "-e" ""
if [ "$1" != "" ]; then
@@ -25,12 +25,9 @@ function checkNode {
nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')
"echo" "-e" "Node Version: ""$nodeVersion"
_0="12"
if [ $(($nodeVersion < $_0)) == 1 ]; then
if [ $(($nodeVersion <= $_0)) == 1 ]; then
"echo" "-e" "Error: Required Node.js 14"
"exit" "1"
fi
if [ "$nodeVersion" == "12" ]; then
"echo" "-e" "Warning: NodeJS ""$nodeVersion"" is not tested."
fi
}
function deb {
@@ -50,8 +47,8 @@ fi
"echo" "-e" "Installing Curl"
apt --yes install curl
fi
"echo" "-e" "Installing Node.js 14"
curl -sL https://deb.nodesource.com/setup_14.x | bash - > log.txt
"echo" "-e" "Installing Node.js 16"
curl -sL https://deb.nodesource.com/setup_16.x | bash - > log.txt
apt --yes install nodejs
node -v
nodeCheckAgain=$(node -v)
@@ -75,7 +72,10 @@ if [ "$type" == "local" ]; then
if [ -e "/etc/issue" ]; then
os=$(head -n1 /etc/issue | cut -f 1 -d ' ')
if [ "$os" == "Ubuntu" ]; then
distribution="ubuntu"
distribution="ubuntu"
# Get ubuntu version
. /etc/lsb-release
version="$DISTRIB_RELEASE"
fi
if [ "$os" == "Debian" ]; then
distribution="debian"
@@ -85,6 +85,7 @@ fi
arch=$(uname -i)
"echo" "-e" "Your OS: ""$os"
"echo" "-e" "Distribution: ""$distribution"
"echo" "-e" "Version: ""$version"
"echo" "-e" "Arch: ""$arch"
if [ "$3" != "" ]; then
port="$3"
@@ -108,14 +109,27 @@ fi
if [ "$nodeCheck" != "" ]; then
"checkNode"
else
curlCheck=$(curl --version)
if [ "$curlCheck" == "" ]; then
"echo" "-e" "Installing Curl"
yum -y -q install curl
dnfCheck=$(dnf --version)
# Use yum
if [ "$dnfCheck" == "" ]; then
curlCheck=$(curl --version)
if [ "$curlCheck" == "" ]; then
"echo" "-e" "Installing Curl"
yum -y -q install curl
fi
"echo" "-e" "Installing Node.js 14"
curl -sL https://rpm.nodesource.com/setup_14.x | bash - > log.txt
yum install -y -q nodejs
"echo" "-e" "Installing Node.js 16"
curl -sL https://rpm.nodesource.com/setup_16.x | bash - > log.txt
yum install -y -q nodejs
else
curlCheck=$(curl --version)
if [ "$curlCheck" == "" ]; then
"echo" "-e" "Installing Curl"
dnf -y install curl
fi
"echo" "-e" "Installing Node.js 16"
curl -sL https://rpm.nodesource.com/setup_16.x | bash - > log.txt
dnf install -y nodejs
fi
node -v
nodeCheckAgain=$(node -v)
if [ "$nodeCheckAgain" == "" ]; then
@@ -142,12 +156,14 @@ fi
check=$(git --version)
if [ "$check" == "" ]; then
error=$((1))
"echo" "-e" "Error: git is missing"
"echo" "-e" "Error: git is not found!"
"echo" "-e" "help: an installation guide is available at https://git-scm.com/book/en/v2/Getting-Started-Installing-Git"
fi
check=$(node -v)
if [ "$check" == "" ]; then
error=$((1))
"echo" "-e" "Error: node is missing"
"echo" "-e" "Error: node is not found"
"echo" "-e" "help: an installation guide is available at https://nodejs.org/en/download"
fi
if [ $(($error > 0)) == 1 ]; then
"echo" "-e" "Please install above missing software"
@@ -161,6 +177,13 @@ fi
"echo" "-e" "Installing PM2"
npm install pm2 -g && pm2 install pm2-logrotate
pm2 startup
fi
# Check again
check=$(pm2 --version)
if [ "$check" == "" ]; then
"echo" "-e" "Error: pm2 is not found!"
"echo" "-e" "help: an installation guide is available at https://pm2.keymetrics.io/docs/usage/quick-start/"
exit 1
fi
mkdir -p $installPath
cd $installPath
@@ -172,11 +195,13 @@ else
check=$(docker -v)
if [ "$check" == "" ]; then
"echo" "-e" "Error: docker is not found!"
"echo" "-e" "help: an installation guide is available at https://docs.docker.com/desktop/"
exit 1
fi
check=$(docker info)
if [[ "$check" == *"Is the docker daemon running"* ]]; then
"echo" "Error: docker is not running"
"echo" "help: a troubleshooting guide is available at https://docs.docker.com/config/daemon/troubleshoot/"
"exit" "1"
fi
if [ "$3" != "" ]; then

24778
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,27 @@
{
"name": "uptime-kuma",
"version": "1.18.5",
"version": "1.23.11",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/louislam/uptime-kuma.git"
},
"engines": {
"node": "14.* || >=16.*"
"node": "14 || 16 || 18 || >= 20.4.0"
},
"scripts": {
"install-legacy": "npm install",
"update-legacy": "npm update",
"lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .",
"lint:js-prod": "npm run lint:js -- --max-warnings 0",
"lint-fix:js": "eslint --ext \".js,.vue\" --fix --ignore-path .gitignore .",
"lint:style": "stylelint \"**/*.{vue,css,scss}\" --ignore-path .gitignore",
"lint-fix:style": "stylelint \"**/*.{vue,css,scss}\" --fix --ignore-path .gitignore",
"lint": "npm run lint:js && npm run lint:style",
"lint:prod": "npm run lint:js-prod && npm run lint:style",
"dev": "concurrently -k -r \"wait-on tcp:3000 && npm run start-server-dev \" \"npm run start-frontend-dev\"",
"start-frontend-dev": "cross-env NODE_ENV=development vite --host --config ./config/vite.config.js",
"start-frontend-devcontainer": "cross-env NODE_ENV=development DEVCONTAINER=1 vite --host --config ./config/vite.config.js",
"start": "npm run start-server",
"start-server": "node server/server.js",
"start-server-dev": "cross-env NODE_ENV=development node server/server.js",
@@ -31,45 +34,58 @@
"build-docker": "npm run build && 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-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-builder-go": "docker buildx build -f docker/builder-go.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:builder-go . --push",
"build-docker-alpine": "node ./extra/env2arg.js 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:$VERSION-alpine --target release . --push",
"build-docker-debian": "node ./extra/env2arg.js 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:$VERSION -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:$VERSION-debian --target release . --push",
"build-docker-nightly": "npm run build && 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": "node ./extra/test-docker.js && npm run build && 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-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain",
"build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test --target pr-test . --push",
"upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg VERSION --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain",
"setup": "git checkout 1.18.5 && npm ci --production && npm run download-dist",
"setup": "git checkout 1.23.11 && npm ci --production && npm run download-dist",
"download-dist": "node extra/download-dist.js",
"mark-as-nightly": "node extra/mark-as-nightly.js",
"reset-password": "node extra/reset-password.js",
"remove-2fa": "node extra/remove-2fa.js",
"compile-install-script": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./extra/compile-install-script.ps1",
"test-install-script-rockylinux": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/rockylinux.dockerfile .",
"test-install-script-centos7": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/centos7.dockerfile .",
"test-install-script-alpine3": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/alpine3.dockerfile .",
"test-install-script-debian": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/debian.dockerfile .",
"test-install-script-debian-buster": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/debian-buster.dockerfile .",
"test-install-script-ubuntu": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu.dockerfile .",
"test-install-script-ubuntu1804": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu1804.dockerfile .",
"test-install-script-ubuntu1604": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu1604.dockerfile .",
"test-nodejs16": "docker build --progress plain -f test/ubuntu-nodejs16.dockerfile .",
"simple-dns-server": "node extra/simple-dns-server.js",
"simple-mqtt-server": "node extra/simple-mqtt-server.js",
"simple-mongo": "docker run --rm -p 27017:27017 mongo",
"simple-postgres": "docker run --rm -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres",
"simple-mariadb": "docker run --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb# mariadb",
"update-language-files": "cd extra/update-language-files && node index.js && cross-env-shell eslint ../../src/languages/$npm_config_language.js --fix",
"ncu-patch": "npm-check-updates -u -t patch",
"release-final": "node extra/update-version.js && npm run build-docker && node ./extra/press-any-key.js && npm run upload-artifacts && node ./extra/update-wiki-version.js",
"release-beta": "node extra/beta/update-version.js && npm run build && node ./extra/env2arg.js docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:$VERSION -t louislam/uptime-kuma:beta . --target release --push && node ./extra/press-any-key.js && npm run upload-artifacts",
"release-final": "node ./extra/test-docker.js && node extra/update-version.js && npm run build-docker && node ./extra/press-any-key.js && npm run upload-artifacts && node ./extra/update-wiki-version.js",
"release-beta": "node ./extra/test-docker.js && node extra/beta/update-version.js && npm run build && node ./extra/env2arg.js docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:$VERSION -t louislam/uptime-kuma:beta . --target release --push && node ./extra/press-any-key.js && npm run upload-artifacts",
"git-remove-tag": "git tag -d",
"build-dist-and-restart": "npm run build && npm run start-server-dev",
"start-pr-test": "node extra/checkout-pr.js && npm install && npm run dev",
"cy:test": "node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/ --e2e",
"cy:run": "npx cypress run --browser chrome --headless --config-file ./config/cypress.config.js",
"cypress-open": "concurrently -k -r \"node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/\" \"cypress open --config-file ./config/cypress.config.js\""
"cy:run:unit": "npx cypress run --browser chrome --headless --config-file ./config/cypress.frontend.config.js",
"cypress-open": "concurrently -k -r \"node test/prepare-test-server.js && node server/server.js --port=3002 --data-dir=./data/test/\" \"cypress open --config-file ./config/cypress.config.js\"",
"build-healthcheck-armv7": "cross-env GOOS=linux GOARCH=arm GOARM=7 go build -x -o ./extra/healthcheck-armv7 ./extra/healthcheck.go",
"deploy-demo-server": "node extra/deploy-demo-server.js",
"sort-contributors": "node extra/sort-contributors.js",
"start-server-node14-win": "private\\node14\\node.exe server/server.js"
},
"dependencies": {
"@louislam/sqlite3": "~15.0.6",
"@grpc/grpc-js": "~1.7.3",
"@louislam/ping": "~0.4.4-mod.1",
"@louislam/sqlite3": "15.1.6",
"args-parser": "~1.3.0",
"axios": "~0.27.0",
"axios-ntlm": "~1.3.0",
"axios-ntlm": "1.3.0",
"badge-maker": "~3.3.1",
"bcryptjs": "~2.4.3",
"bree": "~7.1.5",
"cacheable-lookup": "~6.0.4",
"chardet": "~1.4.0",
"check-password-strength": "^2.0.5",
@@ -78,41 +94,61 @@
"command-exists": "~1.2.9",
"compare-versions": "~3.6.0",
"compression": "~1.7.4",
"croner": "~6.0.5",
"dayjs": "~1.11.5",
"dotenv": "~16.0.3",
"express": "~4.17.3",
"express-basic-auth": "~1.2.1",
"express-static-gzip": "~2.1.7",
"form-data": "~4.0.0",
"gamedig": "^4.2.0",
"html-escaper": "^3.0.3",
"http-graceful-shutdown": "~3.1.7",
"http-proxy-agent": "~5.0.0",
"https-proxy-agent": "~5.0.1",
"iconv-lite": "~0.6.3",
"isomorphic-ws": "^5.0.0",
"jsesc": "~3.0.2",
"jsonwebtoken": "~8.5.1",
"jsonata": "^2.0.3",
"jsonwebtoken": "~9.0.0",
"jwt-decode": "~3.1.2",
"kafkajs": "^2.2.4",
"limiter": "~2.1.0",
"liquidjs": "^10.7.0",
"mongodb": "~4.17.1",
"mqtt": "~4.3.7",
"mssql": "~8.1.4",
"mysql2": "~3.6.2",
"nanoid": "~3.3.4",
"node-cloudflared-tunnel": "~1.0.9",
"node-radius-client": "~1.0.0",
"nodemailer": "~6.6.5",
"nostr-tools": "^1.13.1",
"notp": "~2.0.3",
"openid-client": "^5.4.2",
"password-hash": "~1.2.2",
"pg": "~8.8.0",
"pg-connection-string": "~2.5.0",
"pg": "~8.11.3",
"pg-connection-string": "~2.6.2",
"playwright-core": "~1.35.1",
"prom-client": "~13.2.0",
"prometheus-api-metrics": "~3.2.1",
"redbean-node": "0.1.4",
"socket.io": "~4.4.1",
"socket.io-client": "~4.4.1",
"promisify-child-process": "~4.1.2",
"protobufjs": "~7.2.4",
"qs": "~6.10.4",
"redbean-node": "~0.3.0",
"redis": "~4.5.1",
"semver": "~7.5.4",
"socket.io": "~4.6.1",
"socket.io-client": "~4.6.1",
"socks-proxy-agent": "6.1.1",
"tar": "~6.1.11",
"tcp-ping": "~0.1.1",
"thirty-two": "~1.0.2"
"thirty-two": "~1.0.2",
"ws": "^8.13.0"
},
"devDependencies": {
"@actions/github": "~5.0.1",
"@babel/eslint-parser": "~7.17.0",
"@babel/eslint-parser": "^7.22.7",
"@babel/preset-env": "^7.15.8",
"@fortawesome/fontawesome-svg-core": "~1.2.36",
"@fortawesome/free-regular-svg-icons": "~5.15.4",
@@ -120,24 +156,28 @@
"@fortawesome/vue-fontawesome": "~3.0.0-5",
"@popperjs/core": "~2.10.2",
"@types/bootstrap": "~5.1.9",
"@vitejs/plugin-legacy": "~2.1.0",
"@vitejs/plugin-vue": "~3.1.0",
"@vue/compiler-sfc": "~3.2.36",
"@vitejs/plugin-legacy": "~4.1.0",
"@vitejs/plugin-vue": "~4.2.3",
"@vue/compiler-sfc": "~3.3.4",
"@vuepic/vue-datepicker": "~3.4.8",
"aedes": "^0.46.3",
"babel-plugin-rewire": "~1.2.0",
"bootstrap": "5.1.3",
"chart.js": "~3.6.2",
"chartjs-adapter-dayjs": "~1.0.0",
"chart.js": "~4.2.1",
"chartjs-adapter-dayjs-4": "~1.0.4",
"concurrently": "^7.1.0",
"core-js": "~3.18.3",
"core-js": "~3.26.1",
"cronstrue": "~2.24.0",
"cross-env": "~7.0.3",
"cypress": "^10.1.0",
"cypress": "^13.2.0",
"delay": "^5.0.0",
"dns2": "~2.0.1",
"dompurify": "~2.4.3",
"eslint": "~8.14.0",
"eslint-plugin-vue": "~8.7.1",
"favico.js": "~0.3.10",
"jest": "~27.2.5",
"jest": "~29.6.1",
"marked": "~4.2.5",
"node-ssh": "~13.1.0",
"postcss-html": "~1.5.0",
"postcss-rtlcss": "~3.7.2",
"postcss-scss": "~4.0.4",
@@ -145,16 +185,16 @@
"qrcode": "~1.5.0",
"rollup-plugin-visualizer": "^5.6.0",
"sass": "~1.42.1",
"stylelint": "~14.7.1",
"stylelint": "^15.10.1",
"stylelint-config-standard": "~25.0.0",
"terser": "~5.15.0",
"timezones-list": "~3.0.1",
"typescript": "~4.4.4",
"v-pagination-3": "~0.1.7",
"vite": "~3.1.0",
"vite": "~4.4.1",
"vite-plugin-compression": "^0.5.1",
"vue": "next",
"vue-chart-3": "3.0.9",
"vue": "~3.3.4",
"vue-chartjs": "~5.2.0",
"vue-confirm-dialog": "~1.0.2",
"vue-contenteditable": "~3.0.4",
"vue-i18n": "~9.2.2",
@@ -165,6 +205,7 @@
"vue-router": "~4.0.14",
"vue-toastification": "~2.0.0-rc.5",
"vuedraggable": "~4.1.0",
"wait-on": "^6.0.1"
"wait-on": "^7.2.0",
"whatwg-url": "~12.0.1"
}
}

View File

@@ -1,10 +1,9 @@
<svg width="640" height="640" viewBox="0 0 640 640" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M490.4 235.64C544.09 358.38 544.09 435.34 490.4 466.5C409.85 513.24 199.96 527.49 139.54 455.64C99.2601 407.74 99.2601 334.4 139.54 235.64C180.5 168.18 238.71 134.45 314.17 134.45C389.64 134.45 448.38 168.18 490.4 235.64Z" fill="url(#paint0_linear_381_799)"/>
<path d="M490.4 235.64C544.09 358.38 544.09 435.34 490.4 466.5C409.85 513.24 199.96 527.49 139.54 455.64C99.2601 407.74 99.2601 334.4 139.54 235.64C180.5 168.18 238.71 134.45 314.17 134.45C389.64 134.45 448.38 168.18 490.4 235.64Z" stroke="#F2F2F2" stroke-opacity="0.51" stroke-width="200"/>
<defs>
<linearGradient id="paint0_linear_381_799" x1="259.78" y1="261.15" x2="463.85" y2="456.49" gradientUnits="userSpaceOnUse">
<svg width="640" height="640" viewBox="0 0 640 640" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 320 320)">
<linearGradient id="S3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1 0 0 1 -319.99875 -320.0001577393)" x1="259.78" y1="261.15" x2="463.85" y2="456.49">
<stop stop-color="#5CDD8B"/>
<stop offset="1" stop-color="#86E6A9"/>
</linearGradient>
</defs>
<path style="stroke: rgb(242,242,242); stroke-opacity: 0.51; stroke-width: 200; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: url(#S3); fill-rule: nonzero; opacity: 1;" transform=" translate(0, 0)" d="M 170.40125 -84.36016 C 224.09125 38.37984 224.09125 115.33984 170.40125 146.49984 C 89.85125000000001 193.23984000000002 -120.03875 207.48984000000002 -180.45875 135.63984 C -220.73875 87.73983999999999 -220.73875 14.399839999999998 -180.45875 -84.36016000000001 C -139.49875 -151.82016 -81.28875000000001 -185.55016 -5.828750000000014 -185.55016 C 69.64124999999999 -185.55016 128.38125 -151.82016000000002 170.40124999999998 -84.36016000000001 z" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 893 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -2,7 +2,10 @@ const basicAuth = require("express-basic-auth");
const passwordHash = require("./password-hash");
const { R } = require("redbean-node");
const { setting } = require("./util-server");
const { loginRateLimiter } = require("./rate-limiter");
const { log } = require("../src/util");
const { loginRateLimiter, apiRateLimiter } = require("./rate-limiter");
const { Settings } = require("./settings");
const dayjs = require("dayjs");
/**
* Login to web app
@@ -34,8 +37,36 @@ exports.login = async function (username, password) {
};
/**
* Callback for myAuthorizer
* @callback myAuthorizerCB
* Validate a provided API key
* @param {string} key API key to verify
*/
async function verifyAPIKey(key) {
if (typeof key !== "string") {
return false;
}
// uk prefix + key ID is before _
let index = key.substring(2, key.indexOf("_"));
let clear = key.substring(key.indexOf("_") + 1, key.length);
let hash = await R.findOne("api_key", " id=? ", [ index ]);
if (hash === null) {
return false;
}
let current = dayjs();
let expiry = dayjs(hash.expires);
if (expiry.diff(current) < 0 || !hash.active) {
return false;
}
return hash && passwordHash.verify(clear, hash.key);
}
/**
* Callback for basic auth authorizers
* @callback authCallback
* @param {any} err Any error encountered
* @param {boolean} authorized Is the client authorized?
*/
@@ -44,9 +75,35 @@ exports.login = async function (username, password) {
* Custom authorizer for express-basic-auth
* @param {string} username
* @param {string} password
* @param {myAuthorizerCB} callback
* @param {authCallback} callback
*/
function myAuthorizer(username, password, callback) {
function apiAuthorizer(username, password, callback) {
// API Rate Limit
apiRateLimiter.pass(null, 0).then((pass) => {
if (pass) {
verifyAPIKey(password).then((valid) => {
if (!valid) {
log.warn("api-auth", "Failed API auth attempt: invalid API Key");
}
callback(null, valid);
// Only allow a set number of api requests per minute
// (currently set to 60)
apiRateLimiter.removeTokens(1);
});
} else {
log.warn("api-auth", "Failed API auth attempt: rate limit exceeded");
callback(null, false);
}
});
}
/**
* Custom authorizer for express-basic-auth
* @param {string} username
* @param {string} password
* @param {authCallback} callback
*/
function userAuthorizer(username, password, callback) {
// Login Rate Limit
loginRateLimiter.pass(null, 0).then((pass) => {
if (pass) {
@@ -54,18 +111,26 @@ function myAuthorizer(username, password, callback) {
callback(null, user != null);
if (user == null) {
log.warn("basic-auth", "Failed basic auth attempt: invalid username/password");
loginRateLimiter.removeTokens(1);
}
});
} else {
log.warn("basic-auth", "Failed basic auth attempt: rate limit exceeded");
callback(null, false);
}
});
}
/**
* Use basic auth if auth is not disabled
* @param {express.Request} req Express request object
* @param {express.Response} res Express response object
* @param {express.NextFunction} next
*/
exports.basicAuth = async function (req, res, next) {
const middleware = basicAuth({
authorizer: myAuthorizer,
authorizer: userAuthorizer,
authorizeAsync: true,
challenge: true,
});
@@ -78,3 +143,32 @@ exports.basicAuth = async function (req, res, next) {
next();
}
};
/**
* Use use API Key if API keys enabled, else use basic auth
* @param {express.Request} req Express request object
* @param {express.Response} res Express response object
* @param {express.NextFunction} next
*/
exports.apiAuth = async function (req, res, next) {
if (!await Settings.get("disableAuth")) {
let usingAPIKeys = await Settings.get("apiKeysEnabled");
let middleware;
if (usingAPIKeys) {
middleware = basicAuth({
authorizer: apiAuthorizer,
authorizeAsync: true,
challenge: true,
});
} else {
middleware = basicAuth({
authorizer: userAuthorizer,
authorizeAsync: true,
challenge: true,
});
}
middleware(req, res, next);
} else {
next();
}
};

View File

@@ -1,6 +1,8 @@
const https = require("https");
const http = require("http");
const CacheableLookup = require("cacheable-lookup");
const { Settings } = require("./settings");
const { log } = require("../src/util");
class CacheableDnsHttpAgent {
@@ -9,14 +11,36 @@ class CacheableDnsHttpAgent {
static httpAgentList = {};
static httpsAgentList = {};
static enable = false;
/**
* Register cacheable to global agents
* Register/Disable cacheable to global agents
*/
static registerGlobalAgent() {
this.cacheable.install(http.globalAgent);
this.cacheable.install(https.globalAgent);
static async update() {
log.debug("CacheableDnsHttpAgent", "update");
let isEnable = await Settings.get("dnsCache");
if (isEnable !== this.enable) {
log.debug("CacheableDnsHttpAgent", "value changed");
if (isEnable) {
log.debug("CacheableDnsHttpAgent", "enable");
this.cacheable.install(http.globalAgent);
this.cacheable.install(https.globalAgent);
} else {
log.debug("CacheableDnsHttpAgent", "disable");
this.cacheable.uninstall(http.globalAgent);
this.cacheable.uninstall(https.globalAgent);
}
}
this.enable = isEnable;
}
/**
* Attach cacheable to HTTP agent
* @param {http.Agent} agent Agent to install
*/
static install(agent) {
this.cacheable.install(agent);
}
@@ -26,6 +50,10 @@ class CacheableDnsHttpAgent {
* @return {https.Agent}
*/
static getHttpsAgent(agentOptions) {
if (!this.enable) {
return new https.Agent(agentOptions);
}
let key = JSON.stringify(agentOptions);
if (!(key in this.httpsAgentList)) {
this.httpsAgentList[key] = new https.Agent(agentOptions);
@@ -39,6 +67,10 @@ class CacheableDnsHttpAgent {
* @return {https.Agents}
*/
static getHttpAgent(agentOptions) {
if (!this.enable) {
return new http.Agent(agentOptions);
}
let key = JSON.stringify(agentOptions);
if (!(key in this.httpAgentList)) {
this.httpAgentList[key] = new http.Agent(agentOptions);

View File

@@ -1,31 +1,37 @@
const { setSetting, setting } = require("./util-server");
const axios = require("axios");
const compareVersions = require("compare-versions");
const { log } = require("../src/util");
exports.version = require("../package.json").version;
exports.latestVersion = null;
// How much time in ms to wait between update checks
const UPDATE_CHECKER_INTERVAL_MS = 1000 * 60 * 60 * 48;
const UPDATE_CHECKER_LATEST_VERSION_URL = "https://uptime.kuma.pet/version";
let interval;
/** Start 48 hour check interval */
exports.startInterval = () => {
let check = async () => {
if (await setting("checkUpdate") === false) {
return;
}
log.debug("update-checker", "Retrieving latest versions");
try {
const res = await axios.get("https://uptime.kuma.pet/version");
const res = await axios.get(UPDATE_CHECKER_LATEST_VERSION_URL);
// For debug
if (process.env.TEST_CHECK_VERSION === "1") {
res.data.slow = "1000.0.0";
}
if (await setting("checkUpdate") === false) {
return;
}
let checkBeta = await setting("checkBeta");
if (checkBeta && res.data.beta) {
if (compareVersions.compare(res.data.beta, res.data.beta, ">")) {
if (compareVersions.compare(res.data.beta, res.data.slow, ">")) {
exports.latestVersion = res.data.beta;
return;
}
@@ -35,12 +41,14 @@ exports.startInterval = () => {
exports.latestVersion = res.data.slow;
}
} catch (_) { }
} catch (_) {
log.info("update-checker", "Failed to check for new versions");
}
};
check();
interval = setInterval(check, 3600 * 1000 * 48);
interval = setInterval(check, UPDATE_CHECKER_INTERVAL_MS);
};
/**

View File

@@ -4,7 +4,8 @@
const { TimeLogger } = require("../src/util");
const { R } = require("redbean-node");
const { UptimeKumaServer } = require("./uptime-kuma-server");
const io = UptimeKumaServer.getInstance().io;
const server = UptimeKumaServer.getInstance();
const io = server.io;
const { setting } = require("./util-server");
const checkVersion = require("./check-version");
@@ -113,15 +114,54 @@ async function sendProxyList(socket) {
}
/**
* Emits the version information to the client.
* Emit API key list to client
* @param {Socket} socket Socket.io socket instance
* @returns {Promise<void>}
*/
async function sendInfo(socket) {
async function sendAPIKeyList(socket) {
const timeLogger = new TimeLogger();
let result = [];
const list = await R.find(
"api_key",
"user_id=?",
[ socket.userID ],
);
for (let bean of list) {
result.push(bean.toPublicJSON());
}
io.to(socket.userID).emit("apiKeyList", result);
timeLogger.print("Sent API Key List");
return list;
}
/**
* Emits the version information to the client.
* @param {Socket} socket Socket.io socket instance
* @param {boolean} hideVersion
* @returns {Promise<void>}
*/
async function sendInfo(socket, hideVersion = false) {
let version;
let latestVersion;
let isContainer;
if (!hideVersion) {
version = checkVersion.version;
latestVersion = checkVersion.latestVersion;
isContainer = (process.env.UPTIME_KUMA_IS_CONTAINER === "1");
}
socket.emit("info", {
version: checkVersion.version,
latestVersion: checkVersion.latestVersion,
primaryBaseURL: await setting("primaryBaseURL")
version,
latestVersion,
isContainer,
primaryBaseURL: await setting("primaryBaseURL"),
serverTimezone: await server.getTimezone(),
serverTimezoneOffset: server.getTimezoneOffset(),
});
}
@@ -154,6 +194,7 @@ module.exports = {
sendImportantHeartbeatList,
sendHeartbeatList,
sendProxyList,
sendAPIKeyList,
sendInfo,
sendDockerHostList
};

View File

@@ -1,20 +1,42 @@
const args = require("args-parser")(process.argv);
const demoMode = args["demo"] || false;
const isFreeBSD = /^freebsd/.test(process.platform);
const badgeConstants = {
naColor: "#999",
defaultUpColor: "#66c20a",
defaultDownColor: "#c2290a",
defaultPingColor: "blue", // as defined by badge-maker / shields.io
defaultStyle: "flat",
defaultPingValueSuffix: "ms",
defaultPingLabelSuffix: "h",
defaultUptimeValueSuffix: "%",
defaultUptimeLabelSuffix: "h",
};
// Interop with browser
const args = (typeof process !== "undefined") ? require("args-parser")(process.argv) : {};
// 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 (::)
// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
let hostEnv = isFreeBSD ? null : process.env.HOST;
const hostname = args.host || process.env.UPTIME_KUMA_HOST || hostEnv;
const port = [ args.port, process.env.UPTIME_KUMA_PORT, process.env.PORT, 3001 ]
.map(portValue => parseInt(portValue))
.find(portValue => !isNaN(portValue));
const sslKey = args["ssl-key"] || process.env.UPTIME_KUMA_SSL_KEY || process.env.SSL_KEY || undefined;
const sslCert = args["ssl-cert"] || process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || undefined;
const sslKeyPassphrase = args["ssl-key-passphrase"] || process.env.UPTIME_KUMA_SSL_KEY_PASSPHRASE || process.env.SSL_KEY_PASSPHRASE || undefined;
const isSSL = sslKey && sslCert;
function getLocalWebSocketURL() {
const protocol = isSSL ? "wss" : "ws";
const host = hostname || "localhost";
return `${protocol}://${host}:${port}`;
}
const localWebSocketURL = getLocalWebSocketURL();
const demoMode = args["demo"] || false;
module.exports = {
args,
hostname,
port,
sslKey,
sslCert,
sslKeyPassphrase,
isSSL,
localWebSocketURL,
demoMode,
badgeConstants,
};

View File

@@ -2,8 +2,8 @@ const fs = require("fs");
const { R } = require("redbean-node");
const { setSetting, setting } = require("./util-server");
const { log, sleep } = require("../src/util");
const dayjs = require("dayjs");
const knex = require("knex");
const path = require("path");
/**
* Database & App Data Folder
@@ -22,18 +22,17 @@ class Database {
*/
static uploadDir;
static screenshotDir;
static path;
static dockerTLSDir;
/**
* @type {boolean}
*/
static patched = false;
/**
* For Backup only
*/
static backupPath = null;
/**
* Add patch filename in key
* Values:
@@ -62,8 +61,29 @@ class Database {
"patch-add-clickable-status-page-link.sql": true,
"patch-add-sqlserver-monitor.sql": true,
"patch-add-other-auth.sql": { parents: [ "patch-monitor-basic-auth.sql" ] },
"patch-grpc-monitor.sql": true,
"patch-add-radius-monitor.sql": true,
"patch-monitor-add-resend-interval.sql": true,
"patch-ping-packet-size.sql": true,
"patch-maintenance-table2.sql": true,
"patch-add-gamedig-monitor.sql": true,
"patch-add-google-analytics-status-page-tag.sql": true,
"patch-http-body-encoding.sql": true,
"patch-add-description-monitor.sql": true,
"patch-api-key-table.sql": true,
"patch-monitor-tls.sql": true,
"patch-maintenance-cron.sql": true,
"patch-add-parent-monitor.sql": true,
"patch-add-invert-keyword.sql": true,
"patch-added-json-query.sql": true,
"patch-added-kafka-producer.sql": true,
"patch-add-certificate-expiry-status-page.sql": true,
"patch-monitor-oauth-cc.sql": true,
"patch-add-timeout-monitor.sql": true,
"patch-add-gamedig-given-port.sql": true,
"patch-notification-config.sql": true,
"patch-fix-kafka-producer-booleans.sql": true,
"patch-timeout.sql": true,
};
/**
@@ -81,17 +101,29 @@ class Database {
static init(args) {
// Data Directory (must be end with "/")
Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/";
Database.path = Database.dataDir + "kuma.db";
Database.path = path.join(Database.dataDir, "kuma.db");
if (! fs.existsSync(Database.dataDir)) {
fs.mkdirSync(Database.dataDir, { recursive: true });
}
Database.uploadDir = Database.dataDir + "upload/";
Database.uploadDir = path.join(Database.dataDir, "upload/");
if (! fs.existsSync(Database.uploadDir)) {
fs.mkdirSync(Database.uploadDir, { recursive: true });
}
// Create screenshot dir
Database.screenshotDir = path.join(Database.dataDir, "screenshots/");
if (! fs.existsSync(Database.screenshotDir)) {
fs.mkdirSync(Database.screenshotDir, { recursive: true });
}
Database.dockerTLSDir = path.join(Database.dataDir, "docker-tls/");
if (! fs.existsSync(Database.dockerTLSDir)) {
fs.mkdirSync(Database.dockerTLSDir, { recursive: true });
}
log.info("db", `Data Dir: ${Database.dataDir}`);
}
@@ -148,15 +180,12 @@ class Database {
await R.exec("PRAGMA journal_mode = WAL");
}
await R.exec("PRAGMA cache_size = -12000");
await R.exec("PRAGMA auto_vacuum = FULL");
// Avoid error "SQLITE_BUSY: database is locked" by allowing SQLITE to wait up to 5 seconds to do a write
await R.exec("PRAGMA busy_timeout = 5000");
await R.exec("PRAGMA auto_vacuum = INCREMENTAL");
// This ensures that an operating system crash or power failure will not corrupt the database.
// FULL synchronous is very safe, but it is also slower.
// Read more: https://sqlite.org/pragma.html#pragma_synchronous
await R.exec("PRAGMA synchronous = FULL");
await R.exec("PRAGMA synchronous = NORMAL");
if (!noLog) {
log.info("db", "SQLite config:");
@@ -184,15 +213,7 @@ class Database {
} else {
log.info("db", "Database patch is needed");
try {
this.backup(version);
} catch (e) {
log.error("db", e);
log.error("db", "Unable to create a backup before patching the database. Please make sure you have enough space and permission.");
process.exit(1);
}
// Try catch anything here, if gone wrong, restore the backup
// Try catch anything here
try {
for (let i = version + 1; i <= this.latestVersion; i++) {
const sqlFile = `./db/patch${i}.sql`;
@@ -208,7 +229,6 @@ class Database {
log.error("db", "Start Uptime-Kuma failed due to issue patching the database");
log.error("db", "Please submit a bug report if you still encounter the problem after restart: https://github.com/louislam/uptime-kuma/issues");
this.restore();
process.exit(1);
}
}
@@ -250,8 +270,6 @@ class Database {
log.error("db", "Start Uptime-Kuma failed due to issue patching the database");
log.error("db", "Please submit the bug report if you still encounter the problem after restart: https://github.com/louislam/uptime-kuma/issues");
this.restore();
process.exit(1);
}
@@ -353,8 +371,6 @@ class Database {
}
}
this.backup(dayjs().format("YYYYMMDDHHmmss"));
log.info("db", sqlFilename + " is patching");
this.patched = true;
await this.importSQLFile("./db/" + sqlFilename);
@@ -420,6 +436,9 @@ class Database {
log.info("db", "Closing the database");
// Flush WAL to main database
await R.exec("PRAGMA wal_checkpoint(TRUNCATE)");
while (true) {
Database.noReject = true;
await R.close();
@@ -436,90 +455,6 @@ class Database {
process.removeListener("unhandledRejection", listener);
}
/**
* One backup one time in this process.
* Reset this.backupPath if you want to backup again
* @param {string} version Version code of backup
*/
static backup(version) {
if (! this.backupPath) {
log.info("db", "Backing up the database");
this.backupPath = this.dataDir + "kuma.db.bak" + version;
fs.copyFileSync(Database.path, this.backupPath);
const shmPath = Database.path + "-shm";
if (fs.existsSync(shmPath)) {
this.backupShmPath = shmPath + ".bak" + version;
fs.copyFileSync(shmPath, this.backupShmPath);
}
const walPath = Database.path + "-wal";
if (fs.existsSync(walPath)) {
this.backupWalPath = walPath + ".bak" + version;
fs.copyFileSync(walPath, this.backupWalPath);
}
// Double confirm if all files actually backup
if (!fs.existsSync(this.backupPath)) {
throw new Error("Backup failed! " + this.backupPath);
}
if (fs.existsSync(shmPath)) {
if (!fs.existsSync(this.backupShmPath)) {
throw new Error("Backup failed! " + this.backupShmPath);
}
}
if (fs.existsSync(walPath)) {
if (!fs.existsSync(this.backupWalPath)) {
throw new Error("Backup failed! " + this.backupWalPath);
}
}
}
}
/** Restore from most recent backup */
static restore() {
if (this.backupPath) {
log.error("db", "Patching the database failed!!! Restoring the backup");
const shmPath = Database.path + "-shm";
const walPath = Database.path + "-wal";
// Delete patch failed db
try {
if (fs.existsSync(Database.path)) {
fs.unlinkSync(Database.path);
}
if (fs.existsSync(shmPath)) {
fs.unlinkSync(shmPath);
}
if (fs.existsSync(walPath)) {
fs.unlinkSync(walPath);
}
} catch (e) {
log.error("db", "Restore failed; you may need to restore the backup manually");
process.exit(1);
}
// Restore backup
fs.copyFileSync(this.backupPath, Database.path);
if (this.backupShmPath) {
fs.copyFileSync(this.backupShmPath, shmPath);
}
if (this.backupWalPath) {
fs.copyFileSync(this.backupWalPath, walPath);
}
} else {
log.info("db", "Nothing to restore");
}
}
/** Get the size of the database */
static getSize() {
log.debug("db", "Database.getSize()");

View File

@@ -2,8 +2,16 @@ const axios = require("axios");
const { R } = require("redbean-node");
const version = require("../package.json").version;
const https = require("https");
const fs = require("fs");
const path = require("path");
const Database = require("./database");
class DockerHost {
static CertificateFileNameCA = "ca.pem";
static CertificateFileNameCert = "cert.pem";
static CertificateFileNameKey = "key.pem";
/**
* Save a docker host
* @param {Object} dockerHost Docker host to save
@@ -66,16 +74,13 @@ class DockerHost {
"Accept": "*/*",
"User-Agent": "Uptime-Kuma/" + version
},
httpsAgent: new https.Agent({
maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940)
rejectUnauthorized: false,
}),
};
if (dockerHost.dockerType === "socket") {
options.socketPath = dockerHost.dockerDaemon;
} else if (dockerHost.dockerType === "tcp") {
options.baseURL = DockerHost.patchDockerURL(dockerHost.dockerDaemon);
options.httpsAgent = new https.Agent(DockerHost.getHttpsAgentOptions(dockerHost.dockerType, options.baseURL));
}
let res = await axios.request(options);
@@ -111,6 +116,53 @@ class DockerHost {
}
return url;
}
/**
* Returns HTTPS agent options with client side TLS parameters if certificate files
* for the given host are available under a predefined directory path.
*
* The base path where certificates are looked for can be set with the
* 'DOCKER_TLS_DIR_PATH' environmental variable or defaults to 'data/docker-tls/'.
*
* If a directory in this path exists with a name matching the FQDN of the docker host
* (e.g. the FQDN of 'https://example.com:2376' is 'example.com' so the directory
* 'data/docker-tls/example.com/' would be searched for certificate files),
* then 'ca.pem', 'key.pem' and 'cert.pem' files are included in the agent options.
* File names can also be overridden via 'DOCKER_TLS_FILE_NAME_(CA|KEY|CERT)'.
*
* @param {String} dockerType i.e. "tcp" or "socket"
* @param {String} url The docker host URL rewritten to https://
* @return {Object}
* */
static getHttpsAgentOptions(dockerType, url) {
let baseOptions = {
maxCachedSessions: 0,
rejectUnauthorized: true
};
let certOptions = {};
let dirName = (new URL(url)).hostname;
let caPath = path.join(Database.dockerTLSDir, dirName, DockerHost.CertificateFileNameCA);
let certPath = path.join(Database.dockerTLSDir, dirName, DockerHost.CertificateFileNameCert);
let keyPath = path.join(Database.dockerTLSDir, dirName, DockerHost.CertificateFileNameKey);
if (dockerType === "tcp" && fs.existsSync(caPath) && fs.existsSync(certPath) && fs.existsSync(keyPath)) {
let ca = fs.readFileSync(caPath);
let key = fs.readFileSync(keyPath);
let cert = fs.readFileSync(certPath);
certOptions = {
ca,
key,
cert
};
}
return {
...baseOptions,
...certOptions
};
}
}
module.exports = {

View File

@@ -0,0 +1,28 @@
const jsesc = require("jsesc");
const { escape } = require("html-escaper");
/**
* Returns a string that represents the javascript that is required to insert the Google Analytics scripts
* into a webpage.
* @param tagId Google UA/G/AW/DC Property ID to use with the Google Analytics script.
* @returns {string}
*/
function getGoogleAnalyticsScript(tagId) {
let escapedTagIdJS = jsesc(tagId, { isScriptContext: true });
if (escapedTagIdJS) {
escapedTagIdJS = escapedTagIdJS.trim();
}
// Escape the tag ID for use in an HTML attribute.
let escapedTagIdHTMLAttribute = escape(tagId);
return `
<script async src="https://www.googletagmanager.com/gtag/js?id=${escapedTagIdHTMLAttribute}"></script>
<script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date());gtag('config', '${escapedTagIdJS}'); </script>
`;
}
module.exports = {
getGoogleAnalyticsScript,
};

Some files were not shown because too many files have changed in this diff Show More