import { MaintenanceConfig, PageConfig, WorkerConfig } from './types/config' const pageConfig: PageConfig = { // Title for your status page title: "Banhtrang Status Page", // Links shown at the header of your status page, could set `highlight` to `true` links: [ { link: 'mailto:congminh45638@gmail.com', label: 'Email Me', highlight: true }, ], } const workerConfig: WorkerConfig = { // Write KV at most every 3 minutes unless the status changed kvWriteCooldownMinutes: 3, // Enable HTTP Basic auth for status page & API by uncommenting the line below, format `:` // passwordProtection: 'username:password', // Define all your monitors here monitors: [ { id: 'banhtrangvotri.xyz', name: 'Bánh tráng', method: 'GET', target: 'https://banhtrangvotri.xyz', tooltip: 'My production server monitor', statusPageLink: 'https://status.banhtrangvotri.xyz', timeout: 10000, }, ], 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: { onStatusChange: async ( env: any, monitor: any, isUp: boolean, timeIncidentStart: number, timeNow: number, reason: string ) => { // This callback will be called when there's a status change for any monitor // Write any Typescript code here // This will not follow the grace period settings and will be called immediately when the status changes // You need to handle the grace period manually if you want to implement it }, onIncident: async ( env: any, monitor: any, timeIncidentStart: number, timeNow: number, reason: string ) => { // This callback will be called EVERY 1 MINTUE if there's an on-going incident for any monitor // Write any Typescript code here }, }, } // 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[] = [] // Don't forget this, otherwise compilation fails. export { pageConfig, workerConfig, maintenances }