aboutsummaryrefslogtreecommitdiff
path: root/config.example.yaml
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-17 23:17:49 -0800
committerFuwn <[email protected]>2026-01-17 23:17:49 -0800
commit4bc6165258cd7b5b76ccb01aa75c7cefdc35d143 (patch)
treee7c3bb335a1efd48f82d365169e8b4a66b7abe1d /config.example.yaml
downloadkaze-4bc6165258cd7b5b76ccb01aa75c7cefdc35d143.tar.xz
kaze-4bc6165258cd7b5b76ccb01aa75c7cefdc35d143.zip
feat: Initial commit
Diffstat (limited to 'config.example.yaml')
-rw-r--r--config.example.yaml141
1 files changed, 141 insertions, 0 deletions
diff --git a/config.example.yaml b/config.example.yaml
new file mode 100644
index 0000000..aca9c6a
--- /dev/null
+++ b/config.example.yaml
@@ -0,0 +1,141 @@
+# Kaze Status Page Configuration
+# Copy this file to config.yaml and customize for your needs
+
+# Site metadata
+site:
+ name: "Kaze Status"
+ description: "Service Status Page"
+ # logo: "https://example.com/logo.svg" # Optional logo URL
+ # favicon: "https://example.com/favicon.ico" # Optional favicon URL
+
+# HTTP server settings
+server:
+ host: "0.0.0.0"
+ port: 8080
+
+# Storage settings
+storage:
+ path: "./kaze.db"
+ history_days: 90 # How many days of history to retain (7, 30, or 90)
+
+# Display settings
+display:
+ # Tick aggregation mode for history bar:
+ # ping - Show individual pings (most granular)
+ # minute - Aggregate by minute
+ # hour - Aggregate by hour (default)
+ # day - Aggregate by day (like OpenStatus)
+ tick_mode: hour
+
+ # Number of ticks/bars to display in the history
+ tick_count: 45
+
+ # For 'ping' mode only:
+ # true = Show fixed slots (empty bars for missing data)
+ # false = Grow dynamically as pings come in
+ ping_fixed_slots: true
+
+ # Timezone for display (e.g., "UTC", "America/New_York", "Local")
+ timezone: "Local"
+
+ # Show the theme toggle button (true by default)
+ # Set to false to hide the light/dark mode toggle
+ show_theme_toggle: true
+
+# Monitor groups
+groups:
+ - name: "Web Services"
+ # default_collapsed: false # Start collapsed (false = expanded by default)
+ # show_group_uptime: true # Show aggregate uptime percentage (true by default)
+ monitors:
+ - name: "Website"
+ type: https
+ target: "https://example.com"
+ interval: 30s
+ timeout: 10s
+ expected_status: 200
+ verify_ssl: true
+
+ - name: "API"
+ type: https
+ target: "https://api.example.com/health"
+ interval: 30s
+ timeout: 10s
+ expected_status: 200
+ method: GET
+ # headers:
+ # Authorization: "Bearer token"
+
+ - name: "Infrastructure"
+ # default_collapsed: false
+ # show_group_uptime: true
+ monitors:
+ - name: "Database"
+ type: tcp
+ target: "localhost:5432"
+ interval: 30s
+ timeout: 5s
+
+ - name: "Redis"
+ type: tcp
+ target: "localhost:6379"
+ interval: 30s
+ timeout: 5s
+
+# Incidents and maintenance (optional)
+incidents:
+ # Scheduled maintenance example
+ - title: "Scheduled Maintenance"
+ status: scheduled
+ message: "Database maintenance window - expect brief interruptions"
+ scheduled_start: "2026-02-01T02:00:00Z"
+ scheduled_end: "2026-02-01T04:00:00Z"
+ affected_monitors:
+ - "Database"
+
+ # Past incident example (resolved)
+ # - title: "API Performance Degradation"
+ # status: resolved
+ # message: "Users experienced slow API response times"
+ # created_at: "2026-01-15T10:00:00Z"
+ # resolved_at: "2026-01-15T12:30:00Z"
+ # updates:
+ # - time: "2026-01-15T10:30:00Z"
+ # status: investigating
+ # message: "Investigating reports of slow API responses"
+ # - time: "2026-01-15T11:00:00Z"
+ # status: identified
+ # message: "Identified database connection pool exhaustion as root cause"
+ # - time: "2026-01-15T12:30:00Z"
+ # status: resolved
+ # message: "Increased connection pool size. Monitoring for stability."
+
+# Monitor Configuration Reference
+# ================================
+#
+# Common fields for all monitor types:
+# name: string (required) - Display name for the monitor
+# type: string (required) - Monitor type: http, https, or tcp
+# target: string (required) - URL or host:port to monitor
+# interval: duration - Check interval (default: 30s)
+# timeout: duration - Request timeout (default: 10s)
+#
+# HTTP/HTTPS specific fields:
+# expected_status: int - Expected HTTP status code (default: 200)
+# method: string - HTTP method (default: GET)
+# headers: map[string]string - Custom headers to send
+# body: string - Request body for POST/PUT/PATCH
+# verify_ssl: bool - Verify SSL certificate (default: true)
+#
+# TCP specific fields:
+# (none - just needs host:port target)
+#
+# Duration format:
+# Use Go duration strings: 30s, 1m, 5m, 1h, etc.
+#
+# Incident statuses:
+# scheduled - Planned maintenance
+# investigating - Looking into the issue
+# identified - Root cause found
+# monitoring - Fix applied, monitoring
+# resolved - Issue resolved