Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


    Cloudron Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular

    Free off-site monitoring with Fly.io and Uptime Kuma

    Uptime Kuma
    monitoring
    2
    3
    194
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • fbartels
      fbartels App Dev last edited by

      Hi everyone,

      I saw a post yesterday on Reddit showing how to use the Google Cloud free tier to run Uptime Kuma. One of the alternatives for free hosting mentioned in the post was fly.io and since their tooling intrigued me I have since then started hosting Uptime Kuma on their platform (combined with notifications through Telegram to be as independent from my own infrastructure as possible).

      Their free tier includes a vm to run own code or a docker container along with 1cpu and 256mb of ram. this can be coupled with a persistent storage volume of 3gb, so plenty of resources for Uptime Kuma. In addition to this they allow usage of own domain names so you can have your status page at https://status.mydomain.com instead of on one of their subdomains.

      All you need is the following toml file to deploy the Uptime Kuma container on fly.io:

      # fly.toml file generated for mykuma
      
      app = "mykuma"
      
      kill_signal = "SIGINT"
      kill_timeout = 5
      processes = []
      
      [build]
        image = "louislam/uptime-kuma:1"
      
      [mounts]
      source="kuma"
      destination="/app/data"
      
      [env]
        PORT = "8080"
      
      [experimental]
        allowed_public_ports = []
        auto_rollback = true
      
      [[services]]
        http_checks = []
        internal_port = 8080
        processes = ["app"]
        protocol = "tcp"
        script_checks = []
      
        [services.concurrency]
          hard_limit = 25
          soft_limit = 20
          type = "connections"
      
        [[services.ports]]
          force_https = true
          handlers = ["http"]
          port = 80
      
        [[services.ports]]
          handlers = ["tls", "http"]
          port = 443
      
        [[services.tcp_checks]]
          grace_period = "1s"
          interval = "15s"
          restart_limit = 0
          timeout = "2s"
      

      The configuration refers to a volume called "kuma", which needs to be created before the app can be deployed by running flyctl volumes create kuma.

      I have written a bit more in detail about on on my blog: https://blog.9wd.eu/posts/flyio/ (first draft status, may need refinement)

      1 Reply Last reply Reply Quote 14
      • Moved from Discuss by  girish girish 
      • humptydumpty
        humptydumpty last edited by

        Hi Felix. Thanks for the guide. How is updating the app handled?

        fbartels 1 Reply Last reply Reply Quote 0
        • fbartels
          fbartels App Dev @humptydumpty last edited by

          @humptydumpty to reliably update i ended up always updating the docker tag to the desired version. With the tag updated you just need to run flyctl deploy again.

          1 Reply Last reply Reply Quote 2
          • First post
            Last post
          Powered by NodeBB