Automate System Monitoring & Alerting with Uptime Kuma and Freshdesk


In this guide, I will demonstrate how to set up Uptime Kuma to monitor a system, send email alerts to Freshdesk when downtime is detected, and automatically create a ticket with the appropriate priority and assignment.
This setup showcases a real-world integration that streamlines incident management by ensuring downtime alerts are promptly turned into actionable tickets, reducing manual intervention and improving response times.
Prerequisites
Before we begin, ensure you have the following:
Docker & Docker Compose installed on an Ubuntu 22.04 server.
A Freshdesk account (Free plan — scroll to the bottom of their website to sign up).
A custom Freshdesk email address for ticket creation (e.g.,
support@yourcompany.freshdesk.com
).SMTP credentials for sending emails from Uptime Kuma.
What is Uptime Kuma?
A self-hosted monitoring tool that allows you to track the uptime and performance of your websites, APIs, and services.
Key Features:
Supports multiple monitoring options: HTTP, HTTPS, TCP, ICMP Ping, DNS, and more.
Customizable alerts:
Email, webhooks, Slack, Discord, Telegram, etc.
User-friendly web UI for viewing uptime history and logs.
Multi-user support for team-based monitoring.
Easy Docker deployment for quick setup.
Problem Statement
Manual system monitoring is inefficient, if your system goes down, you need to be notified immediately.
How This Automation Works:
Uptime Kuma detects downtime and sends an alert email to Freshdesk.
Freshdesk automatically creates a ticket based on the alert.
An automation rule in Freshdesk ensures that:
The ticket priority is set to Urgent.
The ticket type is classified as an Incident.
The ticket is assigned to a specific group for streamlined handling.
The ticket is automatically assigned to a designated agent.
This setup removes the need for manual intervention, ensuring that critical system outages are promptly addressed by the right team. It also enhances incident response time by guaranteeing that no downtime goes unnoticed.
Step 1: Deploy Uptime Kuma with Docker Compose
Create a directory for Uptime Kuma and a docker-compose.yml
file:
mkdir -p ~/uptime-kuma && cd ~/uptime-kuma
nano docker-compose.yml
Paste the following configuration in your docker-compose.yml
file:
---
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- uptime-kuma-data:/app/data
environment:
- TZ=Africa/Johannesburg #specify your own time-zone
volumes:
uptime-kuma-data:
Save and exit (CTRL+X
, Y
, Enter
), then start the container:
docker compose up -d
Make sure uptime kuma is running:
docker ps
Container status is healthy
Access Uptime Kuma at:http://<your-host-ip>:3001
Create your admin account:
Step 2: Adding a system to monitor
Click on the “Add New Monitor” button at the top-left.
In the “Add New Monitor” window, fill in the details:
Monitor Type: Choose
HTTP(s)
for website monitoring.Name: Enter a descriptive name for your monitor (e.g.,
Network IP Scanner
).URL: Enter your website URL (e.g.,
[https://mylan.com]
.Method: Select
GET
(default).Heartbeat Interval: Set the time interval for Uptime Kuma to check your site (e.g., 30 seconds).
Retries: Configure how many times Kuma should retry if the check fails.
Notification Settings: Choose the method you want to use for your alerts, in this demo, I’m using Email(SMTP).
Tags: (Optional) Add tags to organise your monitors.
Click “Save” to start monitoring.
The monitor should now appear in your Uptime Kuma dashboard.
If the site is online, it should show a green “UP” status(screenshot below):
Step 3: Configure Notifications (Email)
Go to Settings > Notification.
Click Add New Notification and select a notification method (Email SMTP), this requires a valid user mailbox along with your SMTP provider settings.
Note: I’ve added my Freshdesk email address in the To: field.
3. Follow your email provider setup instructions and save the settings.
4. Link the notification to the service you want to monitor.
Verifying ticket creation after an outage(screenshot below)
As you can see, Uptime Kuma has successfully created a ticket. However, Freshdesk applies default settings, requiring manual updates that can be easily overlooked as more tickets come in. Let’s automate this to streamline the process 😊.
Uptime Kuma ticket created in Freshdesk with default settings.
Step 4: Automatically Assign Tickets and Set Priority to Urgent
To ensure downtime alerts are handled efficiently, we’ll create an automation rule in Freshdesk to automatically assign tickets and set the appropriate priority.
Steps to Create the Rule:
In Freshdesk, navigate to Admin → Automations.
Click New Rule and give it a name, e.g., “Uptime Kuma Alerts”.
Apply the following conditions and actions:
Rule Configuration:
Event:
- When a ticket is created.
Conditions:
If Requester Email is *uptime_kuma@yourdomain.com*
- AND if Subject contains
[? Down]
Actions:
Set Type to Incident
Set Priority to Urgent
Assign to Group: Technical Support
Assign to Agent: Luqmaan
Note: Before creating this rule, identify a consistent part of the subject line that never changes (e.g.,
*[? Down]*
). First, test how Uptime Kuma formats its email subjects by allowing it to generate a ticket. Then, use that fixed pattern in your rule to ensure accuracy.
After previewing, saving, and enabling the rule, your configuration should look like this:
You can create multiple rules to customise ticket handling for different services, ensuring that only specific alerts have predefined priorities.
Final Testing
The automation is now in action. After testing, the rules worked exactly as expected where tickets were created with the correct priority, type, and assignments. Your system is now set up for seamless incident management.
Our automation rules are now in action, ensuring immediate response when a critical system goes offline.
Taking It a Step Further
To fully automate the incident lifecycle, feel free to create another Freshdesk automation rule that automatically closes tickets when Uptime Kuma detects the service is back online. Since Uptime Kuma raises a separate alert when the system recovers, you can use a similar rule to match the subject line and set the ticket status to Closed.
Conclusion
By integrating Uptime Kuma with Freshdesk, we’ve built an automated incident management system that ensures downtime is detected, assigned, and resolved without manual intervention. This setup improves response times, reduces human error, and streamlines IT operations.
More importantly, these integration and automation skills are valuable across various platforms and workflows. As I continue refining my expertise, I am focused on building efficient, scalable solutions that connect and automate systems seamlessly.
Let’s keep building!
Subscribe to my newsletter
Read articles from Luqmaan Marthinus directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Luqmaan Marthinus
Luqmaan Marthinus
Helloo and welcome to my Tech-Journey🙂. I'm an IT professional with 7+ years’ experience, including 6+ years supporting global teams across multiple time zones. As an aspiring Linux Admin/DevOps Engineer/Technical Writer, I enjoy breaking, fixing, automating and documenting “things” as a way to learn, grow, and build smarter systems. I believe in collaboration to remove single points of failure and deliver consistent, proactive results that help both the business and the team. Always eager to expand my knowledge, I focus on improving IT processes, documentation, tools, and workflows, sharing what I learn to strengthen collective understanding and empower others.