Releases: easymonitordev/easymonitor
v0.1.4
v0.1.4 - Channels & ICMP
This release expands monitoring beyond HTTP and ships three new notification channels with per-monitor selection.
New: ICMP / ping checks (#37)
Monitor servers that don't expose HTTP. The probe node already supported ICMP - this exposes it across the stack:
- New Ping (ICMP) option in the Add Monitor form
- check_type column on monitors (default http)
- Dispatcher prefixes icmp:// for the probe; HTTP monitors unchanged
- ICMP badge in the monitor list and detail view
New: Slack notifications (#38)
Send alerts to one or more Slack channels via incoming webhooks. Each Slack channel is labelled (e.g. #alerts-api, #alerts-frontend) and selectable per monitor.
- Rich Slack blocks format: red header for down, green for recovered, error context, "View Monitor" button
New: Webhooks Notifications (#39)
Pipe alerts to PagerDuty, Zapier, n8n, or any HTTP endpoint. Each webhook gets an auto-generated 64-char secret; payloads are signed with X-EasyMonitor-Signature: sha256=… so receivers can verify authenticity.
- Stable JSON payload schema (event, monitor, error, checked_at, dashboard_url)
- X-EasyMonitor-Event: monitor.down | monitor.recovered header
- "Regenerate secret" button for rotation
- Full payload + verification snippets (Python, PHP, Node.js) in README
New: Discord notifications (#40)
Send alerts to Discord channels via incoming webhooks. Same multi-instance pattern as Slack.
- Discord embeds with red/green status colors and timestamp
Schema: multiple channels per type
The notification_channels table previously enforced one row per (user_id, type). Removed that constraint and added a label column so users can configure multiple Slack/Discord/Webhook destinations and pick which
ones each monitor uses.
- Email and Pushover remain effectively singleton (user-identity channels)
- Monitor channel pickers now show Type - Label for disambiguation
What's Changed
- Add ICMP check type to monitors by @venelinkochev in #37
- Add Slack notification channel by @venelinkochev in #38
- Add webhook notification channel by @venelinkochev in #39
- Add Discord webhook notification channel by @venelinkochev in #40
Full Changelog: v0.1.3...v0.1.4
v0.1.3
v0.1.3 - Multi-channel notifications
New
- Pushover notifications. Per-user configuration at /settings/notifications - paste your Pushover user key (optional device), toggle Active, mark as default. Operator installs the app-level token once in .env (PUSHOVER_APP_TOKEN), each user supplies their own user key.
- Per-monitor channel selection. Monitor create/edit now has a Notifications section. Pick which channels receive alerts for each monitor; new monitors pre-select your default channel.
- Send-test button. Synchronously fires a MonitorRecovered-style notification through the selected channel so you can verify credentials end-to-end without waiting for a real incident.
- Installer support. setup.sh prompts for a Pushover application token; skip it if you don't need push alerts.
Changed
- Monitor down/recovery dispatch now resolves to the monitor's explicitly-selected channels, falling back to the user's default channel for legacy monitors (backfilled automatically).
- Postgres data volume now mounts to /var/lib/postgresql/18/docker to match the TimescaleDB PG18 image's PGDATA, preventing data loss from anonymous-volume behavior on restart.
Fixed
- Test-notification button delivered nothing on production because the queued job tried to rehydrate a transient Monitor by ID. Tests now dispatch via sendNow() and run synchronously during the Livewire request.
Upgrade notes
- git pull && docker compose exec php composer install
- docker compose exec php php artisan migrate - creates notification_channels + monitor_notification_channel tables and backfills an email channel for every existing user, attached to their existing monitors.
- (Optional) Add PUSHOVER_APP_TOKEN=... to .env - register the app at https://pushover.net/apps/build.
- docker compose exec php php artisan horizon:terminate - required so long-running workers pick up the new Composer autoload map.
- docker compose exec php npm run build
No breaking changes. If you don't configure Pushover, the app continues to send email only exactly as before.
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
- Add Incident model and incident tracking by @venelinkochev in #21
- Ensure chart bucket >= 2x monitor interval by @venelinkochev in #22
- Chart: consistent buckets and smooth empty gaps by @venelinkochev in #23
- Avoid smoothing across failing buckets by @venelinkochev in #24
- Use incident durations to compute uptime by @venelinkochev in #25
- Bucketed uptime ticks and stacked timeline by @venelinkochev in #26
- Smooth empty ticks in status timeline by @venelinkochev in #27
- Fix tick thresholds and start offsets by @venelinkochev in #28
- Unify tick builders into adaptive timeline by @venelinkochev in #29
- Use safe uploads disk and handle logo failures by @venelinkochev in #30
- Add ms/seconds format helper and use in views by @venelinkochev in #31
- Humanize HTTP errors and adjust tests by @venelinkochev in #32
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
- Add Docker support and setup scripts by @venelinkochev in #1
- Remove Livewire Flux and migrate UI to DaisyUI by @venelinkochev in #2
- Add team management feature with CRUD and member roles by @venelinkochev in #3
- Add monitors feature with CRUD and policies by @venelinkochev in #4
- Add distributed monitoring engine with Horizon integration by @venelinkochev in #5
- Add probe-node service and JWT auth by @venelinkochev in #6
- Add failure threshold, notifications & dashboard by @venelinkochev in #7
- Feat/UI improvements by @venelinkochev in #8
- Bump Docker images and runtime versions by @venelinkochev in #9
- Add Projects and integrate with Monitors by @venelinkochev in #10
- Feat/status pages by @venelinkochev in #11
- Simplify welcome view by @venelinkochev in #12
- Add configurable registration lock by @venelinkochev in #13
- Rewrite setup.sh as interactive installer by @venelinkochev in #14
- Default failure threshold to 1 by @venelinkochev in #15
- Add remote-probes support and Redis auth handling by @venelinkochev in #16
- Add cross-probe quorum with round tracking by @venelinkochev in #17
- Add /healthz endpoint, view, tests, and docs by @venelinkochev in #18
- Require auth for /healthz and add sidebar link by @venelinkochev in #19
- Handle external disks for status page logos by @venelinkochev in #20
New Contributors
- @venelinkochev made their first contribution in #1
Full Changelog: https://github.com/easymonitordev/easymonitor/commits/v0.1.1