16: Uptime Kuma - Uptime Monitoring & Status Pages
Uptime Kuma is a beautiful, self-hosted monitoring tool that watches your websites, servers, and services 24/7. It tells you immediately when something goes down, shows you uptime statistics, and can even create public status pages (like status.github.com) to show your users that everything is working.
For advanced features, API documentation, and customization options, see the official Uptime Kuma documentation.
Why Uptime Kuma?
- ✅ 24/7 monitoring - Know immediately when something breaks
- ✅ Beautiful dashboard - See all your services at a glance with colorful graphs
- ✅ 90+ notification options - Get alerts via Discord, Slack, Email, Telegram, and many more
- ✅ Public status pages - Create beautiful status pages to share with your users
- ✅ Docker monitoring - Monitor your Docker containers automatically
- ✅ Multiple monitor types - Websites, APIs, ports, DNS, and more
- ✅ Uptime statistics - See how reliable your services are over time
- ✅ Free and open source - No subscription fees, runs on your server
Prerequisites
- ✅ Docker running (from Chapter 3)
- ✅ Optional: Traefik installed (from Chapter 4) for HTTPS access with a domain
- ✅ Optional: Subdomain (from Chapter 4.5), e.g.,
status.yourdomain.com
Note: Uptime Kuma works great with Traefik and a domain name. Having a friendly URL like status.yourdomain.com makes it easy to access your monitoring dashboard and share status pages.
Step 1: Start Infinity Tools
sudo infinity-tools
Step 2: Install Uptime Kuma
- Go to 📱 APPLICATIONS
- Select Uptime Kuma
- Choose Install Uptime Kuma
Using the Infinity Tools GUI
- Use ↑/↓ to move, Enter to select, Esc to go back
- Look for the turquoise cursor indicating the current selection
- Each screen shows a short description at the top explaining what's needed
Step 2.1: Choose SSL Mode
You'll see two options. Here's what each means:
- Traefik (recommended)
- What it is: Uses your domain name with a trusted HTTPS certificate from Let's Encrypt
- What you need: A subdomain (e.g.,
status.yourdomain.com) pointing to your server (see Chapter 4.5) - What you get: Professional URL like
https://status.yourdomain.comwith trusted SSL - Pick this if: You want secure, easy access with a domain name (recommended)
- Standalone HTTP
- What it is: Uses HTTP with direct port access (no SSL)
- What you need: Just a free port (default: 3001)
- What you get: URL like
http://SERVER_IP:3001 - Pick this if: You're just testing or only using it on your local network
Simple rule of thumb: Use Traefik if you have a domain and want secure access. Use Standalone HTTP only for testing or private use.
Step 2.2: If You Choose Traefik
- Enter your subdomain, e.g.,
status.yourdomain.com - Ensure the subdomain's DNS A record points to your server (see Chapter 4.5)
- Infinity Tools will configure HTTPS automatically via Let's Encrypt
After install: Your Uptime Kuma will be available at https://status.yourdomain.com
Step 2.3: If You Choose Standalone
- Pick a port (default: 3001)
- You'll access Uptime Kuma via
http://SERVER_IP:3001
Step 2.4: Docker Container Monitoring (Optional)
You'll be asked if you want to enable Docker container monitoring:
- Yes
- What it does: Uptime Kuma can monitor your Docker containers automatically
- What you get: Alerts when containers stop, health status monitoring
- Pick this if: You want to monitor your Docker containers (recommended if you use Docker)
- No
- What it does: Only monitors websites, APIs, and ports (not Docker containers)
- Pick this if: You don't use Docker or don't need container monitoring
Step 2.5: Timezone (Optional)
You can set your timezone for monitoring logs and graphs. Examples:
America/New_YorkEurope/LondonAsia/Tokyo
Leave empty for UTC (default).
What Happens During Installation
- Uptime Kuma container is created
- Data directory is set up at
/opt/speedbits/uptime-kuma - Optional domain + Traefik HTTPS routing (if using Traefik)
- Optional Docker socket access (if Docker monitoring enabled)
- Service starts and becomes accessible
Step 3: Access Uptime Kuma
If Using Traefik
- Wait 30-60 seconds for SSL certificate generation
- Open
https://status.yourdomain.comin your browser - You'll see the Uptime Kuma setup wizard
If Using Standalone
- Open
http://SERVER_IP:3001in your browser - You'll see the Uptime Kuma setup wizard
Step 4: Create Your Admin Account
⚠️ CRITICAL: Uptime Kuma requires you to create admin credentials on your FIRST login. There is NO default password!
Setup Steps
- You'll see: "Create your admin account"
- Enter a username (choose any username you like)
- Enter a password:
- Minimum: 8 characters
- Recommended: 12+ characters
- Best: 20+ characters (use a password manager!)
- ⚠️ WRITE DOWN YOUR CREDENTIALS IMMEDIATELY!
- This is your ONLY chance to set the initial password
- There is NO "forgot password" on first setup!
- Use a password manager (like Vaultwarden from Chapter 7) to store it securely
- Click "Create"
- ✅ Done! You'll see the monitoring dashboard
If You Forget Your Password
Don't worry! You can reset it using the command line:
- Run:
docker exec -it uptime-kuma npm run reset-password - Enter your username
- Enter a new password
- Log in with your new password
Step 5: Add Your First Monitor
Now that you're logged in, let's start monitoring something!
Adding a Monitor
- Click "Add New Monitor" (big button on the dashboard)
- Choose monitor type:
- HTTP(s) - Monitor websites and APIs
- TCP Port - Monitor if a port is open (SSH, databases, etc.)
- Ping - Check if a server responds
- Docker Container - Monitor Docker containers (if enabled)
- DNS - Check DNS records
- And more!
- Enter the URL or IP address to monitor
- Set check interval (default: 60 seconds - how often to check)
- Click "Save"
Example: Monitor Your Website
- Type: HTTP(s)
- URL:
https://yourdomain.com - Check interval: 60 seconds
- Click "Save"
Uptime Kuma will now check your website every 60 seconds and show you if it's up or down!
Step 6: Set Up Notifications
To get alerts when something goes down, you need to configure notifications.
Setting Up Notifications
- Go to: Settings → Notifications
- Click "Setup Notification"
- Choose a provider:
- Discord - Get alerts in Discord
- Slack - Get alerts in Slack
- Telegram - Get alerts via Telegram
- Email - Get alerts via email
- Apprise - Use Apprise for 80+ services (if you have Apprise installed)
- And 80+ more!
- Follow the setup instructions for your chosen provider
- Test the notification
- Click "Save"
Using Apprise (If Installed)
If you have Apprise installed (Chapter 5), you can use it for notifications:
- Type: Apprise (Self-hosted)
- URL:
http://apprise:8000/notify/{YOUR-KEY} - This lets you use all 80+ Apprise notification services!
Step 7: Create a Status Page (Optional)
Status pages let you show your users that your services are working. They're public (no login required) and look professional.
Creating a Status Page
- Go to: Status Pages
- Click "New Status Page"
- Enter a name, e.g., "My Services Status"
- Choose which monitors to display publicly
- Customize the appearance (colors, logo, etc.)
- Click "Save"
- Share the public URL with your users!
What You Can Monitor
Monitor Types
- 🌐 HTTP(s) websites - Check if websites are online
- 🔌 TCP ports - Check if ports are open (SSH, databases, etc.)
- 🏓 Ping (ICMP) - Check if servers respond
- 📝 DNS records - Check DNS configuration
- 🐳 Docker containers - Monitor container health (if enabled)
- 🔍 Keyword detection - Check if a page contains specific text
- 📧 SMTP email servers - Check if email servers work
- 💬 gRPC services - Monitor gRPC APIs
What You'll See
- 📊 Dashboard - All monitors at a glance with colorful status indicators
- 📈 Uptime graphs - See uptime percentages over time
- ⏱️ Response times - See how fast your services respond
- 📋 Incident history - See when things went down and came back up
- 🔔 Alerts - Get notified immediately when something breaks
Security Recommendations
- ✅ Use Traefik mode - Provides trusted SSL certificates
- ✅ Strong password - Use a password manager to generate strong passwords
- ✅ Enable 2FA - Go to Settings → Security → Two-Factor Auth
- ✅ Regular backups - Uptime Kuma data is stored in
/opt/speedbits/uptime-kuma - ✅ Protect admin panel - Monitoring data can be sensitive, keep it secure!
- ✅ Use status pages - Share public status pages instead of giving access to the admin panel
Troubleshooting
Can't Access Uptime Kuma
- Traefik mode: Wait 30-60 seconds after installation for SSL certificate generation
- Check containers: Run
docker ps | grep uptime-kumato see if container is running - Check logs: Run
docker logs uptime-kumato see error messages
Can't Create Admin Account
- Make sure you're accessing Uptime Kuma for the first time (no account exists yet)
- Check container logs:
docker logs uptime-kuma - Try resetting:
docker restart uptime-kuma
Monitors Not Working
- Check that the URL or IP address is correct
- Verify the service is actually running
- Check firewall rules (ports might be blocked)
- Look at monitor details for error messages
Notifications Not Sending
- Test the notification in Settings → Notifications
- Check notification provider settings (Discord webhook, email SMTP, etc.)
- Verify network connectivity from the container
Where to Find Uptime Kuma After Install
- On the finish screen, Infinity Tools prints the access URL
- You can also see it in 📊 STATUS & HEALTH → STATUS
- Check the installation directory:
/opt/speedbits/uptime-kuma - Data stored in:
/opt/speedbits/uptime-kuma/data
Backing Up Your Monitoring Data
Your Uptime Kuma data is stored in:
- Data directory:
/opt/speedbits/uptime-kuma/data
To backup:
cd /opt/speedbits
tar czf uptime-kuma-backup.tar.gz uptime-kuma/
To restore: Extract the backup and restart the Uptime Kuma container.
Or use Uptime Kuma's built-in backup: Go to Settings → Backup → Download Backup
You're Ready!
Uptime Kuma is now installed and ready to monitor your services! Remember:
- 🔐 Create your admin account on first login (no default password!)
- 📊 Add monitors to start tracking uptime
- 🔔 Set up notifications to get alerts
- 📄 Create status pages to share with users
- 🐳 Enable Docker monitoring if you use Docker containers
Next steps: Add monitors for your websites and services, configure notifications, and create a status page. Uptime Kuma will help you keep everything running smoothly!
No comments to display
No comments to display