Revert the uptime.config.ts

pull/142/head
QuackieMackie 2025-09-18 19:04:09 +01:00
parent 387220ab6c
commit 99c9d1b20e
1 changed files with 92 additions and 42 deletions

View File

@ -1,35 +1,96 @@
import { MaintenanceConfig, PageConfig, WorkerConfig } from './types/config' import { MaintenanceConfig, PageConfig, WorkerConfig } from './types/config'
const pageConfig: PageConfig = { const pageConfig: PageConfig = {
title: "Sylphian's Uptime", // Title for your status page
title: "lyc8503's Status Page",
// Links shown at the header of your status page, could set `highlight` to `true`
links: [ links: [
{ link: 'https://github.com/Sylphian-Network/', label: 'GitHub' }, { link: 'https://github.com/lyc8503', label: 'GitHub' },
{ link: 'https://blog.lyc8503.net/', label: 'Blog' },
{ link: 'mailto:me@lyc8503.net', label: 'Email Me', highlight: true },
], ],
// [OPTIONAL] Group your monitors
// If not specified, all monitors will be shown in a single list
// If specified, monitors will be grouped and ordered, not-listed monitors will be invisble (but still monitored)
group: { group: {
'Website': ['monitor'], '🌐 Public (example group name)': ['foo_monitor', 'bar_monitor', 'more monitor ids...'],
'🔐 Private': ['test_tcp_monitor'],
}, },
} }
const workerConfig: WorkerConfig = { const workerConfig: WorkerConfig = {
// Write KV at most every 3 minutes unless the status changed
kvWriteCooldownMinutes: 3, kvWriteCooldownMinutes: 3,
// Enable HTTP Basic auth for status page & API by uncommenting the line below, format `<USERNAME>:<PASSWORD>`
// passwordProtection: 'username:password',
// Define all your monitors here
monitors: [ monitors: [
// Example HTTP Monitor
{ {
id: 'monitor', // `id` should be unique, history will be kept if the `id` remains constant
name: 'Sylphian.net', id: 'foo_monitor',
method: 'GET', // `name` is used at status page and callback message
target: 'https://sylphian.net', name: 'My API Monitor',
statusPageLink: 'https://sylphian.net', // `method` should be a valid HTTP Method
method: 'POST',
// `target` is a valid URL
target: 'https://example.com',
// [OPTIONAL] `tooltip` is ONLY used at status page to show a tooltip
tooltip: 'This is a tooltip for this monitor',
// [OPTIONAL] `statusPageLink` is ONLY used for clickable link at status page
statusPageLink: 'https://example.com',
// [OPTIONAL] `hideLatencyChart` will hide status page latency chart if set to true
hideLatencyChart: false, hideLatencyChart: false,
// [OPTIONAL] `expectedCodes` is an array of acceptable HTTP response codes, if not specified, default to 2xx
expectedCodes: [200], expectedCodes: [200],
timeout: 5000, // [OPTIONAL] `timeout` in millisecond, if not specified, default to 10000
timeout: 10000,
// [OPTIONAL] headers to be sent
headers: { headers: {
'User-Agent': 'Sylphian-Uptimeflare', 'User-Agent': 'Uptimeflare',
Authorization: 'Bearer YOUR_TOKEN_HERE',
}, },
responseKeyword: 'Community platform by XenForo', // [OPTIONAL] body to be sent
body: 'Hello, world!',
// [OPTIONAL] if specified, the response must contains the keyword to be considered as operational.
responseKeyword: 'success',
// [OPTIONAL] if specified, the response must NOT contains the keyword to be considered as operational.
responseForbiddenKeyword: 'bad gateway', responseForbiddenKeyword: 'bad gateway',
} // [OPTIONAL] if specified, will call the check proxy to check the monitor, mainly for geo-specific checks
// refer to docs https://github.com/lyc8503/UptimeFlare/wiki/Check-proxy-setup before setting this value
// currently supports `worker://` and `http(s)://` proxies
checkProxy: 'https://xxx.example.com OR worker://weur',
// [OPTIONAL] if true, the check will fallback to local if the specified proxy is down
checkProxyFallback: true,
},
// Example TCP Monitor
{
id: 'test_tcp_monitor',
name: 'Example TCP Monitor',
// `method` should be `TCP_PING` for tcp monitors
method: 'TCP_PING',
// `target` should be `host:port` for tcp monitors
target: '1.2.3.4:22',
tooltip: 'My production server SSH',
statusPageLink: 'https://example.com',
timeout: 5000,
},
], ],
notification: { notification: {
// [Optional] apprise API server URL
// if not specified, no notification will be sent
appriseApiServer: 'https://apprise.example.com/notify',
// [Optional] recipient URL for apprise, refer to https://github.com/caronc/apprise
// if not specified, no notification will be sent
recipientUrl: 'tgram://bottoken/ChatID',
// [Optional] timezone used in notification messages, default to "Etc/GMT"
timeZone: 'Asia/Shanghai',
// [Optional] grace period in minutes before sending a notification
// notification will be sent only if the monitor is down for N continuous checks after the initial failure
// if not specified, notification will be sent immediately
gracePeriod: 5,
// [Optional] disable notification for monitors with specified ids
skipNotificationIds: ['foo_monitor', 'bar_monitor'],
}, },
callbacks: { callbacks: {
onStatusChange: async ( onStatusChange: async (
@ -58,39 +119,28 @@ const workerConfig: WorkerConfig = {
}, },
} }
// You can define multiple maintenances here
// During maintenance, an alert will be shown at status page
// Also, related downtime notifications will be skipped (if any)
// Of course, you can leave it empty if you don't need this feature
// const maintenances: MaintenanceConfig[] = []
const maintenances: MaintenanceConfig[] = [ const maintenances: MaintenanceConfig[] = [
{ {
monitors: ['monitor'], // [Optional] Monitor IDs to be affected by this maintenance
title: 'Scheduled Maintenance', monitors: ['foo_monitor', 'bar_monitor'],
body: 'The server will be undergoing regular maintenance.', // [Optional] default to "Scheduled Maintenance" if not specified
start: '2025-09-27T11:00:00.000Z', title: 'Test Maintenance',
end: '2025-09-27T12:00:00.000Z', // Description of the maintenance, will be shown at status page
color: 'yellow', body: 'This is a test maintenance, server software upgrade',
}, // Start time of the maintenance, in UNIX timestamp or ISO 8601 format
{ start: '2025-04-27T00:00:00+08:00',
monitors: ['monitor'], // [Optional] end time of the maintenance, in UNIX timestamp or ISO 8601 format
title: 'Scheduled Maintenance', // if not specified, the maintenance will be considered as on-going
body: 'The server will be undergoing regular maintenance.', end: '2025-04-30T00:00:00+08:00',
start: '2025-09-27T11:00:00.000Z', // [Optional] color of the maintenance alert at status page, default to "yellow"
end: '2025-09-27T12:00:00.000Z',
color: 'white',
},
{
monitors: ['monitor'],
title: 'Active Scheduled Maintenance',
body: 'The server will be undergoing regular maintenance.',
start: '2025-09-12T11:00:00.000Z',
end: '2025-09-27T12:00:00.000Z',
color: 'green',
},
{
monitors: ['monitor'],
title: 'Active Scheduled Maintenance',
body: 'The server will be undergoing regular maintenance.',
start: '2025-09-12T11:00:00.000Z',
end: '2025-09-27T12:00:00.000Z',
color: 'blue', color: 'blue',
} },
] ]
// Don't forget this, otherwise compilation fails.
export { pageConfig, workerConfig, maintenances } export { pageConfig, workerConfig, maintenances }