Uptime Kuma
Uptime Kuma is an open-source, self-hosted monitoring tool to check if your websites, applications, and services are up and running.
Uptime Kuma provides a simple and clear user interface to monitor whether your services are online or offline. You can configure it to check your services at regular intervals and provide notifications if anything goes down. It supports multiple types of notifications, such as emails, Slack messages, Telegram messages, and others, depending on the version.
Check Uptime Kuma GitHub page.
Prerequisites
- VPS server - at least 2GB RAM
You can get 20€ in cloud credits using this link for Hetzner Cloud. Webnestify recommends Hetzner for all of your projects.
- Access to the domain. Ideally, in Cloudflare for integrations.
- Secured server.
Before you continue with the installation, you need to make sure that your server is secured. Visit security guides section. Do not deploy any applications on an unsecured server. Otherwise, you can risk a potential data breach.
Webnestify can help you to secure your server to your specific needs and compliance. Just get in touch.
Video Walkthrough
Installation
Follow these installation steps for your deployment.
Docker engine
First, we will need to install docker engine on our brand new server.
Visit official installation guide.
Never install docker from other sources or custom repositiories.
NGINX Proxy Manager
NGINX Proxy Manager was developed as a Docker container to provide a simple, graphical user interface (GUI) for managing your NGINX environment. It allows you to easily route incoming HTTP and HTTPS traffic to various internal servers, manage SSL certificates, and redirect traffic from one URL to another, all without having to dive into complex configuration files.
Check NPM GitHub page.
It is highly recommended, that you protect port 81. You can whitelist your home static IP or deploy your own VPN server. Visit guide for complete tutorial.
Docker Compose file:
version: "3.3"
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- /home/user/docker/npm/data:/data # Make sure to change to your local path!
- /home/user/docker/npm/ssl:/etc/letsencrypt # Make sure to change to your local path!
environment:
DISABLE_IPV6: 'true' # If you are using IPV6, change to false.
labels:
- "com.centurylinklabs.watchtower.enable=true" # Autoupdate feature.
Uptime Kuma
Docker Compose file:
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
volumes:
- /home/user/docker/uptime-kuma/data:/app/data # Make sure to change to your local path!
ports:
- 3001:3001 # <Host Port>:<Container Port> Change Host Port to your likings.
restart: always
labels:
- "com.centurylinklabs.watchtower.enable=true" # Autoupdate feature.
Watchtower
Watchtower is a Docker application designed to automate the process of updating your Docker containers with the latest images. Containers, once deployed, can become outdated as new images are released. Traditionally, you would need to manually stop the running container, pull the latest image, and then restart the container using the new image. Watchtower automates this process.
The way Watchtower works is simple: it periodically checks the Docker Hub registry (or other registries you've set up) for new images of the containers that you're running. If it finds a newer image, it will automatically pull this image, gracefully shut down the existing container, and then start a new container with the updated image, while preserving the options and volumes from the original container.
Check Watchtower GitHub page.
Docker Compose file:
version: '3'
services:
watchtower:
image: containrrr/watchtower:latest
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/timezone:/etc/timezone:ro
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_INCLUDE_RESTARTING=true
- WATCHTOWER_INCLUDE_STOPPED=true
- WATCHTOWER_REVIVE_STOPPED=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM= #Add your SMTP Details
- WATCHTOWER_NOTIFICATION_EMAIL_TO= #Add your SMTP Details
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.postmarkapp.com #Add your SMTP Details
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 #Add your SMTP Details
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER= #Add your SMTP Details
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD= #Add your SMTP Details
command: --interval 86400
labels:
- "com.centurylinklabs.watchtower.enable=true" #It will update only containers with this label.
About Webnestify
Imagine a world where you can focus on your business and less time maintaining your cloud infrastrucure. With Webnestify cloud based solutions, we provide customized solutions for all types of companies to meet their needs; no matter how big or small they may be!
Read our reviews on Trustpilot!
Subscribe to our YouTube channel!
If you need to setup your own Docker instances or need help with security, visit our Docker deployment service.
You can get 20€ in cloud credits using this link for Hetzner Cloud. Webnestify recommends Hetzner for all of your projects.