UptimeRobot-Migrator/README.md

54 lines
1.7 KiB
Markdown

# 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:
```shell
docker run --rm -p 3001:3001 --name uptime-kuma louislam/uptime-kuma:1
```
Ensure you finished the initial setup (simply open [localhost:3001](localhost:3001) in your browser) and
updated the credentials in the `.env` file.
To start the migration run:
```bash
# 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.