# Uptime Kuma changelog > A self-hosted monitoring tool. - Vendor: Louis Lam - Category: Developer Tools - Official site: https://uptime.kuma.pet - Tracked by: What's New (https://whatsnew.fyi/product/uptime-kuma) - Harvested from: GitHub (louislam/uptime-kuma) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 2.5.0 - Date: 2026-08-01 - Version: 2.5.0 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.5.0 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.5.0 - **added** — Add next-rootless docker tag - **added** — Allow unlimited interval rather than 24 days - **added** — Add voice call option to Plivo notification provider - **added** — Add Plivo SMS notification provider - **added** — Add Ooredoo (Maldives) SMS notification provider - **added** — Add WxPusher SPT (WxPusher simple push token) notification provider - **added** — Add Flowtriq DDoS detection notification provider - **added** — Add tracking support on status pages for rybbit analytics - **added** — Add additional headers option for SMTP notifications - **added** — Add NTP monitor type for network time protocol monitoring - **added** — Add PM2 picker and platform selection for system service - **fixed** — Correct 12 spelling errors across codebase - **fixed** — Fix RSS service status description - **fixed** — Widen stat_daily up/down columns from SMALLINT to unsigned INTEGER - **fixed** — Reduce rate-limit log spam when quota is healthy - **fixed** — Fix double // in badgeUrl breaking Badge generator functionality - **fixed** — Resolve Steam monitor hostnames - **fixed** — Fix Discord timezone with dayjs.utc() - **fixed** — Omit resolver port from DNS monitor service URL - **fixed** — Fix screenshot_delay not saved when editing browser engine monitor ##### 2.5.0 ###### Uncategorized ###### 🆕 New Features - #7645 Add `next-rootless` docker tag - #7607 feat: allow unlimited interval rather than 24 days - #7597 feat: add voice call option to Plivo notification provider (Thanks @sarveshpatil-plivo) - #7584 feat: add Plivo SMS notification provider (Thanks @sarveshpatil-plivo) - #7571 feat: add Ooredoo (Maldives) SMS notification provider (Thanks @islandboymv) - #7569 feat: Add WxPusher SPT (WxPusher simple push token) notification provider (Thanks @zjiecode) - #7546 feat: add Flowtriq DDoS detection notification provider (Thanks @jacob-masse @FlyingDove2493) - #7525 feat: add tracking support on status pages for rybbit analytics (Thanks @DanielOberlechner) - #7506 feat(notification): add additional headers option for SMTP (Thanks @dnagy) - #7214 feat: add NTP monitor type for network time protocol monitoring (Thanks @henricook) - #7114 feat(system-service): add PM2 picker and platform selection (Thanks @KraoESPfan1n) ###### 💇‍♀️ Improvements ###### 🐞 Bug Fixes - #7654 fix: correct 12 spelling errors across codebase (Thanks @jannikbx) - #7641 fix: RSS service status description is wrong - #7618 fix: widen stat_daily up/down columns from SMALLINT to unsigned INTEGER (Thanks @kushiemoon-dev) - #7599 fix: reduce rate-limit log spam when quota is healthy (Thanks @hexonal) - #7590 fix: double // in badgeUrl breaking Badge generator functionality (Thanks @jaimeagudo) - #7588 fix(domain-expiry): clarify unsupported RDAP warning (Thanks @arturict) - #7542 fix: resolve Steam monitor hostnames (Thanks @yuminn-k) - #7520 fix(discord): timezone with `dayjs.utc()` (Thanks @skkzsh) - #7516 fix: omit resolver port from DNS monitor service URL (Thanks @skkzsh) - #7515 fix(monitor): screenshot_delay not saved when editing browser engine monitor (Thanks @GhadiSaab) - #7472 fix: add timeout functionality to kafka (Thanks @jfgsilva) - #7465 fix: preserve saved protocol when loading Globalping ping monitor (Thanks @titojuanc) - #7460 fix: prevent tags dropdown from overflowing viewport (Thanks @Subrat-Dwivedi-22) - #7290 fix: allow mqtts:// in MQTT monitor (Thanks @Mrstragr @chennin) ###### ⬆️ Security Fixes - #7538 #7349 chore: Update dependencies - #7508 chore: Set 14 days cooldown for npm update to mininize the supply-chain-attack ###### 🦎 Translation Contributions - #7521 #7477 chore: Translations Update from Weblate (Thanks @aindriu80 @Aluisio @andibing @AnnAngela @AntonPalmqvist @arcanjobr @bill162 @ctih1 @cyril59310 @dodog @firedur @Goudarz @Gringit @helakostain @ivanbratovic @kamine81 @kiznick @Mr-Mmmc @MrEddX @OnyxOracle @PolarniMeda @ramazansancar @samsilveira @superpep) ###### Others - #7544 chore: change analytics_type to string type from enum - #7543 chore: add build "pr-test" workflow, add a message for testing to new pr. - #7541 chore: Add an ability to enable node.js inspector - #7535 chore: Remove meaningless entries from en.json - #7496 chore: Login form minor changes ### 2.4.0 - Date: 2026-05-31 - Version: 2.4.0 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.4.0 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.4.0 - **added** — Add EgoSMS SMS provider for Uganda - **added** — Add incidents to RSS - **added** — Add VKTeams bot notification provider - **added** — Add optional token field for gamedig monitors - **added** — Add bearer token support to WebSocket upgrade monitor - **changed** — Update link to documentation about API keys - **fixed** — Handle npm 11.16.0 - **fixed** — Fix NTLM monitor over plain HTTP fails with 400 Bad Request - **fixed** — Normalize hidden log level lookup - **security** — Fix LiquidJS vulnerability to Remote Code Execution in notification templates ###### 🆕 New Features - #7434 feat(notification): add EgoSMS SMS provider for Uganda (Thanks @kristianinc @cursoragent) - #7420 feat: Add incidents to RSS (Thanks @dj-tuxis) - #7365 feat: Add VKTeams bot notification provider (Thanks @aleshasam) ###### 💇‍♀️ Improvements - #7433 feat: add optional token field for gamedig monitors (Thanks @aminoacidity) - #7415 feat: Adding bearer token (Thanks @aminoacidity @nyeswant) - #7431 fix: Add bearer token support to WebSocket upgrade monitor (Thanks @aminoacidity @nyeswant) - #7373 fix: update link to documentation about API keys (Thanks @eleanordoesntcode) ###### 🐞 Bug Fixes - ~#7453 fix(docker-only): add Let's Encrypt Gen Y root certificates~ (Please ignore this change) - #7451 fix: handling npm 11.16.0 - #7351 fix: NTLM monitor over plain HTTP fails with 400 Bad Request (Thanks @karzac) ###### ⬆️ Security Fixes - (Admin only/Authenticated only) Fix: LiquidJS is Vulnerable to Remote Code Execution, a vulnerability from an upstream dependency. In Uptime Kuma, LiquidJS should be used in notification template. (https://github.com/advisories/GHSA-gf2q-c269-pqgc) ###### 🦎 Translation Contributions - #7366 #7353 chore: Translations Update from Weblate (Thanks @aindriu80 @Aluisio @andibing @AnnAngela @Arden-Ahmad @bartoostveen @cyril59310 @dodog @Gringit @helakostain @ivanbratovic @Jumala9163 @Kf637 @master3395 @MrEddX @OnyxOracle @PolarniMeda @samsilveira @toniv90 @ttymayor @Virenbar @xuantan97) ###### Others - #7432 chore: Implement dev data directory handling for non-master branches - #7390 fix: normalize hidden log level lookup (Thanks @aqilaziz) ### 2.3.2 - Date: 2026-05-03 - Version: 2.3.2 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.3.2 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.3.2 - **fixed** — Revert back from multiple connection to single connection for SQLite by default ###### 🐞 Bug Fixes - #7346 fix: Revert back from multiple connection to single connection for SQLite by default ### 2.3.1 - Date: 2026-05-03 - Version: 2.3.1 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.3.1 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.3.1 - **fixed** — Add busy_timeout to sqlite to avoid error SQLITE_BUSY: database is locked - **fixed** — Use multi-arch Node base in push image Dockerfile ###### 🐞 Bug Fixes - #7307 fix: Add `busy_timeout` to sqlite to avoid error `SQLITE_BUSY: database is locked` (Thanks @wagnerand) ###### Others - #7340 chore: Update dependencies - #7345 chore: update to 2.3.1 - #7344 fix(push): use multi-arch Node base in push image Dockerfile (Thanks @herwinz) ### 2.3.0 - Date: 2026-05-01 - Version: 2.3.0 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.3.0 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.3.0 - **removed** — Remove sorting feature from status pages due to bad performance - **added** — Add UPTIME_KUMA_SQLITE_SINGLE_CONNECTION environment variable to avoid SQLite locking issues on Raspberry Pi - **added** — Add websocket authentication support - **added** — Add custom message template support for Evolution notification provider - **added** — Add Telnyx messaging notification provider - **added** — Add VK notification provider - **added** — Add MAX messenger notification provider - **added** — Add OracleDB monitor - **added** — Add collapsible groups to status page - **changed** — Add helptext that RTT for the ping monitor is not available on Linux - **changed** — Update Home Assistant notification help text for HA 2024 Services→Actions rename - **fixed** — Fix notification check for monitorJSON in Stackfield provider - **fixed** — Fix SSL handling in setup database temp server - **fixed** — Fix correct handling of missing time buckets in uptime calculations - **fixed** — Fix applyExisting not being saved to database in notifications - **fixed** — Fix domain expiry not updating properly - **fixed** — Fix propagation of create errors - **fixed** — Fix monitor graph gaps for sub-millisecond TCP pings - **fixed** — Fix prometheus metrics having duplicate series for a single monitor with tags ###### ⚠️ Breaking changes - #7194 fix: Revert "add sorting to status pages" - No more sorting feature in status pages. - Due to bad performance. - #7312 fix(database): add `UPTIME_KUMA_SQLITE_SINGLE_CONNECTION` - For Raspberry Pi users, you may have to set it to `true` to avoid SQLite locking issues. - Mainly affected Raspberry Pi users only, you can ignore it if you are not using devices like Raspberry Pi. ###### 🆕 New Features - #7304 feat: websocket improve to fix issue #7268 including support authentication (Thanks @sofia-fernandez-six) - #7207 feat(notification): add custom message template support for Evolution provider (Thanks @kbrianps) - #7201 feat: add Telnyx messaging provider (Thanks @LuvForAirplanes) - #7182 feat: Add VK notification provider (Thanks @FunNikita) - #7160 feat: Add MAX messenger notification provider (Thanks @Redleks) - #7156 feat: add OracleDB monitor (Thanks @sitiom) - #7154 feat: add collapsible groups to status page (Thanks @marco-carvalho) ###### 💇‍♀️ Improvements - #7303 feat(ui): add a helptext that RTT for the ping monitor is not avaliable on linux (Thanks @stchigel) - #7300 feat(ux): changed warning msg (Thanks @hemanth5544) - #7128 fix: Update Home Assistant notification help text for HA 2024 Services→Actions rename (Thanks @tr4nt0r) ###### 🐞 Bug Fixes - #7248 fix(notification): check for monitorJSON in Stackfield provider (Thanks @jlbrt) - #7166 fix: Handle SSL in setup database temp server - #7235 fix(uptime): ensure correct handling of missing time buckets in uptime calculations (Thanks @adrianceding) - #7221 fix(notification): ensure applyExisting is not saved to database - #7198 fix: Domain expiry doesn't seem to update #7189 (Thanks @shanto) - #7155 fix: propagate create errors (Thanks @otbutz) - #7159 fix: monitor graph gaps for sub-millisecond TCP pings (Thanks @0xRozier) - #7125 fix: prometheus metrics have two series for a single monitor when that monitor has tags (Thanks @nicjansma) ###### 🦎 Translation Contributions - #7108 feat: Add English (United Kingdom) language support (Thanks @andibing) - #7292 #7197 #7132 chore: Translations Update from Weblate (Thanks @aindriu80 @Ale1x @Aluisio @andibing @AnnAngela @CammarataLudovico @cyril59310 @dodog @efenow @fcordeiro @firedur @FunNikita @Gringit @Hamstio1 @helakostain @ivanbratovic @kevinheyer-dev @mlopezcoria @Mo7amm1d @MrEddX @numarkpro @Redleks @rodis120 @samsilveira @thisisjaymehta @ttymayor @Virenbar @wibe01204 @Zeromskas) ###### Others - #7317 #7195 #7133 chore: Update dependencies - #7204 chore: Add agents.md - anti AI slop - #7146 chore: Add monthly workflow to build `push` Docker image ### 2.2.1 - Date: 2026-03-10 - Version: 2.2.1 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.2.1 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.2.1 - **added** — Add fluxer notification provider - **added** — Set process.title to uptime-kuma - **fixed** — Fix isParentActive return type to boolean - **fixed** — Fix fluxer input styling and make discord input hidden - **fixed** — Remove uptime ratio and avg. response time from prometheus metrics - **fixed** — Revert removal of @aws-sdk and @azure packages - **security** — Fix Server-side Template Injection (SSTI) in Notification Templates that allows arbitrary file read via upstream dependency LiquidJS ###### 🆕 New Features - #7109 feat: fluxer notification provider (Thanks @letruxux) - #7096 feat: set process.title to uptime-kuma (Thanks @Hill-98) ###### 🐞 Bug Fixes - #7121 fix: isParentActive return type to boolean (Thanks @terisikk) - #7110 fix(ui): fix fluxer input styling; make discord input hidden (Thanks @letruxux) - #6915 fix: removal of uptime ratio and avg. response time from prometheus metrics (Thanks @tr4nt0r) - #7101 fix: revert: remove @aws-sdk, @azure packages ###### ⬆️ Security Fixes GHSA-v832-4r73-wx5j - Another Server-side Template Injection (SSTI) in Notification Templates Allows Arbitrary File Read (fixed in upstream dependency LiquidJS, also see: https://github.com/harttle/liquidjs/security/advisories/GHSA-wmfp-5q7x-987x) ###### 🦎 Translation Contributions - #7119 #7099 chore: Translations Update from Weblate (Thanks @aindriu80 @Aluisio @cyril59310 @dodog @fabianovich @krmu @letruxux @maxisimonazzi @MrEddX) ###### Others - #7120 #7100 chore: Update dependencies ### 2.2.0 - Date: 2026-03-05 - Version: 2.2.0 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.2.0 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.2.0 - **added** — Allow SOCKS proxy for notifications - **added** — Add WhatsApp (360messenger) notification provider - **added** — Allow templating in the Signal notification provider - **added** — Add structured logging (JSON) - **changed** — Improve SQLite multiple connections - **fixed** — Uptime Kuma is not able to start on older version of Node.js 20 (~20.17.0) - **fixed** — Monitor list cannot display monitor name in full width - **fixed** — Monitor list tag list does not update - **fixed** — Globalping retry creating the measurement on status 500 - **fixed** — Globalping show error message when using multiple locations - **fixed** — Domain validation not allowing for PTR DNS records - **fixed** — Remove forced DOWN status in group monitor - **fixed** — Setting Status Page Analytics Type to None fails with SQLite constraint violation - **fixed** — Edit monitor page has several issues - **fixed** — Edit monitor URL validation is incorrect - **fixed** — Show actual bind address in startup logs - **fixed** — Preserve Domain Name Expiry Notification setting when editing monitor - **fixed** — Show certificate expiry on status page for TCP monitors - **security** — Fix missing authorization check on Ping Badge endpoint that leaks ping times of monitors ###### 🆕 New Features - #7088 feat(proxy): allow socks proxy for the notifications (Thanks @ASLanin) - #7046 feat: add whatsApp (360messenger) notification provider (Thanks @WaMessenger) - #6989 feat: allow templating in the Signal notificaiton provider (Thanks @karthikeya-333) ###### 💇‍♀️ Improvements - #6979 refactor: improve SQLite multiple connections ###### 🐞 Bug Fixes - #7019 fix: Uptime Kuma is not able to start on older version of Node.js 20 (~20.17.0) - #7076 fix(monitor-list): cannot display monitor name in full width - #7069 fix(monitor-list): tag list do not update - #7056 fix(globalping): retry creating the measurement on status 500 (Thanks @radulucut) - #7055 fix(globalping): show error message when using multiple locations (Thanks @radulucut) - #7048 fix: Fix domain validation not allowing for PTR DNS records (Thanks @sgdc3) - #7045 fix: Remove forced DOWN status in group monitor (Thanks @MayMeow) - #7043 fix: Setting Status Page Analytics Type to "None" fails with SQLite constraint violation - #7011 fix(edit-monitor): several issues in edit page - #7010 fix(edit-monitor): url validation is incorrect - #6999 fix: show actual bind address in startup logs (Thanks @mixelburg) - #6994 fix: preserve Domain Name Expiry Notification setting when editing monitor (Thanks @RohitDarekar816) - #6984 fix: show certificate expiry on status page for TCP monitors (Thanks @mixelburg) ###### ⬆️ Security Fixes - GHSA-c7hf-c5p5-5g6h Missing Authorization Check on Ping Badge Endpoint Leaks Ping times of montors (Thanks @kuranikaran) ###### 🦎 Translation Contributions - #7072 #7007 chore: Translations Update from Weblate (Thanks @2000Arion @abcsnoob @aindriu80 @Aluisio @AnnAngela @AntonPalmqvist @BelenCaSa @cyril59310 @dodog @florian-berger @helakostain @ivanbratovic @kiznick @LovesAsuna @mariogarridopt @MrDariusz @MrEddX @robertcoroianu @Virenbar) ###### Others - #7015 chore: follow up #7013 - #7013 chore: add PR description template check workflow - #5179 feat: structured logging (JSON) (Thanks @SapphicCode) - #7092 chore: update to 2.2.0 - #7071 #6991 chore: Update dependencies - #7032 chore: remove @aws-sdk, @azure packages - #7077 chore: generate package-lock.json from scratch to ensure accuracy - #7058 chore: improve changelog generator ### 2.1.3 - Date: 2026-02-19 - Version: 2.1.3 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.1.3 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.1.3 ###### 🐞 Bug Fixes - #6981 fix: rdap data is not actually cached ### 2.1.2 - Date: 2026-02-19 - Version: 2.1.2 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.1.2 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.1.2 - **added** — Notification provider Teltonika RUTxxx SMS gateway - **added** — Add tags to teams notifications - **added** — Add DNS support via Globalping - **changed** — Improve dynamic RDAP DNS data - **fixed** — Clear 2.1.0 frontend PWA cache - **fixed** — Add helptext about usage to expiry checkboxes - **fixed** — Handle undefined monitor name in PagerDuty notification summary - **fixed** — Fix typo in DNS monitor error message (specifiy → specify) - **fixed** — Clearing heartbeats on paused monitors leaves them paused ###### 🆕 New Features - #6952 feat: Notification provider Teltonika RUTxxx SMS gateway (Thanks @unixerius) - #6939 feat: add tags to teams notifications (Thanks @thelfensdrfer) - #6850 feat: add DNS support via Globalping (Thanks @radulucut) ###### 💇‍♀️ Improvements - #6971 refactor: improve dynamic RDAP DNS data ###### 🐞 Bug Fixes - #6933 fix: Clear 2.1.0 frontend PWA cache - #6978 fix: Add helptext about usage to expiry checkboxes - #6977 fix: handle undefined monitor name in PagerDuty notification summary (Thanks @mixelburg) - #6960 fix: typo in DNS monitor error message (specifiy → specify) (Thanks @redbasecap-buiss) - #6897 fix: clearing heartbeats on paused monitors leaves them paused (Thanks @bruce691) ###### 🦎 Translation Contributions - #6945 chore: Translations Update from Weblate (Thanks @2000Arion @Aluisio @cyril59310 @DJEDIVER @dodog @florian-berger @hernikplays @Kf637 @MrEddX @thelfensdrfer @VeerGosai) ###### Others - #6969 chore: Add automated npm dependency update workflow - #6968 chore: Update dependencies - #6963 chore: Update pull request template with AI usage warning - #6951 chore: Update PR template with AI usage warning - #6948 fix: Restrict scheduled workflows to upstream repository - #6970 fix: npm dependency update GitHub workflow ### 2.1.1 - Date: 2026-02-13 - Version: 2.1.1 - Original notes: https://github.com/louislam/uptime-kuma/releases/tag/2.1.1 - Permalink: https://whatsnew.fyi/product/uptime-kuma/releases/2.1.1 - **added** — Add customizable matrix notifications - **added** — Add Group Name column to the Monitors table on dashboard page - **fixed** — Fix Gamedig unable to resolve SRV records by removing redundant DNS resolution in GameDigMonitorType - **removed** — Remove vite-plugin-pwa to avoid this plugin caching files unexpectedly - **fixed** — Fix discord notification timestamp and update notification message - **fixed** — Add scroll bar to tags dropdown on dashboard - **fixed** — Only enable domain expiry notification when TLD has RDAP support ###### 💇‍♀️ Improvements - #6899 feat: add customizable matrix notifications (Thanks @namatery) - #6868 feat: Add Group Name column to the Monitors table on dashboard page (Thanks @evolvomind) ###### 🐞 Bug Fixes - #6923 fix: Gamedig unable to resolve SRV records by removing redundant DNS resolution in GameDigMonitorType - #6907 fix: Remove vite-plugin-pwa, avoid this plugin caches files unexpectedly - #6894 fix: discord notification timestamp & update notification message (Thanks @ryangurn) - #6887 fix(dashboard): add scroll bar to tags dropdown (Thanks @smartcoder0777) - #6884 fix(domain-expiry): only enable domain expiry notification when TLD has RDAP support (Thanks @BitWise-0x) ###### 🦎 Translation Contributions - #6878 #6853 chore: Translations Update from Weblate (Thanks @2000Arion @alihatamitajik @Aluisio @AnnAngela @cyril59310 @dodog @florian-berger @jochemp264 @JWeinelt @Kf637 @michi-onl @MrEddX @Saibamen @simonghpub @tvpetersen) ###### Others - Other small changes, code refactoring and comment/doc updates in this repo: - #6927 chore: Update dependencies - #6877 chore: npm update - #6925 chore: Update security policy and reporting guidelines - #6890 chore(generate-changelog): Fix Translation PRs did not merge together - #6875 chore: Update final release workflow - #6879 chore: update to 2.1.0