Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Shells Virtual Desktop
BMail.ag - Secure Email Service
Server.net
CPLicense.net
VPS Server
Buy VPN
Vultr
VMs for AI
HostDare
HostDare
ReliableSite White-Label Dedicated Hosting for Resellers
InterServer VPS
BMail.ag - Secure Email Service
Best VPN
High-Performance Bare Metal Server Solutions
Karvl.com
Server Mania Cloud Hosting
DataWagon Hosting
AlphaVPS Hosting
Evoxt.com
Clouvider
VPS Hosting with NVMe
Residential IPs in the US & 4G Mobile Proxies in EU & US with Unlimited Bandwidth
ReliableSite White-Label Dedicated Hosting for Resellers
Rabisu - Hosting Solutions
Shells Virtual Desktop
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Tiny VPS with good uptime for Uptime Kuma

2»

Comments

  • TrKTrK Member

    General steps I took to migrate my v1 Kuma to beta v2.
    Took down the v1 instance on the fly and downloaded the kuma.db from there using the sftp shell.
    Created a simple v2 instance on Docker from scratch.
    Created a MariaDB DB on my database server.
    Finished initial setup(only filled the DB details on the setup-database page and stopped the container), I didn't create the user as I will essentially migrate everything from the v1 sqlite.
    Opened DBeaver (I know people prefer CLI, but I have been using DBeaver for years, it just makes it easier to manage different DBMS).
    Opened the SQLite DB in profile 1 and the new MariaDB DB on profile 2.
    Create a new task to export the database to a database, select tables, and it will guide you through mapping and whatnot, change the configuration of the task like threads, etc. And finally, click proceed, and it will start the migration from SQLite to MariaDB. It will take time, depending on your chosen configuration and DB size. (There might be some issues with some tables; you can skip or manually input the data in those tables. The main tables that need to be migrated are groups, heartbeat, monitor*, settings, and user.
    Once the data has been pushed, restart the container, and you have the v2 instance up and running with your v1 data migrated over.

    There's another way as well that might not trigger the errors during database migration, which is simply upgrade to v2 on v1 and let it alter the tables on the SQLite DB, and use the altered DB for DBeaver's database-to-database migration. Since I haven't used this, I can't say for certain that you won't be presented with any errors during database push.

    Things to note: I made like 3 backups of the "data" directory before moving forward. My v1 instance was on fly.io's free hobby plan, and v2 is on Netcup Pico. I haven't seen any performance degradation on either of those with 1s checks on crucial monitors(roughly around 12) and the remaining on 5s checks. I killed the container when I was pushing data. I didn't enter any env since Kuma will still ask you to set up the database during first boot and will create db-config.json based on your input. Data migration takes time, especially more so if you are only pushing data with a single thread like I do(for various reasons).

    Thanked by 1loay
  • caracalcaracal Member

    Do people set up another uptime kuma to monitor their first uptime kuma?

  • @caracal said:
    Do people set up another uptime kuma to monitor their first uptime kuma?

    Of course, this is called redundancy.

  • @caracal said:
    Do people set up another uptime kuma to monitor their first uptime kuma?

    I use updown.io to monitor Uptime Kuma. Just that single check, then everything else is in Uptime Kuma.

    Thanked by 1lojere
  • TrKTrK Member

    @caracal said:
    Do people set up another uptime kuma to monitor their first uptime kuma?

    Statusnook running on my homelab and uptimerobot takes care of it for me. Thinking of deploying something on CF workers to monitor kuma and beszel for me.

    Thanked by 2nghialele 0xC7
  • cainyxuescainyxues Member
    edited May 2025

    @TrK said: Statusnook running on my homelab and uptimerobot takes care of it for me. Thinking of deploying something on CF workers to monitor kuma and beszel for me.

    this one looks interesting there was something like this if I remember right also an uptime monitor based on GitHub actions but it was 5m intervals if I remember right

  • found it : https://github.com/lyc8503/UptimeFlare [Cloudflare workers one ]
    GitHub actions one: https://github.com/upptime/upptime [its 5mins though]

    Thanked by 3TrK nghialele 0xC7
  • rcy026rcy026 Member

    @zGato said:

    @rcy026 said:

    @zGato said:

    @rcy026 said:

    @vitobotta said:
    Believe me, the difference is like night and day. I'm not sure if it's because of the architectural changes in the app in v2, or because it's using MariaDB instead of SQLite, but the difference is huge. I don't think you can upgrade while switching the database type, though, so you might have to set up the new instance from scratch.

    In a few concurrent user and low data situation like Uptime Kuma I find it very hard to believe that MariaDB would outperform SQLite. On the contrary, SQLite should beat MariaDB (and most other SQL databases) when it comes to read performance.

    I'll migrate my over 400 monitors over to MariaDB and let's see :)
    For now, SQLite has been horrible and can't even hold data for over 1d. Corrupted multiple times and like hundreds of MBs of failed log files.

    Something must be seriously wrong, I've ran SQLite databases close to 100G without any problems at all so unless you save like 10 years of history it should not be a problem.

    idk, I either get sql constraint errors or some pool is full error?

    still, probably related to uptime-kuma since I would assume it wasn't meant to be used with that many monitors.

    SQLite requires some special concerns when doing many concurrent writes such as using correct pools and BEGIN CONCURRENT statements and running in WAL or WAL2 mode. I have not looked at the code of Uptime Kuma so I'm not saying they are doing it wrong, but yeah, lots of writes to SQLite requires some understanding about how things should be done.
    Could probably be fixed with some tweaking, but why bother if running MariaDB solves it. :smile:

  • @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    Tutorial pls

    @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    is this one systemctl status unified-monitoring-agent https://docs.oracle.com/en-us/iaas/Content/Monitoring/Tasks/verify-agent-installation.htm ?

    im running ubuntu 24 so its installed using snap. simply run snap remove oracle-cloud-agent to remove it.

    AMD or Ampere? It seems that Ampere isn't installed by default.

    was for me, just ran it few days ago on a fresh ARM VPS with ubuntu

  • @Tripleflix said:

    @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    Tutorial pls

    @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    is this one systemctl status unified-monitoring-agent https://docs.oracle.com/en-us/iaas/Content/Monitoring/Tasks/verify-agent-installation.htm ?

    im running ubuntu 24 so its installed using snap. simply run snap remove oracle-cloud-agent to remove it.

    AMD or Ampere? It seems that Ampere isn't installed by default.

    was for me, just ran it few days ago on a fresh ARM VPS with ubuntu

    Minimal image or full?

  • @Motion3549 said:

    @Tripleflix said:

    @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    Tutorial pls

    @Motion3549 said:

    @Tripleflix said:

    @COLBYLICIOUS said:
    I am using Uptime Kuma on Oracle Free Tier plan with a script that runs something every 15-20 minutes to prevent the 'suspend' part for no using VPS.

    LE: Or maybe use strato.de 1 EUR/month VPS or netcup pika servers.

    i fixed this by simply removing the monitoring agent that oracle installs.. been working for years now :P

    is this one systemctl status unified-monitoring-agent https://docs.oracle.com/en-us/iaas/Content/Monitoring/Tasks/verify-agent-installation.htm ?

    im running ubuntu 24 so its installed using snap. simply run snap remove oracle-cloud-agent to remove it.

    AMD or Ampere? It seems that Ampere isn't installed by default.

    was for me, just ran it few days ago on a fresh ARM VPS with ubuntu

    Minimal image or full?

    minimal

  • itzgeoitzgeo Member

    @zGato said:

    @rcy026 said:

    @zGato said:

    @rcy026 said:

    @vitobotta said:
    Believe me, the difference is like night and day. I'm not sure if it's because of the architectural changes in the app in v2, or because it's using MariaDB instead of SQLite, but the difference is huge. I don't think you can upgrade while switching the database type, though, so you might have to set up the new instance from scratch.

    In a few concurrent user and low data situation like Uptime Kuma I find it very hard to believe that MariaDB would outperform SQLite. On the contrary, SQLite should beat MariaDB (and most other SQL databases) when it comes to read performance.

    I'll migrate my over 400 monitors over to MariaDB and let's see :)
    For now, SQLite has been horrible and can't even hold data for over 1d. Corrupted multiple times and like hundreds of MBs of failed log files.

    Something must be seriously wrong, I've ran SQLite databases close to 100G without any problems at all so unless you save like 10 years of history it should not be a problem.

    idk, I either get sql constraint errors or some pool is full error?

    still, probably related to uptime-kuma since I would assume it wasn't meant to be used with that many monitors.

    Uptime kuma can't handle a lot of monitors it will be buggy as soon you do that.

  • @itzgeo said: a lot of monitors

    How much is a lot please?

  • @itzgeo said:

    @zGato said:

    @rcy026 said:

    @zGato said:

    @rcy026 said:

    @vitobotta said:
    Believe me, the difference is like night and day. I'm not sure if it's because of the architectural changes in the app in v2, or because it's using MariaDB instead of SQLite, but the difference is huge. I don't think you can upgrade while switching the database type, though, so you might have to set up the new instance from scratch.

    In a few concurrent user and low data situation like Uptime Kuma I find it very hard to believe that MariaDB would outperform SQLite. On the contrary, SQLite should beat MariaDB (and most other SQL databases) when it comes to read performance.

    I'll migrate my over 400 monitors over to MariaDB and let's see :)
    For now, SQLite has been horrible and can't even hold data for over 1d. Corrupted multiple times and like hundreds of MBs of failed log files.

    Something must be seriously wrong, I've ran SQLite databases close to 100G without any problems at all so unless you save like 10 years of history it should not be a problem.

    idk, I either get sql constraint errors or some pool is full error?

    still, probably related to uptime-kuma since I would assume it wasn't meant to be used with that many monitors.

    Uptime kuma can't handle a lot of monitors it will be buggy as soon you do that.

    v2 seems to be able to handle more than 100 just fine.

    Thanked by 1nghialele
  • itzgeoitzgeo Member

    @JohnFilch123 said:

    @itzgeo said: a lot of monitors

    How much is a lot please?

    I'd say around 80-100 it would start getting a little slow and the more you add the more slow and problems you will get but this can be avoided with the new version

  • itzgeoitzgeo Member

    @vitobotta said:

    @itzgeo said:

    @zGato said:

    @rcy026 said:

    @zGato said:

    @rcy026 said:

    @vitobotta said:
    Believe me, the difference is like night and day. I'm not sure if it's because of the architectural changes in the app in v2, or because it's using MariaDB instead of SQLite, but the difference is huge. I don't think you can upgrade while switching the database type, though, so you might have to set up the new instance from scratch.

    In a few concurrent user and low data situation like Uptime Kuma I find it very hard to believe that MariaDB would outperform SQLite. On the contrary, SQLite should beat MariaDB (and most other SQL databases) when it comes to read performance.

    I'll migrate my over 400 monitors over to MariaDB and let's see :)
    For now, SQLite has been horrible and can't even hold data for over 1d. Corrupted multiple times and like hundreds of MBs of failed log files.

    Something must be seriously wrong, I've ran SQLite databases close to 100G without any problems at all so unless you save like 10 years of history it should not be a problem.

    idk, I either get sql constraint errors or some pool is full error?

    still, probably related to uptime-kuma since I would assume it wasn't meant to be used with that many monitors.

    Uptime kuma can't handle a lot of monitors it will be buggy as soon you do that.

    v2 seems to be able to handle more than 100 just fine.

    Good! :)

  • LordSpockLordSpock Member, Host Rep

    @vitobotta said:

    @LordSpock said:

    @vitobotta said:

    Are you using v1? If yes I recommend switching to v2 beta which has support for embedded or external MariaDB and performs A LOT better.

    This is good to know. I've been really struggling with Uptime Kuma recently (it works okay but is terribly slow). Will give v2 a try.

    Believe me, the difference is like night and day. I'm not sure if it's because of the architectural changes in the app in v2, or because it's using MariaDB instead of SQLite, but the difference is huge. I don't think you can upgrade while switching the database type, though, so you might have to set up the new instance from scratch.

    I migrated from v1 to v2, still using SQLite. It's massively better!!! The migration took a couple of hours but that might be down to the crappy disk type I'm using in GCP more than anything else.

    For the first time in a while the UI doesn't lock up whilst I'm trying to perform basic tasks. Being able to rely on this should save me a few dollars.

    Thanked by 1nghialele
  • m4num4nu Member, Patron Provider
    edited May 2025

    @vitobotta said: on PikaPods, I can't set the pod to use version 2 of Uptime Kuma

    Hey Vito, we'll add version 2, right when it's out of beta. Since we support apps long-term, we can't add beta versions.

    I'm also waiting for new features, like real DB support. SQLite is a real bottleneck right now.

    Thanked by 2nghialele JohnnySac
  • plumbergplumberg Veteran, Megathread Squad

    @JohnFilch123 said:
    Did migration yesterday from v1 to v2. Had around ~10 monitors. Converting sqlite to mysql did not work for me, so I deployed a fresh kuma stack (kuma beta 2 + mariadb in docker) and started from scratch. Have got ~70 monitors now. Let me know if anybody wants docker compose for the stack.

    Id love to get the compose file. Thnx

    Thanked by 1nghialele
  • JohnFilch123JohnFilch123 Member
    edited May 2025
    services:
      uptime-kuma:
        image: louislam/uptime-kuma:beta
        container_name: kuma
        volumes:
          - /home/ubuntu/kuma2/data:/app/data
          - /var/run/docker.sock:/var/run/docker.sock
        environment:
          - UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=1
        networks:
          kuma:
        ports:
          - 3001:3001
        restart: always
    
      mariadb:
        image: mariadb:11.4
        container_name: mariadb
        environment:
          - MYSQL_ROOT_PASSWORD=CHANGEME
          - MYSQL_DATABASE=kuma
          - MYSQL_USER=kuma
          - MYSQL_PASSWORD=CHANGEME
        volumes:
          - /home/ubuntu/kuma2/db:/var/lib/mysql
          - /home/ubuntu/kuma2/db/my.cnf:/etc/mysql/conf.d/my.cnf
        networks:
          - kuma
    networks:
      kuma:
        enable_ipv6: true
        driver: bridge
        ipam:
          driver: default
          config:
            - subnet: fd00:321::/64
    
  • DecicusDecicus Member

    @JohnFilch123 said:
    services:
    uptime-kuma:
    image: louislam/uptime-kuma:beta
    container_name: kuma
    volumes:
    - /home/ubuntu/kuma2/data:/app/data
    - /var/run/docker.sock:/var/run/docker.sock
    environment:
    - UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=1
    networks:
    kuma:
    ports:
    - 3001:3001
    restart: always

    mariadb:
    image: mariadb:11.4
    container_name: mariadb
    environment:
    - MYSQL_ROOT_PASSWORD=CHANGEME
    - MYSQL_DATABASE=kuma
    - MYSQL_USER=kuma
    - MYSQL_PASSWORD=CHANGEME
    volumes:
    - /home/ubuntu/kuma2/db:/var/lib/mysql
    - /home/ubuntu/kuma2/db/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
    - kuma
    networks:
    kuma:
    enable_ipv6: true
    driver: bridge
    ipam:
    driver: default
    config:
    - subnet: fd00:321::/64

    Doesn't this still use SQLite by default? Since you haven't specified the environment variables to point it to MariaDB: https://github.com/louislam/uptime-kuma/wiki/Environment-Variables#mariadb-environment-variables

  • @JohnFilch123 said:
    services:
    uptime-kuma:
    image: louislam/uptime-kuma:beta
    container_name: kuma
    volumes:
    - /home/ubuntu/kuma2/data:/app/data
    - /var/run/docker.sock:/var/run/docker.sock
    environment:
    - UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=1
    networks:
    kuma:
    ports:
    - 3001:3001
    restart: always

    mariadb:
    image: mariadb:11.4
    container_name: mariadb
    environment:
    - MYSQL_ROOT_PASSWORD=CHANGEME
    - MYSQL_DATABASE=kuma
    - MYSQL_USER=kuma
    - MYSQL_PASSWORD=CHANGEME
    volumes:
    - /home/ubuntu/kuma2/db:/var/lib/mysql
    - /home/ubuntu/kuma2/db/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
    - kuma
    networks:
    kuma:
    enable_ipv6: true
    driver: bridge
    ipam:
    driver: default
    config:
    - subnet: fd00:321::/64

    Thanking you, gonna throw this on my Oracle free tier.

  • @Decicus said: Doesn't this still use SQLite by default

    Nope. I think they changed it in v2. So, now it creates db-config.json where it specifies DB backend. I am not sure how it know that mariadb is installed but it worked in my case.

  • DecicusDecicus Member

    @JohnFilch123 said:

    @Decicus said: Doesn't this still use SQLite by default

    Nope. I think they changed it in v2. So, now it creates db-config.json where it specifies DB backend. I am not sure how it know that mariadb is installed but it worked in my case.

    Ah, I'm just silly. Of course there's a setup step via the web UI where you can choose to use MariaDB.

    In your setup I would suggest to change the Uptime Kuma image to use louislam/uptime-kuma:beta-slim version though. The non-slim beta has MariaDB embedded into the same image (and supposedly adds 300-400 MB to the image size).

    If you're running MariaDB in a separate container (which is recommended anyway), you don't need to use the non-slim beta.

  • @Decicus said: I would suggest to change the Uptime Kuma image to use louislam/uptime-kuma:beta-slim version

    Damn, thanks! I completely missed that there are two version: full and slim. Full image is 1.7Gb, slim is just 540Mb.

    Thanked by 1Decicus
Sign In or Register to comment.