n8n Oracle Security Monitor
How I use n8n and Uptime Kuma to watch my Oracle Cloud free tier instances and keep the security list in check, with Discord alerts when anything goes wrong.
Status
live
Difficulty
intermediate
Time Required
30m
Last Tested
2026-06-01
The Problem
I run a few services on Oracle Cloud's always-free tier. The problem is Oracle has an aggressive idle policy — if it decides your VM isn't being used, it can terminate it. The security list (Oracle's firewall rules) also has a habit of getting into a bad state, which quietly kills access to services without any obvious error.
Manual checking doesn't cut it. This setup automates the monitoring loop.
The Stack
- Uptime Kuma — self-hosted uptime monitor running on my homelab. Watches Oracle-hosted services on a 60-second interval.
- n8n — self-hosted workflow engine. Receives webhooks from Kuma and handles the response logic.
- Oracle Cloud API — for inspecting and verifying security list rules when needed.
- Discord — where all alerts land, in a dedicated homelab notifications channel.
How It Works
Uptime Kuma watches each Oracle service. When something goes down or recovers, it fires a webhook to n8n.
The n8n workflow does this:
- Receives the Kuma webhook
- Parses the monitor name, status, and timestamp
- If down — posts a Discord alert with service name, status, and time
- If critically down for X minutes — optionally calls the Oracle API to check whether the security list rules are still intact
- If recovered — posts a green recovery notification
The Oracle security list check is the useful extra step. Services going dark even when the VM is running is almost always a security list issue — a rule gets dropped or overwritten. Catching that automatically saves a lot of head-scratching.
n8n Workflow
Create a new workflow with:
- Webhook trigger node — copy the URL into Kuma's notification settings
- Switch node — branch on
body.heartbeat.status(down / up) - HTTP Request node — call Oracle API if you want to verify security list state
- Discord node (or HTTP Request to a webhook URL) — send the notification
For the Discord embed I use a simple structure: red sidebar for down, green for recovery, with service name and timestamp in the body.
Uptime Kuma Setup
For each Oracle service, create a monitor:
- Type: HTTP(s)
- URL: the service endpoint
- Heartbeat interval: 60 seconds
- Notifications: Webhook → paste the n8n webhook URL
Oracle API Authentication
To hit the Oracle API from n8n you need an API signing key from the Oracle Cloud console. Store it in n8n credentials — never hardcode tokens directly in workflow nodes.
Why This Exists
Oracle free tier is genuinely useful for running lightweight services, but it needs watching. This workflow means if something breaks at 3am I'll see it in Discord without having to set up a dedicated alerting service. The Oracle security list check on top of basic uptime monitoring is what takes it from "nice to have" to actually useful — that's the failure mode that caused the most incidents before I automated this.