Add experimental server alerts and webhook notifications
Release rolling / release (push) Successful in 7m30s
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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user