Uptime Kuma can turn the health checks from a self-hosted monitoring server into a read-only status page for customers, colleagues, or the public. The shortest supported installation is Docker: run louislam/uptime-kuma:2, keep its data in a persistent local volume, add monitors, and publish a status page from the web interface.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
There are two details that determine whether the result works reliably. First, Uptime Kuma stores SQLite data in /app/data, so that directory needs a local filesystem with POSIX file-lock support rather than NFS. Second, a public status page is deliberately not a live dashboard: it caches results for five minutes and refreshes every five minutes. Visitors can therefore see a delay even when the internal dashboard has already changed.
As an Amazon Associate I earn from qualifying purchases.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What you are building
The finished setup has four parts:
- Uptime Kuma: a self-hosted monitoring application running on a Linux or Windows host, usually as a Docker container.
- Persistent storage: a local volume mounted at
/app/datafor the database, settings, monitors, notification configuration, and status-page definitions. - Monitors: checks for websites, ports, DNS, keywords, JSON responses, jobs, or local containers.
- A public status page: a read-only URL that displays selected monitors. It can use a Kuma-generated URL or a domain you control through DNS and a reverse proxy.
The public page is separate from the administrative dashboard. Anyone who has its URL can view the services you place on it, but visitors do not receive access to your monitor settings or account. Keep the dashboard itself protected by authentication and, when possible, do not expose its listening port directly to the internet.
Choose a host and installation method
Docker: the practical default
The official project documentation presents Docker as the shortest supported route. It avoids installing Node.js and packages on the host and makes upgrades and rollback easier to manage. You need a reachable Linux or Windows machine with Docker Engine and enough storage for the application data and logs.
#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.
When the container is behind a reverse proxy, bind the host port to loopback so that only the proxy can reach it. When testing on a private machine, you can bind it to all interfaces and restrict access with your firewall.
Non-Docker installation
The project also documents direct installation on major Linux distributions and on Windows 10 or Windows Server 2012 R2 and newer. That route requires Node.js 20.4 or later. It gives you a native process to supervise, but you become responsible for the Node.js runtime, package installation, service startup, upgrades, and process recovery. Unless you have a reason to manage those pieces yourself, Docker is less work.
Hosted one-click deployments
The official installation wiki lists one-click deployment choices, including PikaPods and Koyeb. They can be useful when you do not want to administer a server, but check the provider’s storage, networking, backup, and WebSocket behavior before making a public page depend on it. The Docker procedure below gives you the most direct control.
Prepare storage before starting
Uptime Kuma uses SQLite-backed data. Mount the persistent directory on a local filesystem that supports normal POSIX file locks. The project specifically warns against putting /app/data on NFS because SQLite locking over NFS can fail and corrupt the database.
- Use a Docker named volume or a local host directory on the server’s disk.
- Do not place the mounted data path on an NFS share or another filesystem that does not provide reliable POSIX locking.
- Include the volume in your server backup plan. Back up before an upgrade or migration; the official documentation establishes that persistence is required but does not prescribe a particular backup interval.
- Make sure the host has enough free space for the database and any retained history you configure.
Install Uptime Kuma with Docker
Expose the container for direct testing
Run the official image with a persistent named volume:
docker run -d --restart=unless-stopped -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
The container listens on port 3001. On the same machine, open http://localhost:3001. From another device on a private network, use the host’s address and port 3001 if your firewall allows it.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Bind only to localhost when a proxy will publish it
If a reverse proxy runs on the same host, use a loopback-only port mapping instead:
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.
docker run -d --restart=unless-stopped -p 127.0.0.1:3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
This prevents direct connections to port 3001 from the public network. The proxy receives requests on the public HTTP or HTTPS port and forwards them to 127.0.0.1:3001.
Use Docker Compose when you manage services as a stack
The project supports Docker Compose through its official template. After placing that template in a working directory, start it with:
docker compose up -d
Keep the data volume declaration from the project template, or otherwise ensure that the container’s /app/data path is persistent. A container recreated without that mount can lose its configuration and monitor database.
Confirm that the container is healthy
- Check that it is running:
docker ps --filter name=uptime-kuma. - Open the web interface at the address and port you mapped.
- If the page does not load, inspect recent output with
docker logs uptime-kumaand verify that another process is not already using port 3001. - Confirm that the named volume exists with
docker volume inspect uptime-kuma.
Complete the first-run setup
On the first visit, Uptime Kuma presents its account and application setup. Create an administrator account with a unique password, then sign in. Treat this account as the control plane for every monitor and public page on the instance.
Before publishing anything, decide which hostnames and service names can be disclosed. A public page can reveal that a service exists, when it is unavailable, and sometimes the wording you use for an incident. Use customer-facing names rather than internal hostnames, private IP addresses, credentials, or diagnostic response bodies.
Add monitors for the services you want to publish
Create a monitor for each independently meaningful service. The monitor type should match the failure you want to detect, not merely the protocol used by the server.
| Monitor family | Use it for | Important choice |
|---|---|---|
| HTTP(S) | Websites, APIs, and HTTPS endpoints | Set the URL and expected response behavior; use content checks when a successful TCP connection is not enough. |
| TCP port | Services where an open port is the primary signal | Check the correct hostname and port, but remember that an open port does not prove the application is functioning. |
| Ping | Reachability of a host on an IP network | Use it for network availability, not as proof that a particular web application works. |
| DNS record | Detecting a missing or incorrect DNS response | Specify the record and expected value when the DNS answer itself matters. |
| Keyword or JSON query | Pages and APIs that can return HTTP 200 while reporting an application error | Match the required text or JSON value so the check reflects application state. |
| Push | Scheduled jobs, backups, and workers that must report their own completion | Give the job a push URL and require a report within the expected interval. |
| Docker container | Containers running on the same Docker environment | Use it for local container state; pair it with an external check if the host itself could fail. |
Set useful intervals and timeouts
Choose a check interval that fits the service’s importance and rate limits. A very short interval creates more traffic and alert noise; a long interval delays detection. Set a timeout that allows the service’s normal network and application latency but still catches a real hang. The public page’s five-minute cache is independent of the monitor interval, so checking every minute does not make public visitors see minute-by-minute changes.
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
Use several monitors for layered services
For a typical web application, an HTTPS monitor confirms that the endpoint is reachable, a keyword or JSON check confirms that the application is returning the expected state, and a separate certificate or DNS check can identify an approaching infrastructure problem. Publish only the checks that help an outside reader understand service availability; retain deeper diagnostic monitors privately if exposing them would reveal internal architecture.
Configure notifications before publishing
A status page is for communication; notifications are how you learn about a failure quickly enough to communicate it. Uptime Kuma’s README lists Telegram, Discord, Gotify, Slack, Pushover, SMTP email, and more than 90 notification services.
- Open the notification settings in the Uptime Kuma interface and add the channel your team actually monitors.
- Send a test notification and verify that it arrives at the intended account or channel.
- Attach the notification to the monitors that need attention. Do not send every low-value check to an urgent channel.
- For push monitors, test both a successful report and an overdue report so that a silent job cannot go unnoticed.
Keep at least one notification path independent of the service being monitored. If the monitored application hosts the only mail server or chat integration you use, an outage can prevent the alert from reaching you.
Create the public status page
Choose the page identity
- In the signed-in Uptime Kuma interface, open the Status Pages area and choose the action to create a new page.
- Give the page a public title and select a short slug. Use a name that makes sense to readers rather than an internal project code.
- Choose the monitors to display and arrange them into groups if the interface offers grouping. A page with a few meaningful services is easier to read than a dump of every internal check.
- Save the page and open its public URL in a private browser window to confirm that it works without an administrator session.
The status-page wiki describes this surface as intended for public users to check the status of your services. It is read-only for visitors, but anything you place there should be considered public information.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallUnderstand the five-minute behavior
Uptime Kuma’s status page caches results for five minutes and refreshes the page every five minutes. This is documented behavior, not a malfunction. The administrative dashboard can show a new monitor result while a visitor continues to see the previous public result until the cache expires or the next refresh occurs.
Set expectations in your incident process: use the dashboard and notification channel for immediate operational decisions, and use the public page for a stable external view. If you need to announce an event sooner than the cache window allows, publish a separate incident message through the communication channel your users already follow.
Attach your own domain
Create the DNS record
Choose a hostname such as status.example.com. In your DNS provider, create an A record pointing to the reverse proxy’s public IPv4 address, or a CNAME pointing to the hostname that serves your proxy. DNS propagation time depends on the record’s TTL and resolver caches.
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.
The DNS record must reach the proxy, not necessarily the Uptime Kuma container directly. Keep port 3001 private when the proxy and container share a host.
Add the domain in Uptime Kuma
Open the status-page settings sidebar and add the custom domain to the page. For multiple status pages, map each domain or hostname to the intended page. The status-page documentation notes that default is a reserved slug kept for backward compatibility; do not use it as a custom page identifier.
Forward the original host and WebSocket headers
Uptime Kuma needs the original host information to identify the current domain. Your proxy must forward Host or X-Forwarded-Host. Uptime Kuma also uses WebSockets, so the proxy must pass the HTTP upgrade headers.
A minimal Nginx-style server block looks like this conceptually; substitute your real domain and certificate configuration:
server {
listen 443 ssl;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
The exact syntax differs between proxy products, but the requirements do not: forward the host information and preserve Upgrade and Connection for WebSockets. Without those headers, the page may load while live dashboard functions, authentication flows, or other real-time behavior fails.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteTest the domain from outside the server
- Resolve the hostname with your normal DNS tools and verify that it points to the proxy address.
- Open the HTTPS URL from a network that is not the server’s local LAN.
- Confirm that the public page loads without a login prompt.
- Sign in to the dashboard through its protected administrative URL and verify that monitor updates and notifications still work.
- If the page loads but the application reports connection errors, inspect the proxy’s WebSocket configuration and host-forwarding headers.
Keep the public page and dashboard secure
- Use HTTPS. A public status page can be read without an account, but administrative credentials and monitor configuration must travel over an encrypted connection.
- Limit direct port exposure. Use
127.0.0.1:3001:3001behind a local reverse proxy, or restrict port 3001 at the firewall to trusted networks. - Use a strong administrator password. The public page does not need administrator access.
- Minimize information. Do not publish private hostnames, stack traces, internal IP addresses, or monitor names that disclose credentials or network design.
- Update deliberately. Keep a backup of the persistent volume before changing the image tag or migrating the host.
- Separate failure domains. When possible, host Uptime Kuma outside the same physical, network, or cloud failure domain as the services it monitors. This is operational guidance rather than a software requirement, but it prevents one outage from taking down both the service and its status page.
Upgrade without losing configuration
The named volume or host directory is the important part of an upgrade. The container itself can be replaced; the data mounted at /app/data must remain.
- Read the release notes for the image version you intend to run.
- Back up the persistent volume or directory while the instance is in a consistent state.
- Stop and remove the old container if you are using the standalone Docker command.
- Pull the updated
louislam/uptime-kuma:2image and recreate the container with the same volume and port mapping. - Open the dashboard, confirm that monitors and status pages are present, and trigger a test notification.
Do not “upgrade” by deleting the volume. Removing the container is recoverable when the volume remains; removing the volume deletes the database that contains your configuration.
Best Value
Troubleshoot a stale or incorrect status page
The public page is behind the dashboard
First allow for the documented five-minute cache and five-minute refresh cycle. If the delay is substantially longer, load the page in a private window, check the page’s monitor selection, and inspect any CDN or reverse-proxy caching rules that may be adding another cache layer.
The custom domain opens the wrong page
Check that the DNS record reaches the correct proxy, that the requested hostname is forwarded in Host or X-Forwarded-Host, and that the hostname is mapped to the intended status page in the page settings. Verify that you are not using the reserved default slug for a custom mapping.
Recommended Free Tools
The page loads but real-time functions fail
Missing WebSocket forwarding is the usual proxy-side cause. Confirm HTTP/1.1 proxying and the Upgrade and Connection headers. Also verify that the proxy can reach the container’s listening address and port.
Monitors disappear after a restart
Inspect the container’s mounts. The volume must be mounted at /app/data, and it must be the same named volume or host directory used when the original container was created. A new container without that mount starts with a new, empty database.
The container will not start or the database behaves erratically
Review docker logs uptime-kuma, check free disk space, and confirm that the data path is local and supports POSIX locks. If the data is on NFS, migrate it to a local filesystem before trusting the instance with production monitoring.
Alerts never arrive
Send a test notification, then check the notification service’s credentials, destination, and rate limits. Confirm that the notification is attached to the monitor and that the monitor is actually transitioning through the state that should trigger an alert.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Operational checklist
- Docker is running the
louislam/uptime-kuma:2image with--restart=unless-stopped. /app/datais persistent and stored on a local POSIX-locking filesystem, not NFS.- The administrator dashboard is protected and port 3001 is not unnecessarily public.
- Each published service has an appropriate monitor type and a customer-friendly name.
- At least one notification channel has passed a test.
- The public page has been opened while signed out.
- DNS points the custom hostname to the reverse proxy.
- The proxy forwards host information and WebSocket upgrade headers.
- The page’s five-minute cache and refresh behavior are understood by whoever communicates incidents.
- The persistent volume is included in backups and is backed up before upgrades or migrations.
- The monitoring host is outside the monitored service’s failure domain when practical.
What a good deployment looks like
A small, dependable deployment can be one Docker container on a reachable host, a named local volume, and a reverse proxy that terminates HTTPS. The container checks the services, sends alerts through an independent channel, and exposes only a deliberately chosen subset of those checks on a public status page. The public page is easy to find on your domain, but the administrative dashboard remains private.
That design respects Uptime Kuma’s documented behavior instead of trying to make the status page act like a second dashboard: monitor results can be collected frequently, while public readers receive a cached, five-minute view. With persistent storage, correct proxy headers, and a tested notification path, the setup is straightforward to operate and recover.
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.




