Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › database migration

How to Upgrade Uptime Kuma from 1.x to 2.0 Safely

By Freedom251 Team · · 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Upgrade Uptime Kuma 1.x to 2.0 as an in-place major-version migration: stop the existing service, make and verify multiple copies of the complete data directory, keep the same data mount, then start version 2 and watch its logs until the database migration finishes. Do not interrupt the migration. If it is interrupted, restore the backup and retry.

The procedure differs slightly between Docker, Docker Compose and a PM2 installation. Uptime Kuma 2.0 also drops older Node.js releases, removes several legacy features and changes some defaults, so a successful container restart is not the end of the upgrade.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What changes when you move from Uptime Kuma 1.x to 2.0?

Uptime Kuma 2.0 is a major release with breaking changes. The official migration guide, edited by Louis Lam on April 28, 2026, specifically warns users to read the migration instructions before upgrading from version 1.

The migration rewrites the heartbeat table into a new optimized format. Its duration depends on the size of your database and the speed of the storage and host. The guide gives one real example—20 monitors with 90 days of data took about seven minutes—but it publishes no guaranteed time. A larger installation or slower hardware can take hours.

#1 Best Overall
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)

During this process, the application may appear inactive while the database is being transformed. Logs are the authoritative way to tell whether work is continuing. Stopping the process because the web interface is temporarily unavailable can leave the migration incomplete.

Preflight checklist before touching the installation

Complete these checks while version 1 is still running. They reduce the chance of a failed start and give you a practical rollback path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Confirm the runtime and image constraints

  • Docker: plan to use louislam/uptime-kuma:2 with the existing /app/data mount. Alpine-based images are no longer supported for this upgrade.
  • Rootless images: do not switch to a rootless image as part of the migration unless you have a separately tested recovery plan; the migration guide warns that rootless images are likely to encounter startup problems during a version 1-to-2 upgrade.
  • Host operating system: Debian or Raspbian Buster systems should not be upgraded because of a documented libseccomp2 startup problem.
  • Non-Docker installations: Node.js 20.4 or newer is required. Support for Node.js 14, 16 and 18 has been dropped.
  • Legacy browsers: older browsers are no longer supported by version 2, so plan to administer the new instance with a current browser.

Inventory integrations that may be affected

  • Badge URLs that specify durations or feed them from scripts.
  • SMTP subject and body templates.
  • HTTP monitors that relied on the removed DNS Cache feature.
  • Automation that assumes newly created monitors retry once by default.
  • Any process that used Uptime Kuma’s old JSON Backup/Restore screen.

Schedule a maintenance window

Monitoring will be unavailable while the old service is stopped and while the database is migrated. Choose a window long enough for your data volume, and make sure you can access the host locally or through an out-of-band console if the web service does not return.

Back up the data directory and verify that it is restorable

The complete data directory is the supported backup unit in Uptime Kuma 2.0. The old JSON Backup/Restore feature has been removed, so exporting selected settings from the web interface is not a substitute for a filesystem copy.

  1. Stop Uptime Kuma cleanly using the method appropriate to your installation.
  2. Copy the entire data directory, including its database files and subdirectories, to separate storage.
  3. Make more than one copy. Keep at least one copy on a different disk or host; an external SSD or USB backup drive is optional storage, not an Uptime Kuma component.
  4. Record the source path, Docker volume name (if applicable), image tag, port mapping and ownership or permissions.
  5. Verify that the copies can be read and that their sizes are plausible. If your operational policy permits it, perform a test restore to a separate directory or host before the production upgrade.

Do not overwrite the only backup with a copy made after the migration starts. If the migration is interrupted, the official recovery instruction is to restore the pre-upgrade data directory and retry from the beginning.

Docker: upgrade an existing container

This procedure assumes the container is named uptime-kuma. Substitute your actual name, port and host directory or volume, but preserve the existing data mount exactly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Stop the version 1 container

docker stop uptime-kuma

Stopping first prevents writes while you copy the database. If the command reports that the container is already stopped, continue only after confirming that no second Uptime Kuma process is using the same data.

2. Back up the mounted data

Copy the host directory or Docker volume that is mapped to /app/data. Do not back up only a single SQLite file: the supported recovery unit is the complete directory.

Rank #2
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
  • Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz
  • 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
  • 2 × USB 3. 0 ports, 2 x USB 2. 0 Ports
  • 2 × micro HDMI ports supproting up to 4Kp60 video resolution
  • Micro SD card slot for loading operating system and data storage

3. Change only the image tag

Keep the same port mapping, volume or bind mount, container name and other settings. Change the image to louislam/uptime-kuma:2. Do not combine the upgrade with a move to Alpine, a rootless image or a new data location.

4. Recreate the container

docker run -d --restart=unless-stopped -p <YOUR_PORT>:3001 -v <YOUR_DIR OR VOLUME>:/app/data --name uptime-kuma louislam/uptime-kuma:2

Replace <YOUR_PORT> with the port you used before and <YOUR_DIR OR VOLUME> with the same bind mount or named volume. The important detail is that version 2 sees the existing version 1 data at /app/data; an empty mount creates what looks like a new installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Follow the migration log

docker logs -f uptime-kuma

Leave the command running until the migration messages finish and the application reports a normal startup. The heartbeat-table conversion can take substantially longer than the container’s image download. Do not press Ctrl+C in a way that stops the container, and do not remove or recreate the container while the migration is active. Exiting the log-follow command itself is harmless; stopping the application is not.

Docker Compose: upgrade a Compose stack

Compose users should change the service definition while retaining the existing volume declaration and mount target.

1. Stop the stack

docker compose down

Run this from the directory containing your Compose file. Confirm that no separately managed Uptime Kuma container remains running.

2. Back up the data directory or volume

Use the same complete-directory backup procedure described above. If the Compose file uses a named volume, identify its host location or create an archive through a temporary helper container; do not replace the volume with a newly named one by accident.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Change the service image

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2

Keep the existing volumes, ports, environment variables, restart policy and service name unless you have a separate reason to change them. In particular, keep the mount that places the old data at /app/data.

4. Start the updated service

docker compose up -d

Compose will create a container from version 2 using the preserved data volume.

Rank #3
Raspberry Pi 4 Model B (2GB)
  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE Gigabit Ethernet
  • 2 USB 3.0 ports; 2 USB 2.0 ports.
  • Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)

5. Watch all service logs

docker compose logs -f

Wait for the database conversion and normal application startup. If you operate several services, identify the Uptime Kuma service in the output and keep the stack running while its migration proceeds.

Non-Docker installation managed by PM2

A PM2 deployment needs a runtime check in addition to the data backup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Stop the process: pm2 stop uptime-kuma.
  2. Back up the complete Uptime Kuma data directory and verify the copy.
  3. Check the Node.js version:
node --version

The result must be Node.js 20.4 or newer. Node.js 14, 16 and 18 are no longer supported by version 2. Upgrade the runtime before launching the new application, while keeping a record of the old installation and process configuration for rollback.

  1. Follow the project’s non-Docker update instructions to obtain and install the version 2 application files.
  2. Start the PM2 process with the same data directory and configuration used by version 1.
  3. Monitor the process logs continuously until the heartbeat migration completes.

If the process exits during migration, do not repeatedly restart it against the same partially migrated database. Stop it, restore the pre-upgrade data directory, correct the runtime or filesystem issue, and retry.

How to tell whether migration is progressing

Use the container or PM2 logs rather than the browser alone. A temporarily blank, unavailable or slow web interface is expected while the database is being transformed. Progress messages should continue to appear over time, although the interval between messages is not specified.

  • Check that the process remains running and that log timestamps advance.
  • Watch CPU, memory and disk activity on the host; sustained database activity can indicate normal work, but resource activity alone is not proof of success.
  • Allow significantly more time than the seven-minute example if your history is larger or your storage is slower.
  • Do not interrupt the process merely because the migration takes longer than your initial estimate.

When logs indicate completion, open the web interface, sign in, inspect several monitors and confirm that historical data and notification settings are present. Then test a notification channel and one representative public status page before declaring the maintenance complete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Breaking changes to audit after the service returns

Badge duration syntax and limits

Version 2 accepts duration forms such as 24, 24h, 30d and 1y for badge endpoints. The documented limits are 720 hours, 1,440 minutes and 365 days. Review dashboards, README files, scripts and cached badge URLs that generate older duration syntax, and update them to a supported form within those limits.

SMTP LiquidJS variables are case-sensitive

SMTP subject and body templates now use case-sensitive LiquidJS variable names. The supported names are:

Rank #4
Vilros Raspberry Pi 4 Complete Starter Kit- Includes Raspberry Pi 4 Board, Fan Cooled Case, 64GB Preloaded Micro SD Card and More (4GB, Clear Transparent Case)
  • Vilros Complete Starter Kit for Pi 4 Includes Raspberry Pi 4 Model B Board and all the accessories you need to get started.
  • 9-PART KIT WILL HAVE YOU READY TO GET UP AND RUNNING: Kit Includes 1. Raspberry Pi 4 Model B Board 2. Case With Easy to connect Built-in fan 3. 64GB Micro SD card Preloaded with RP OS 4. Vilros Pi 4 Compatible Power Supply with Inline on/off switch (power supply color may vary white/black) 5. Micro HDMI to Standard HDMI cable (5ft) 6. Micro SD to USB adapter to reflash card if desired 7. Neoprene Storage Bag to store all parts when not in use 8. Set of 4 Heatsinks 9. Vilros QuickStart Guide instruction booklet for Pi 4
  • PASSIVE & ACTIVE COOLING: The included case is well-vented and the kit also includes a set of heatsinks with thermal stickers for easy application and a pre-installed fan to keep the board cool in any use.
  • CONVENIENT ACCESSORIES: The power supply features an inline on/off switch neoprene bag that holds and protects all the parts when not in use and the QuickStart guide is updated and written for Raspberry Pi 4.
  • IMPORTANT: Kit does NOT include Keyboard, Mouse or Monitor
  • name
  • msg
  • status
  • heartbeatJSON
  • monitorJSON
  • hostnameOrUrl

Audit every template for incorrect capitalization and variables that are no longer supported. Send a test notification after editing; a template can save successfully yet produce an incomplete message when a variable is misspelled.

New monitor retry default

Newly created monitors now default to zero retries instead of one. Existing monitor behavior should be checked against your intended alert policy, and provisioning scripts should set the retry value explicitly if they depend on a particular number.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Removed JSON Backup/Restore

Do not plan a post-upgrade recovery around the old JSON interface. Keep versioned copies of the complete data directory instead.

Removed DNS Cache for HTTP monitors

The DNS Cache feature for HTTP monitors has been removed. For Docker installations, the migration guide suggests using the bundled nscd approach where DNS caching is required. Recheck HTTP-monitor resolution behavior after the upgrade rather than assuming the old cache setting still applies.

Browser support

Legacy browsers are no longer supported. If the service is healthy but the administration interface fails to render, test with a current browser before changing the server.

Can you migrate SQLite to MariaDB at the same time?

Not as an officially supported part of the 1.x-to-2.0 upgrade. Uptime Kuma documents SQLite-to-MariaDB as a separate, third-party export/import project.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Question SQLite in-place upgrade SQLite to MariaDB move
Officially supported path Yes: upgrade version 1 on its existing database and let version 2 migrate it. No direct, officially supported migration path is documented.
Tooling Built into the version 2 startup migration. Requires third-party export/import tooling and independent validation.
Known risk Migration must not be interrupted; restore the complete backup if it fails. The guide warns that sqlite3tomysql does not create all required indexes and can significantly reduce performance.
Relationship to the upgrade This is the normal database path for an in-place upgrade. Treat it as a separate project, not as a routine step in the version 1-to-2 upgrade.

The safest sequence is to upgrade Uptime Kuma to version 2 on the existing SQLite database first. Only then consider a separately staged MariaDB migration that you have validated on a copy, with a tested rollback plan. A database conversion performed during the major-version migration makes it harder to determine whether a failure came from Uptime Kuma’s schema conversion or from the third-party import.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting a migration that appears stuck

The web page is unavailable but logs are active

Keep the service running and continue following the logs. Database size controls the duration, and the published seven-minute example is not a maximum. Check disk space and host resource usage without stopping the process.

Best Value
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • CanaKit 3.5A USB-C Power Supply with Noise Filter (UL Listed) specially designed for the Raspberry Pi 4 (5-foot cable)
  • CanaKit USB-C PiSwitch (On/Off Power Switch)
  • Set of 3 Aluminum Heat Sinks for the Raspberry Pi 4

No new log output and the process has exited

Capture the exit message, then stop any automatic restart loop. Do not launch version 2 repeatedly against the same data directory. Restore the untouched pre-upgrade backup, verify the Node.js version or Docker host constraints, and retry once the underlying issue is corrected.

Startup fails on Debian or Raspbian Buster

The documented libseccomp2 problem affects these hosts. Do not proceed with the upgrade on that operating-system release without a separately validated remediation or a different host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The container starts with no monitors

Check the volume mapping first. Version 2 must mount the old directory or named volume at /app/data. A typo in the host path, a newly created volume or a changed Compose volume name makes the application see an empty data directory. Stop the container, restore the original mapping and use the backup if the migration already modified the wrong location.

Templates or badges stopped working

Inspect badge duration syntax and SMTP LiquidJS variable casing using the lists above. These are application-level breaking changes, not evidence that the database migration failed.

HTTP monitors behave differently

Review any dependency on DNS Cache, which was removed. For Docker, evaluate the suggested bundled nscd arrangement and retest the affected monitors.

Docker and non-Docker procedures compared

Item Docker Docker Compose Non-Docker with PM2
Stop command docker stop uptime-kuma docker compose down pm2 stop uptime-kuma
Runtime prerequisite Supported non-Alpine image; avoid rootless image for this migration Same image constraints as Docker Node.js 20.4 or newer
Data preservation Keep the existing directory or volume mounted at /app/data Keep the existing Compose volume and mount target Keep the existing data directory
Start operation Recreate with louislam/uptime-kuma:2 Change the image, then run docker compose up -d Install version 2 files and start the PM2 process
Log command docker logs -f uptime-kuma docker compose logs -f Follow the PM2/application logs
Rollback Stop version 2, restore the backed-up data mount and recreate the prior image Restore the volume or directory, revert the image tag and run Compose again Restore the data directory, reinstall the prior application files and restart PM2

Rollback principles

Rollback is a restore operation, not an image-tag flip alone. Once version 2 has begun rewriting the heartbeat table, the original database may no longer be in a state that version 1 can safely use. If you must abandon the upgrade:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Stop the version 2 process.
  2. Preserve the logs and error message for diagnosis.
  3. Move the partially migrated data directory aside; do not overwrite your backup.
  4. Restore the complete pre-upgrade directory or volume copy.
  5. Revert the container image, Compose service or non-Docker application files to the version 1 setup.
  6. Start version 1 and confirm monitors, history and notifications before planning another attempt.

After correcting the cause—such as an unsupported Node.js release, an unsuitable host, an incorrect mount or insufficient storage—make a fresh verified copy and retry the migration from that clean version 1 state.

Post-upgrade validation checklist

  • Version 2 starts without repeated crash loops.
  • All expected monitors and their historical data are visible.
  • At least one monitor records a new heartbeat.
  • SMTP or other notification channels deliver a test message with correctly rendered variables.
  • Badge URLs used by dashboards return data with supported durations.
  • Public status pages and reverse-proxy routes still point to the same port and host.
  • HTTP monitors that depended on DNS caching have been retested.
  • Provisioning scripts set retry counts explicitly where zero-versus-one matters.
  • The untouched pre-upgrade backup is retained according to your normal retention policy.

Bottom line

Upgrade in place, not by creating a fresh Uptime Kuma instance: stop the old service, preserve and verify the complete data directory, keep the existing mount, satisfy the runtime and host requirements, and monitor the migration logs without interruption. Handle SQLite-to-MariaDB separately, then audit badges, SMTP templates, DNS-cache dependencies, browser access and retry defaults before returning the monitor to normal operations.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 2
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz; 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
$92.97
Bestseller No. 3
Raspberry Pi 4 Model B (2GB)
Raspberry Pi 4 Model B (2GB)
Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz; 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
$83.00
Bestseller No. 5
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); CanaKit USB-C PiSwitch (On/Off Power Switch)
$139.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

database migrationDockerDocker ComposeMonitoringNode.jssystem administrationUptime Kuma

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.