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.0KB


The smallest watchdog on earth. Tiny, monitoring-plugins compatible monitoring with a status page, built with Go, Air, Vue.js and Bulma.

  • Run nagios checks on a remote server
  • Alert on state change via Gotify or email


Getting Started

mkdir -p ./data/.ssh
ssh-keygen -b 2048 -f ./data/.ssh/id_rsa -P "" -C "Chihuahua Monitoring"
nano ./data/chihuahua.yml
docker run -d -p 8080:80 -v "$PWD/data:/data" momar/chihuahua

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

Example chihuahua.yml

- provider: gotify # Send notifications via
  token: QwErTyUiOpAsDfG
- provider: email # Send notifications via E-Mail
  port: 25
  username: example
  password: QwErTyUiOpAsDfG

    ssh: -p 2222 # SSH connection parameters for the server. Leave away to run checks locally. You can add a ~/.chihuahuarc on the server that's being run before each check.
      disk-space: check_disk -w 15% -c 5% # any monitoring-plugins compatible check command works here - you can basically use every command that returns 0 on success, 1 on warnings and 2 on critical errors
      sudo-check: check_sudo check_disk -w 15% -c 5% # run checks as root
      ram-check: check_linux_memory # run checks in /var/chihuahua - download like that: wget -O /var/chihuahua/ && chmod +x /var/chihuahua/check_linux_memory

      # Examples for basic checks:
      http: check_http -H -w 2 -c 15 -t 20 --sni --ssl -r "This domain is established to be used for illustrative examples in documents."
      ssh: check_ssh -t 15 
      process: "check_procs -c 1: -C nginx" # check if nginx is running (has at least 1 process)
      errorInLogfile: check_sudo check_log -F /var/log/auth.log -O ./logs/auth.log -q "session opened for user root" # check for root sessions
      backupInLast24h: check_file_age -c 86400 /mnt/backup/meta.json # check if there was a backup in the last 24 hours (86400 seconds)

Example debian server setup

sudo sh <(curl


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


Requires Go

git clone && cd chihuahua
cp chihuahua.example.yml chihuahua.yml && nano chihuahua.yml
go generate && DEBUG=1 go run ./cmd -c chihuahua.yml


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