• In this guide, I will walk through setting up Portainer CE and Uptime Kuma on your Homelab, enabling you to monitor and manage your homelab infrastructure effortlessly.
  • By the end, you will have a robust monitoring setup and a user-friendly interface for Docker and Kubernetes management, empowering you to stay on top of your homelab’s performance and health.

System Update

  • Before installing things first you need to update your linux distribution
  • You can find out what Linux distribution you are using through various commands
lsb_release -a

or

cat /etc/os-release
  • Now update the system based on your linux distro

Arch-based

sudo pacman -Syu

Debian-based

sudo apt update && sudo apt upgrade -y

Fedora-based

sudo dnf update -y

Install Docker

  • Docker - a platform for developing, shipping, and running applications using containerization technology.

Arch-based

sudo pacman -S docker

Debian-based

sudo apt install docker.io -y

Fedora-based

sudo dnf install docker -y
  • Now Add the user you want to add, in this case I am using my username: “isanjaymenon” to the Docker group, allowing them to run Docker commands without using sudo.
sudo usermod -aG docker isanjaymenon

Portainer Community Edition

  • Create a Docker volume named “portainer_data” to persist Portainer’s data.
docker volume create portainer_data
  • Run Portainer Community Edition Docker container in detached mode with automatic restart policy, exposing ports 8000 and 9443 on the host for web access, and mounts Docker Unix socket for communication and “portainer_data” volume for data persistence. This command pulls the latest Portainer CE image from the Docker Hub repository maintained by the Portainer team.
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Uptime Kuma

  • Run the Uptime Kuma Docker container in detached mode with automatic restart policy, exposing port 3001 on the host, and creating a named volume “uptime-kuma” to persist data. This command pulls the Uptime Kuma image from the Docker Hub repository maintained by louislam.
sudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

References

  • Docker: Platform designed to help developers build, share, and run container applications
  • Portainer: Making Docker and Kubernetes management easy
  • Uptime Kuma: Official website for Uptime Kuma, a self-hosted monitoring tool