The more self-hosted services you run on your home server—whether that's Nextcloud, Vaultwarden, AdGuard Home, Paperless-ngx, or a local AI stack like Ollama—the more likely you are to hit one classic problem: "a service silently dies and you have no idea."
More often than not, you only discover that your password manager or document vault is down when you desperately need it while out and about, only to be greeted by a 502 error or a connection timeout. That's lost time, broken workflows, and a whole lot of frustration.
To make the Private Brain OS infrastructure truly complete and rock-solid, you need a monitoring system that checks the health of every service around the clock. And the go-to answer in the self-hosting community worldwide is Uptime Kuma.
---
### What Is Uptime Kuma?
Uptime Kuma is an open-source, self-hosted monitoring tool designed to track the uptime and availability of web servers, TCP/UDP ports, ping responses, and even Docker container status on your machine.
What makes Uptime Kuma stand out from legacy monitoring solutions:
* Beautiful, modern UI: An intuitive dashboard with clear latency (response time) graphs and uptime percentage at a glance.
* Versatile check types: Monitor HTTP(s), Ping, TCP ports, DNS records, Docker container status, Push monitors, and more.
* Massive notification coverage: Get instant alerts through 90+ channels, including Telegram, Discord, LINE Notify, Slack, Webhooks, and Ntfy.
* Built-in Status Page: Group your services and generate a public or private status page—perfect for pinning to your home dashboard.
* Lightweight and resource-efficient: Built with Node.js + Vue.js, runs instantly via Docker, and sips RAM.
---
### Prerequisites
1. A home server with Docker and Docker Compose installed and running
2. SSH access to the server
3. A Telegram account (for setting up a bot that pushes real-time alerts to your phone)
---
### Step 1: Prepare the Directory and Write the Docker Compose File
Start by SSHing into your home server and creating a directory for Uptime Kuma's data:
# Create the Uptime Kuma project directory
mkdir -p ~/uptime-kuma/data
# Navigate into it
cd ~/uptime-kuma
Create the docker-compose.yml file with nano docker-compose.yml, then paste the following configuration:
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001" # Web UI access port
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock # Grants direct access to check local Docker container status
> [!NOTE]
> Mounting /var/run/docker.sock into the container lets Uptime Kuma read the live status (Running / Stopped / Restarting) of other containers on your home server directly—no HTTP requests or pings required.
---
### Step 2: Launch the Service and Set Up Your Admin Account
Once the file is saved, bring the container up:
docker compose up -d
Wait about 10–15 seconds, then open a browser on any device on the same network and navigate to:
http://:3001
On the first screen, you'll be prompted to:
1. Language: Pick your preferred language (both English and Thai are supported)
2. Create Admin Account: Set a username and password for managing the system
Click Create to land on the main Uptime Kuma dashboard.
---
### Step 3: Add Your First Monitor
Let's add a check for one of the services running on your home server—say, your Vaultwarden password manager or Nextcloud instance:
1. Click "Add New Monitor" in the top-left corner
2. Select Monitor Type:
* For a standard web service → HTTP(s)
* For a Docker container → Docker Container
* For network connectivity → Ping or TCP Port
3. Friendly Name: Give it a memorable label, e.g., Vaultwarden Server
4. URL: Enter the service address, e.g., http://192.168.1.100:8080 or your domain
5. Heartbeat Interval: Set the check frequency (default is every 60 seconds)
6. Retries: Number of retry attempts before flagging a failure (recommended: 2 or 3 to avoid false alarms from momentary network hiccups)
7. Click Save at the bottom
The system will immediately begin checking and display a clean green response-time graph.
---
### Step 4: Set Up Instant Telegram Alerts
So you know the moment a service goes down, wiring up a Telegram bot is the most convenient and 100% free option:
#### Creating the Telegram Bot:
1. Search for @BotFather in the Telegram app
2. Send /newbot and follow the prompts to name your bot
3. Once created, you'll receive an HTTP API Token (a long string)—copy and save it
4. Look up your Telegram Chat ID via @userinfobot or any similar bot
#### Connecting It in Uptime Kuma:
1. In Uptime Kuma, go to Setup Notification → Add Notification
2. Select Notification Type: Telegram
3. Friendly Name: Label it Telegram Alert
4. Bot Token: Paste the API Token from BotFather
5. Chat ID: Enter your Telegram Chat ID
6. Click Test — if everything is configured correctly, a test message will pop up in your Telegram app instantly!
7. Toggle Default Enabled so every monitor uses this channel automatically, then click Save
From now on, the moment a service on your home server hangs, a port goes dark, or the network stumbles, Uptime Kuma will push a red alert with the root cause straight to your Telegram within seconds.
---
### Step 5: Build a Home-Wide Status Page
Create a clean, at-a-glance status page for all your services—perfect for a quick overview or pinning to your main home dashboard:
1. Click the Status Pages menu at the top
2. Click Add New Status Page
3. Name it (e.g., Private Brain OS Status) and set a URL path like /status/brain
4. Drag your monitors into logical groups, such as Core Infrastructure, Storage & Backup, and AI Services
5. Click Save — you now have a professional-looking, real-time status page
---
### The Bottom Line: Local-First Monitoring You Can Trust
Self-hosting isn't just about getting software to run—it's about building a system you fully own, control, and understand.
Adding Uptime Kuma to your home server transforms a setup where you're constantly wondering "is it still up?" into a resilient digital infrastructure with automated, proactive monitoring. Your Private Brain OS services stay available, your alerts arrive before you even notice a problem, and you get to enjoy the full privacy and peace of mind that local-first computing is all about.