Everything under the hood

Platform Features

A complete monitoring platform for creative installations. Webhooks, dashboards, notifications, remote access, AI assistance, and native tools.

Webhook Monitoring

Each device gets a unique webhook URL. GET or POST — your device reports status with a single HTTP request.

How It Works

Each device gets a unique webhook URL. Hit it with GET for a simple heartbeat, or POST with JSON to send structured data. Works from any environment that can make an HTTP request.

# Simple heartbeat (GET)
curl https://monitory.club/webhooks/a1b2c3d4-e5f6-...

# Send sensor data (POST)
curl -X POST https://monitory.club/webhooks/a1b2c3d4-e5f6-... \
  -H "Content-Type: application/json" \
  -d '{"temp": 42.1, "status": "running"}'

Automatic Status

Devices are marked online when a webhook arrives and offline when the configurable threshold expires. Every payload is logged with timestamp, headers, and body for full audit trails.

Berlin-Projector-01
2s ago
Lyon-LED-Wall
14s ago
Tokyo-Sensor-03
offline — 12min

Setup Tokens

Generate short-lived setup tokens for provisioning new devices. Share a token with an installer — they configure the device to ping the webhook, and it auto-registers on the platform.

1. Generate a setup token from the dashboard
2. Share the install command with your technician
3. Device registers and starts reporting automatically

Real-Time Dashboard

Activity visualizations, health status, and event history at the device and project level. See what matters at a glance.

Activity Visualizations

Color-coded activity histograms show webhook frequency by event category. Live payload values update in real time. Select time ranges — 1h, 24h, 7d, or 30d — to analyze trends.

Webhook Activity — Last 24h

00:00 06:00 12:00 18:00 Now

Device & Project Views

Organize devices into projects. Each project provides an overview of all devices, their health status, and aggregate metrics. Drill into individual devices to see event history and live payload data.

Project: Berlin Exhibition

3 devices online
Healthy
Total webhooks today 4,218
Avg response interval 58s

Multi-Channel Notifications

Six notification channels. Per-webhook configuration. Map event types to the channels that matter.

Six Channels

Get notified where you already are. Each channel is independently configurable per webhook, so critical devices can alert via SMS while others send a quiet email digest.

Email

SMTP

Push

FCM

SMS

Twilio

WhatsApp

Twilio

Telegram

Bot API

WebSocket

Real-time

Event-to-Channel Mapping

Route specific event types to specific channels. Device goes offline? SMS and push. New webhook registered? Email only. Full control over what triggers what.

Notification Rules

device.offline
SMS Push Email
device.online
Email
webhook.payload
WebSocket

SSH Remote Agent

SSH into any device from the browser. Outbound-only connections, per-session credentials, auto-expiring tunnels — all encrypted end to end. No VPN, no open ports, no sudo required.

Three-Component Architecture

The agent runs on the device and connects outbound to a relay server. Your browser connects to the same relay. No inbound ports needed on the device side.

Agent — Go binary on the device. Connects outbound to relay.
Relay Server — Routes SSH connections between agent and browser.
Browser — xterm.js terminal in the Monitory dashboard.

Capabilities

Runs as a system service (systemd on Linux, launchd on macOS). Sends heartbeat metrics including CPU, memory, disk usage, and uptime. Tunnels have configurable TTL for security.

No sudo required systemd & launchd CPU / mem / disk metrics Tunnel TTL Linux amd64 / arm64 macOS amd64 / arm64

AI Chat Assistant

Ask questions about your devices in natural language. The AI has full context — events, webhooks, documents, and project data.

Gemini-Powered

Streaming responses powered by Gemini with function calling. The AI can query device info, recent events, webhook history, uploaded documentation, and project context in real time.

you: Why did Berlin-Projector-01 go offline at 2:34am?
monitory: The last webhook from Berlin-Projector-01 arrived at 02:33:47. The payload contained "temp": 78.2, which exceeds the thermal threshold documented in your projector manual (max 75°C). The device likely triggered an automatic thermal shutdown. Previous events show temp climbing from 71°C over the last 45 minutes.

Function Calling

The AI doesn't just talk — it acts. It calls internal functions to fetch device info, query webhook events, search uploaded documentation, and pull project-level context to give accurate answers.

get_device_info() get_recent_events() search_events_by_type() get_webhooks() get_documentation() list_project_devices() get_project_info()

monitory.js SDK

A zero-dependency JavaScript SDK for Node.js, Electron, and browser environments. Automatic retries and heartbeats built in.

Simple Integration

Configure with your webhook URL, and call send or ping. The SDK handles retries, connection errors, and timeout management automatically.

const Monitory = require('monitory');

const monitor = Monitory({
  url: 'https://monitory.club/webhooks/YOUR_TOKEN',
  retry: 3,         // retry on failure
  retryDelay: 1000,  // 1s between retries
});

// Heartbeat
await monitor.ping();

// Send custom data
await monitor.send({ temp: 42.1, status: 'running' });

Built-In Features

Zero dependencies. Configurable retry on failure. Heartbeat via ping. Timeout management with AbortController. Works in Node.js 18+, Electron, and modern browsers.

Zero dependencies Configurable retries Heartbeat ping Timeout management Node.js 18+ Electron Browser

Monitory for Mac

A native macOS menu bar application. Monitors your app, restarts it on crash, manages black screens, and reports status to the platform.

Menu Bar App

Lives in the macOS menu bar. Select an application to monitor, and Monitory watches for crashes. When the app terminates unexpectedly, it restarts automatically and sends an event to the platform.

Menu Bar

Monitoring
App: MyExhibition.app
Auto-restart on crash
Black screen management
Webhook to dashboard
Launch at login

Crash Recovery

When the monitored app crashes, Monitory covers the screen with a black overlay to hide the desktop, then relaunches the application. The audience never sees a macOS desktop or error dialog.

1. App crashes or terminates unexpectedly
2. Black screen covers the display instantly
3. Application relaunches automatically
4. Crash event sent to the Monitory dashboard

Authentication & Teams

Role-based access control. Invitation system with configurable quotas.

Role Hierarchy

Three roles with cascading permissions. Owners have full control over the project and team. Admins manage devices, webhooks, and notifications. Viewers have read-only access. Per-project membership with invitation system and configurable quotas.

Owner Full access. Manage team, project settings, and all resources.
Admin Manage devices, projects, webhooks, and notifications.
Viewer Read-only access to dashboards and event history.

Ready to start?

Request an invitation and start monitoring your installations in minutes.

Invitation only. We'll review your request.