The most dependable setup is to have a monitor request your public website over HTTPS and send a Discord notification when checks fail or recover. Uptime Kuma provides HTTP(S) checks, retry and resend controls, status history, and a native Discord notification. Install it with persistent data, create a Discord webhook, configure the monitor against the canonical public URL, and test both the outage and recovery paths. For a very small site, a protected curl script run by cron or a systemd timer can do the same basic job, but a checker on the same VPS cannot alert you when that entire VPS is unreachable.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What the alert architecture should look like
A Discord webhook is a destination, not a monitoring system. Something must periodically make an independent request to your site, decide whether the response is acceptable, remember the previous state, and post a message when the state changes. Keep those responsibilities separate:
As an Amazon Associate I earn from qualifying purchases.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems- Checker: Uptime Kuma or a scheduled script requests the public URL.
- Decision: The checker applies a timeout, accepted status-code list, and any keyword or TLS-certificate rules.
- Notification: A Discord webhook receives outage and recovery messages.
- State and history: The monitor records checks and suppresses duplicate alerts according to its retry and resend settings.
Run the checker on a different host or use an external monitoring location when losing the whole VPS matters. A monitor process, container, or cron job on the same machine dies with the machine, so it cannot report a power loss, provider outage, broken network route, or a firewall rule that blocks all access to that VPS. A same-VPS monitor is still useful for application-level failures, such as a stopped web server, bad deployment, expired certificate, or HTTP 500 response.
Choose Uptime Kuma or a lightweight script
| Capability | Uptime Kuma | curl plus cron or systemd |
|---|---|---|
| Dashboard and history | Built-in monitor view, event history, and current status. | Not included; you must create your own logs and reporting. |
| Configuration effort | Install the service, then configure monitors and notifications in the web interface. | Write, secure, schedule, and maintain shell code and an environment file. |
| Retries and alert suppression | Monitor settings provide retries before DOWN and resend behavior to reduce transient-failure noise. | Must be implemented in the script or supplied by the scheduler. |
| Recovery messages | Enable recovery notifications on the monitor and notification. | Track the previous state and post only when it changes back to up. |
| Multiple checks or locations | Supports multiple monitors; true external vantage points still require another host or service. | Normally one URL from one machine unless you build additional workers. |
| When the monitored VPS is completely down | A same-VPS installation cannot send an alert; place Kuma elsewhere for that failure mode. | A same-VPS job has the same limitation. |
| Maintenance | Updates, authentication, storage, and the monitoring application itself need care. | Fewer components, but you own quoting, state files, logs, dependencies, and schedule failures. |
Use Uptime Kuma when you want a repeatable interface, history, several monitors, and built-in notification behavior. Use a script when one or two checks, minimal resource use, and complete control are more important than a dashboard. A hosted monitoring service can provide checks from external locations and may include retention, escalation channels, and managed updates; interval limits, retention, data residency, and price vary by provider and plan, so verify those terms before relying on it.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Prepare the VPS and Discord channel
Prerequisites
- A Discord server where you can manage integrations and a channel dedicated to operational alerts.
- A VPS with outbound HTTPS access. If Uptime Kuma is installed there, allow only the web UI access you actually need and protect administration with authentication, a reverse proxy, or a firewall.
- A canonical public HTTPS URL for the site. Decide whether the monitor should follow redirects and which status codes represent success.
- Persistent storage for Uptime Kuma’s application data, or a protected state directory for the script alternative.
Create the Discord webhook
- Open Discord and go to Server Settings → Integrations → View Webhooks → New Webhook.
- Select the alert channel, give the webhook a recognizable name, and copy its URL. Uptime Kuma’s interface describes this path as: “You can get this by going to Server Settings -> Integrations -> View Webhooks -> New Webhook”.
- Store the URL immediately in a password manager or protected server secret. It is a posting credential: anyone who obtains it can send messages to that channel.
Use a dedicated channel so outages are not buried in chat. Give the integration only the Discord permissions it needs, and avoid putting the URL in screenshots, tickets, shell history, browser JavaScript, Git repositories, or ordinary application logs.
Install Uptime Kuma with persistent data
Docker Compose is a practical deployment method. The important operational detail is the data volume: Uptime Kuma stores its configuration and history under /app/data. Without a persistent mount, recreating the container can remove monitors, notification settings, and history.
Example Compose service
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- '127.0.0.1:3001:3001'
restart: unless-stopped
Save the service in a directory owned by an administrator, create the data directory with permissions appropriate for the account running Compose, and start it:
docker compose up -d
Binding the port to 127.0.0.1 keeps the UI off the public interface. Reach it through a reverse proxy that provides HTTPS and authentication, or use a tightly restricted firewall rule if remote administration is required. Do not expose an unauthenticated monitoring console to the internet. Back up the mounted data directory and test that a restore brings back monitors and notification settings.
If you use another supported installation method, preserve the equivalent application-data directory and apply the same access controls. The exact container tag, operating-system package, reverse-proxy configuration, and update procedure should match the versions you have chosen; test upgrades on a noncritical monitor before changing a production instance.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Configure the public HTTP(S) monitor
- Open the Uptime Kuma web UI and choose Add New Monitor.
- Set the monitor type to HTTP(s).
- Enter the canonical public HTTPS URL, not a loopback address or an internal container name. If the site has separate HTTP and HTTPS behavior, monitor the URL visitors are expected to use.
- Choose an interval appropriate to the site’s importance. A short interval detects problems sooner but creates more requests and can amplify an incident; a longer interval is quieter and cheaper.
- Set a timeout that allows normal DNS, TLS, and application response time without waiting indefinitely. Keep it shorter than the interval so a stuck request does not overlap the next check.
- Define the accepted status codes. A normal page commonly returns a success code, while a redirect, authentication response, or application error may require a deliberate decision. Do not mark every response as healthy merely to silence alerts.
- Optionally require a keyword in the response body when a reverse proxy can return a success page while the application is broken. Use this only for stable text; changing design copy can create false DOWN events.
- Enable certificate checks when certificate expiry or a hostname mismatch should be an incident. Confirm that the certificate presented to the public hostname is the one you intend to monitor.
- Save the monitor and open its status view. Confirm that the first check reaches the public site and records the expected response.
Checking the public URL tests DNS, routing, the TLS handshake, the web server, and the application path together. A localhost check can be useful as a second diagnostic monitor, but it cannot tell you whether visitors can reach the site.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Add Discord notifications in Uptime Kuma
- Open the notification settings and create a new notification.
- Choose Discord as the notification type.
- Paste the webhook URL exactly as copied from Discord. Treat the field as a secret and do not include it in a public export or screenshot.
- Choose the bot display name and, if useful, an identifying message prefix such as the environment or site name.
- Click Test. Confirm that a test message arrives in the selected channel before attaching the notification to a live monitor.
- Attach the notification to the HTTP(S) monitor. Enable both DOWN and recovery events so the same channel records when service returns.
Uptime Kuma lists Discord as a supported notification platform. Its generic Webhook option is intended for integrations that accept HTTP POST requests, but use the native Discord type for this case so the message formatting and event handling are managed by the monitor.
Prevent false alarms and message storms
Use retries before declaring DOWN
One failed request can be a transient DNS timeout, a brief packet loss event, a busy process, or a deploy that lasts only a few seconds. Configure the monitor to retry failed checks before changing the state to DOWN. Balance the retry count and interval against your recovery objective: more retries reduce noise but delay the first alert.
Control resend behavior
Once a monitor is DOWN, repeated checks should not produce an identical Discord message every time. Set a resend policy that reminds you at a useful cadence without flooding the channel. During planned maintenance, pause the monitor or use the maintenance features available in your deployment rather than accepting a stream of expected failures.
Keep recovery enabled
A DOWN message without a recovery event leaves the incident open in the channel. Test that a failed check produces one outage notification and that a subsequent healthy check produces one recovery notification. If recovery messages do not appear, verify that the notification is attached to the monitor and that recovery events are enabled for that notification.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Test the complete failure and recovery path
- Send a notification test from Uptime Kuma and confirm the Discord channel, display name, and prefix.
- Temporarily point a test monitor at a URL that reliably returns an error, or use a maintenance window on a nonproduction site. Do not take a customer-facing site down merely to test alerts.
- Observe the configured retries, then confirm that the DOWN message contains enough context to identify the monitor and URL.
- Restore the healthy URL and wait for the next successful checks. Confirm one recovery message and a corresponding status change in the history.
- Restart the Uptime Kuma container and verify that the monitor, notification, and history remain present. This validates the
/app/datapersistence. - If the alert is intended to cover a total VPS outage, stop testing the same-host installation and add an external or second-host checker. A process on the failed VPS cannot transmit a Discord message after the network path is gone.
Use a protected curl script instead
A script is suitable for a small site when a dashboard, historical charts, and multiple monitors are unnecessary. The example below sends messages only on state transitions, uses a short request timeout, and relies on jq to escape the Discord JSON safely.
Create a secret environment file
URL='https://example.com/'
DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/replace-this-value'
Save it as /etc/website-check.env, make it readable only by the account that runs the check, and never commit it to source control. The URL above is a format example; paste your actual webhook only on the server. Install jq from your operating system’s trusted package source.
Install the transition-aware script
#!/usr/bin/env bash
set -u
set -o pipefail
source /etc/website-check.env
STATE_DIR='/var/lib/website-check'
STATE_FILE="$STATE_DIR/state"
mkdir -p "$STATE_DIR"
if curl --fail --silent --show-error --location
--connect-timeout 5 --max-time 15
--output /dev/null "$URL"; then
current='up'
else
current='down'
fi
previous='unknown'
if [[ -f "$STATE_FILE" ]]; then
previous=$(cat "$STATE_FILE")
fi
if [[ "$current" != "$previous" ]]; then
if [[ "$current" == 'down' ]]; then
message="Website check failed: $URL"
elif [[ "$previous" == 'down' ]]; then
message="Website recovered: $URL"
else
message="Website state initialized as up: $URL"
fi
payload=$(jq -nc --arg content "$message" '{content:$content}')
if curl --fail --silent --show-error --request POST
--header 'Content-Type: application/json'
--data "$payload" "$DISCORD_WEBHOOK_URL"
--output /dev/null; then
printf '%sn' "$current" > "$STATE_FILE"
else
printf '%sn' 'Discord notification failed; retaining the prior state' >&2
exit 1
fi
fi
Save the script as /usr/local/sbin/website-check, make it executable, and run it manually with the environment file in place. On the first healthy run it records the initial state; it sends a failure notification when a later check changes to DOWN and a recovery notification when the state returns to up. If posting to Discord fails, the state file is not advanced, so a later run can retry the transition.
The --fail option treats an HTTP error response as a failed check, while --location follows redirects. Adjust those choices if your application intentionally uses a different success contract. Add a keyword check or certificate validation only after deciding exactly what response constitutes healthy.
Schedule it with cron
Run the script under a dedicated service account and give that account access to the environment file and state directory. A five-minute example is:
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
*/5 * * * * /usr/local/sbin/website-check
Redirect output only to a protected log if you need diagnostics. The script does not print the webhook, but command tracing, wrapper scripts, or process-inspection tools can still expose secrets. A systemd timer is another option when you want explicit dependencies, a service user, and journal-based failure reporting:
[Unit]
Description=Website status check
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/website-check
Pair that service with a timer using an interval that matches your alerting requirement. Ensure the timer itself is enabled after boot and inspect its execution status; a correctly written script provides no alert if the scheduler is disabled.
Recommended Free Tools
Know the script's limits
- One vantage point: DNS or routing problems affecting the VPS's network path may look like a site outage even when the site is healthy elsewhere, and a regional failure can be invisible to a checker in another region.
- No built-in history: You must retain logs and build your own reporting if you need availability trends or incident timelines.
- Scheduler dependence: Cron or a timer can stop, overlap, or run with a different environment than an interactive shell. Use absolute paths and verify executions.
- Basic retry behavior: The sample makes one request per run. Add an explicit retry loop and state thresholds if a single failed request is too sensitive for your service.
- Total-host failure: A script stored on the monitored VPS cannot send an alert after that VPS loses power, connectivity, or its operating system.
Security and operational hygiene
Protect and rotate the webhook
Discord webhooks function like bearer credentials for posting. Do not expose them in client-side JavaScript, public configuration, Git history, shell transcripts, screenshots, or verbose logs. Restrict environment-file permissions, keep backups encrypted, and avoid copying the URL into incident chat. If it leaks, delete the Discord webhook, create a replacement, and update every monitor or script that used the old URL.
Separate monitoring from the application
For a high-value site, place Uptime Kuma on a second VPS or use an external monitoring service. Keep the alert channel and monitoring administration separate from the application deployment account where practical. A deployment that removes the website should not also remove the only checker that can report the failure.
Be cautious with internal APIs
Do not build a long-lived external integration around Uptime Kuma's internal API without pinning the application version and reviewing changes during upgrades. Its API documentation describes that interface as primarily for the application's own use and warns that it may change without notice. The native notification configuration is a more stable fit for Discord alerts.
Best Value
Troubleshoot common failures
The Discord test does not arrive
- Re-copy the webhook URL from the intended Discord channel and run the notification test again.
- Check that the webhook still exists and that the channel has not been deleted or restricted.
- Verify outbound HTTPS from the monitoring host; an egress firewall, DNS failure, or proxy can block the POST.
- Look at the monitor's event log for an HTTP response from Discord, but redact the webhook before sharing diagnostics.
The monitor reports DOWN during brief blips
- Increase the request timeout only if normal responses genuinely need more time.
- Set retries before DOWN and choose a resend interval that matches the site's tolerance for noise.
- Check DNS resolution, TLS negotiation, and server resource pressure separately from application status.
- Review accepted status codes and keyword rules; an intentional redirect or harmless page change can otherwise look like failure.
The monitor says UP while visitors report an outage
- Confirm that the monitor uses the public canonical URL rather than localhost, a private address, or an origin hostname unavailable to visitors.
- Check whether only one geographic network, DNS provider, or CDN path is failing. Add a second-host or external check for that case.
- Inspect the application path behind a cached or static success page; a simple HTTP 200 check may not prove that login, checkout, or another critical workflow works.
The VPS is down but no alert was sent
This is expected when the monitor and website share the same VPS. Move the monitor to a second host or use an external checker. A separate location can still notify Discord after the monitored server disappears.
Alerts repeat continuously
Review resend settings and verify that the monitor is not creating a new incident on every retry. For scripts, confirm that the state file is persistent, writable, and not recreated in a temporary directory on every run. Pause checks during planned maintenance instead of allowing expected failures to trigger reminders.
Alerts stopped after a container restart
Inspect the Compose volume and confirm that the host directory is mounted to /app/data. If the data path was omitted or changed, recreate the container only after restoring the saved monitoring data and verifying its ownership and permissions.
A practical deployment decision
For a personal or low-risk site, start with Uptime Kuma on a protected host, one HTTP(S) monitor, Discord notification testing, and conservative retries. Add a second monitor location when the cost of a blind spot exceeds the maintenance of another checker. Choose the script when the operational requirement is deliberately narrow and you are prepared to own state, scheduling, logging, and security. In either case, treat the webhook as a secret, test recovery as well as outage, and do not mistake a same-VPS check for protection against a complete server failure.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




