Checkcle for Monitoring Homelabs

In July 2024, I presented Home Lab Network Monitoring where I discussed NetAlertX, Apprise, and Gotify for monitoring and reporting on changes to your Homelab service environment.

Many folks use UpTimeKuma to perform this function more easily. Today, I am discussing “Checkcle” which is an application to monitor your Homelab service status and to notify you when services are down or your SSL certificates have problems.

Checkcle provides a means to monitor services via http/https, ping, TCP and DNS. Checkcle can also monitor the status of your SSL certificates and their expiration dates. This application is in the early stage of development, but seems very promising in terms of delivering an easy to use interface with a more modern look and feel than UpTimeKuma.

Checkcle can also track your schedules for your application maintenance windows if you so desire.

Checkcle has a polished & also simple user interface.

As of this presentation in the end of May, 2025 checkcle can monitor your home lab services and SSL certificates/Domain names. The application also has a working option to perform schedule and incident reporting for maintenance and downtime.

I found that the “Instance Monitoring”, “Operational Page”, “Reports” and “API Documentation” appear to be in-work, but not yet operational in my testing.

You can create a new service to be monitored by clicking the “New Service” button and you fill in the form.

The options for the service types are:

Monitoring services with checkcle is similar to the functionality you get with UpTimeKuma.

In the SSL & Domains section, you can “Add Domain” and it can monitor the availability of an SSL certificate and DNS entry.

In my case, scottibyte.com is a valid domain, but the certificate that I have for it is expired because I do not use it directly. In the video, I add chat.scottibyte.com for my RocketChat server (which you should join) and it shows that it is valid and expires in 65 days.

The schedules & Incident section is designed to document your maintenance schedule and other operational cycles that affect your applcations.

Of special note are the notification settings in the setting panel.

As I mentioned in the video, I would have preferred to see “Apprise” as a self-hosted notifer providing access to 60+ notification engines and I hope that’s a future. For now, notifications appear to be limited to Telegram, Discord, Slack, Signal and Email.

I personally like Gotify and Ntfy.

As of this writing, Checkcle is at v1.2.0.

You can read the complete documentation for checkcle here.

I am installing checkcle as a docker application nested in an incus container. If you followed my “Incus Containers Step by Step” tutorial, then you will have the bridgeprofile. Create the incus container for checkcle:

incus launch images:ubuntu/24.04 Checkcle -p default -p bridgeprofile -c boot.autostart=true -c security.nesting=true 

Connect to the root account in the container.

incus shell Checkcle

Take all of the updates.

apt update && apt upgrade -y

Install some dependencies.

apt install curl net-tools nano openssh-server -y

Install docker from the script on the docker website.

curl -sSL https://get.docker.com | sh

Add a username and put the user in the sudo and docker groups.

adduser scott
usermod -aG sudo scott
usermod -aG docker scott

Move over to the new user account.

su - scott

Create a folder for the application and move inside of it.

mkdir checkcle
cd checkcle

Edit a file for the docker compose code:

nano compose.yml

Insert the following in the file as shown in the video.

services:
  checkcle:
    image: operacle/checkcle:latest
    container_name: checkcle
    restart: unless-stopped
    ports:
      - "8090:8090"
    volumes:
      - ./pb_data:/mnt/pb_data  
    ulimits:
      nofile:
        soft: 4096
        hard: 8192

Do a CTRL O and enter to save the file and a CTRL X to exit the nano editor.

Start up the application.

docker compose up -d

Once the application starts. Look for the address for eth0 which is the name of the network device inside the incus container. Your address will differ from mine.

ifconfig

Go to your web browser and enter the address for eth0 that you just found and enter it with a :8090 at the end of the address and you should see the login screen for chackcle.

Your initial username is admin@example.com and your initial password is Admin123456.

After you initially sign in, go to the upper right hand corner of the web interface and click on the “S” and select “profile”.

Change the full name, username, and email and then click Save Changes which will log you out.

This time when you login, use the email you entered, but the password Admin123456 is still the same.

This time when you log back in, go to the “Security” option under your profile and change your password to your desired password. Keep in mind the old password is still “Admiin123456” at this point. Then click “Change Password”.

You will be logged out again and now you can use your email and whatever new password you chose.

Once you log back in go to the icon from which you chose “profile” and this time choose “settings”.

Under the “System Settings” tab you will need to click “edit”

You will want to change your “Application URL” to match the address of your container as shown below.

If you are publicly serving checkcle via a registered subdomain name, using NginX Proxy Manager, you would put the “https://” address in this field instead.

Finally, click “Save Changes”.

I tried changing the “Application Name” in the video and although I could make the change, I didn’t see the new name used in either the web GUI or the web browser tab as I would have expected. This is probably a bug that will be addressed soon.

At this point, you can add new services that you want to monitor as well as SSL & Domain names/certificates that you want to track.

It looks to me that this has the makings of a very powerful utility for the home lab that is easy to use.