Skip to content

Latest commit

 

History

History
53 lines (34 loc) · 1.7 KB

README.md

File metadata and controls

53 lines (34 loc) · 1.7 KB

UptimeRobot to Kuma migration

We migrated from UptimeRobot to UptimeKuma, but there was no fast way to achieve this, so we wrote our own small migration helper.

Getting started

Copy the .env.sample as .env and enter your UptimeRobot API key.

For testing, you can simply start UptimeKuma via Docker:

docker run --rm -p 3001:3001 --name uptime-kuma louislam/uptime-kuma:1

Ensure you finished the initial setup (simply open localhost:3001 in your browser) and updated the credentials in the .env file.

To start the migration run:

# copy all your UptimeRobot monitors to your Kuma installation
yarn copy-monitors

# disable all UptimeRobot monitors
yarn disable-uptime-robot

# delete all your monitors from UptimeRobot
# DANGER!!! This is can not be undone
yarn delete-uptime-robot

Production Migration

Important Node: This migration helper was writen specially for our use-case. So not all UptimeRobot scenarios and features are implemented. So no garantie this will work 100% for you.

Pro Tipp: Before migrating, create a default notification that will get used as default.

Architecture

Fetching from UptimeRobot

This part was quite easy, because UptimeRobot got a good REST-API to fetch all monitors from

Creating the monitors in Kuma

This was the hard part. Currently, Kuma does not provide any form of API. In the first version of this migration helper, I tried to hook into the websocket connection of the UI and create monitors that way. This was really instabile and resulted in many non-deterministic errors.

For this reason I switched to Playwright. This allows us the remote-control a browser, which will create the monitors via the Kuma-UI.