Add experimental server alerts and webhook notifications
Release rolling / release (push) Successful in 7m30s

Server-side alerting for Docker/container/stack health with Discord,
Slack, Teams, ntfy, Gotify, Telegram, and generic webhooks. Settings
tab, client cache, and backup/restore coverage; marked experimental.
This commit is contained in:
Raven Scott
2026-07-17 18:10:43 -04:00
parent 366333e6bd
commit 5b8fb142bb
18 changed files with 2886 additions and 19 deletions
+11
View File
@@ -25,6 +25,7 @@ import {
restoreTunnelsFromDisk,
} from './services/holesail-tunnels.js'
import { restoreSchedules } from './services/schedules.js'
import { startAlerts, stopAlerts } from './services/alerts.js'
import { docker } from './services/docker.js'
import logger from './utils/logger.js'
import { isSwarmEnabled } from './handlers/swarm.js'
@@ -157,6 +158,11 @@ if (!dockerStatus.ok) {
startDockerEventStream()
startStatsBroadcast()
try {
startAlerts()
} catch (err) {
log.warn('Alerts engine failed to start', { error: err.message })
}
if (isHolesailEnabled()) {
restoreTunnelsFromDisk()
@@ -186,6 +192,11 @@ async function shutdown(signal = 'shutdown') {
stopStatsBroadcast()
stopDockerEventStream()
try {
stopAlerts()
} catch {
// ignore
}
try {
await closeAllTunnels()