The smallest watchdog on earth. Tiny, monitoring-plugins compatible monitoring with a status page.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.3 KiB


The smallest watchdog on earth. Tiny, monitoring-plugins compatible monitoring with a status page, built with Go.

  • Run nagios/monitoring-plugins checks on a remote server
  • Alert on state change via Gotify or email
  • Show a nice little status page


Getting Started

docker run -d -p 8080:80 -v "$PWD/data:/data" momar/chihuahua
nano data/chihuahua.hcl

Chihuahua now runs at http://localhost:8080.

You can find a full example configuration file at chihuahua.hcl, and should also read the full configuration manual, but to get started, you can use a simple configuration like this:

check "cpu" {
  # This check will be run on every server, unless the 
  # server specifies an overriding check called "cpu".
  name = "CPU Load"
  command = "check_load -r -w 3,2,1.25 -c 4,3,2"

server "server-local" {
  connection = "local"

server "server-01" {
  connection = "ssh"
  check "ram" {
    command = "check_memory -w 8 -c 3" # parameters in percent

notifier "email-myself" {
  # emails are delayed by 5 minutes by default to accumulate
  # multiple notifications into a single notification email.
  type = "smtp"
  server = ""
  from = "Chihuahua <>"
  to = [""]
Use a systemd service to install the server without Docker (unsupported)
wget -O- | gunzip > /tmp/chihuahua
sudo install -m755 /tmp/chihuahua /usr/local/bin/chihuahua

mkdir -p /usr/local/lib/chihuahua/.ssh
useradd -d /usr/local/lib/chihuahua -M -r -s /usr/sbin/nologin chihuahua
ssh-keygen -b 2048 -f /usr/local/lib/chihuahua/.ssh/id_rsa -P "" -C "Chihuahua Monitoring"
nano /etc/chihuahua.yml

sudo wget -O /etc/systemd/system/chihuahua.service
sudo systemctl enable chihuahua.service
sudo systemctl start chihuahua.service

Set up a server for connections (Debian/Ubuntu/Alpine/...)

curl -Ls | sudo sh

You can now use connection = "ssh" to connect to your server with a limited user.

To completely remove the Chihuahua setup from your server, use the following commands:

sudo userdel -r chihuahua
sudo apt-get remove --auto-remove monitoring-plugins # or "apk del monitoring-plugins" on Alpine
sudo rm /usr/local/bin/check_sudo
sudo sed -i '/^chihuahua /d' /etc/sudoers


TODO: this should be documented more thoroughly - maybe provide an API Blueprint?

GET /checks
GET /checks/:server
GET /checks/:server/:check


Requires Go

git clone && cd chihuahua
cp resources/chihuahua.hcl .
go run ./cmd --debug


  • Add custom messages to checks
  • Add private/hidden checks
  • More notification providers (mainly Clockwork SMS)
  • Gitea integration
  • Provide a Prometheus exporter