Simple monitoring for servers, applications and scripts

Set up in under 3 minutes, so you can focus on your business, not on outages.

Features

Monitor servers, APIs and cron jobs. Alerts by email, SMS or Telegram.

Monitoring

Servers

Docker agent with minute metrics

Applications

Health check every minute outside

Cron and scripts

Ping after each script run

Notifications

Email

Mail on every status change

SMS

SMS when offline or critical

Telegram

Message to bot or group

Everything else

Provisioning with IaC

Targets via Terraform or Ansible

App on the go

Status on your phone too

Teams and roles

Several users per project

Infrastructure as Code is practice for us, not a buzzword

Create your application and server in the same stack as your deployment—with Terraform, Pulumi or Ansible.

Terraform

One application and one server as resources in the same module—repeatable in every environment.

monitoring.tf
resource "simple_monitoring_project" "production" {
  name = "production"
}

resource "simple_monitoring_application" "checkout_api" {
  project_id = simple_monitoring_project.production.id
  name       = "checkout-api"
  health_url = "https://api.example.com/health"
}

resource "simple_monitoring_server" "api_prod" {
  project_id   = simple_monitoring_project.production.id
  name         = "api-prod-01"
  register_key = "sm_server_xxx"
}

Straightforward pricing

Try server monitoring free: 1 server, 3 apps. Team from €10, Business from €29, Enterprise on request.

Popular

Team

€10 per month

  • 3 servers
  • 20 applications
  • 20 cron jobs
Choose Team

Enterprise

Custom

  • Servers scaled to you
  • Limits tailored to contract
  • Cron jobs per contract
Contact

Connect your application

HTTP health check for NestJS, Express, FastAPI, Symfony or Gin – one GET endpoint, Simple Monitoring checks uptime every minute.

NestJS

A small health controller is enough – Simple Monitoring checks the route every minute over HTTP.

health.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller()
export class HealthController {
  @Get('health')
  health() {
    return {
      status: 'ok',
      timestamp: new Date().toISOString(),
    };
  }
}

Set up the server agent

Server monitoring with a Docker agent: register key from the portal, Docker socket mount, health checks and metrics.

Docker (CLI)

One container via docker run – register key, backend URL and a Docker socket mount.

docker run
docker run -d \
  --name simple-monitoring-agent \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e REGISTER_KEY="sm_server_xxx" \
  -e BACKEND_URL="https://api.example.com" \
  registry.example/simple-monitoring-agent:placeholder

Cron jobs & scripts

Cron job monitoring via ping URL: scripts and crontab entries report each successful run – no ping means an alert.

Crontab

Add curl to your cron entry at the end – hit the ping URL from the web portal, no agent required.

GET /api/heartbeat/<token> · checked every minute

crontab
# Ping URL from the web portal (e.g. every 5 min)
*/5 * * * * curl -fsS "https://api.example.com/api/heartbeat/<token-from-portal>"

Monitor everything now

Set up in under 3 minutes, so you can focus on your business, not on outages.