Sign inSign up

unclesamwk/tinymon

By unclesamwk

•Updated 6 months ago

Minimalist server monitoring. Pull checks + Push API. SQLite. Zero overhead.

Image
Monitoring & observability
0

7.2K

unclesamwk/tinymon repository overview

⁠TinyMon

The minimalist alternative to Prometheus, Nagios & Co. Pull checks. Push API. One SQLite file. Zero overhead.

⁠Quick Start

docker run -d \
  --name tinymon \
  -p 8080:80 \
  -e ADMIN_PASSWORD=changeme \
  -v tinymon-data:/var/www/html/data \
  unclesamwk/tinymon:latest

Open http://localhost:8080/backend and log in.

Add a cronjob for the check runner:

* * * * * docker exec tinymon php bin/runner.php >> /dev/null 2>&1

⁠Features

  • Pull checks: Ping, HTTP, TCP Port, SSL Certificate, Content, Content Hash, Disk, Load, Memory
  • Push API: External systems push results via REST API (K8s, cronjobs, CI/CD, IoT) with config-aware multi-check support
  • Push-only checks: Disk Health (S.M.A.R.T.)
  • Alerting: Email (SMTP) + Browser Push (VAPID) on status transitions
  • Dashboard: Mobile-first PWA, charts, dark mode, multi-language (EN/DE)
  • Zero dependencies: SQLite database, no agents required

⁠Supported Architectures

ArchitectureTag
linux/amd64latest
linux/arm64latest

Multi-arch images -- works on x86 servers and ARM (Raspberry Pi, Apple Silicon, AWS Graviton).

⁠Environment Variables

VariableRequiredDescription
ADMIN_PASSWORDYesLogin password (plaintext or bcrypt hash)
SMTP_HOSTNoSMTP server for email alerts
SMTP_PORTNoSMTP port (default: 587)
SMTP_USERNoSMTP username
SMTP_PASSWORDNoSMTP password
SMTP_FROM_EMAILNoSender email address
ALERT_RECIPIENTSNoComma-separated alert recipients
PUSH_API_KEYNoBearer token for Push API (empty = disabled)
VAPID_PUBLIC_KEYNoBrowser push key (auto-generated if empty)
VAPID_PRIVATE_KEYNoBrowser push key (auto-generated if empty)

⁠Volumes

PathDescription
/var/www/html/dataSQLite database and persistent data

⁠Docker Compose

services:
  tinymon:
    image: unclesamwk/tinymon:latest
    ports:
      - "8080:80"
    volumes:
      - tinymon-data:/var/www/html/data
    environment:
      - ADMIN_PASSWORD=changeme
      - SMTP_HOST=smtp.example.com
      - SMTP_PORT=587
      - SMTP_USER=your_user
      - SMTP_PASSWORD=your_password
      - [email protected]
      - [email protected]

volumes:
  tinymon-data:

⁠Push API Example

curl -X POST https://mon.example.com/api/push/results \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"host_address": "web-1", "check_type": "backup", "status": "ok", "value": 42, "message": "Backup completed in 42s"}'

⁠Ecosystem

ProjectDescription
Docker Agent⁠Monitors Docker containers via labels, pushes status to Push API
K8s Operator⁠Monitors Kubernetes nodes, deployments, ingresses, PVCs, backups
Terraform Provider⁠Manage hosts and checks as code

⁠Source Code

GitHub: unclesamwk/TinyMon⁠

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:409d0eb55…

Size

183.6 MB

Last updated

6 months ago

docker pull unclesamwk/tinymon