v0.1.0

設定檔

本頁說明 .webMonitor.json 的位置、產生時機與每個欄位的意義。

位置與生命週期

go-web-monitor 不讀取環境變數,所有狀態與設定都存在當前工作目錄的 .webMonitor.json(專案 .gitignore 已排除此檔)。

時機 行為
啟動時檔案不存在 建立空白清單,SMTP 預設 port: 587、enabled: false
啟動時 讀取 list[].url 作為監控清單、config 作為 SMTP 設定;JSON 解析失敗則印出錯誤並結束
執行中 每輪檢查、add/del、smtp 指令後整份覆寫

在不同目錄啟動會使用不同的設定檔,各自獨立。

範例

{
  "list": [
    {
      "url": "https://example.com",
      "code": 200,
      "duration": 62554917,
      "online": true,
      "last_check": "2025-01-15T23:12:29.200334+08:00",
      "expire": 87,
      "count": 0
    }
  ],
  "config": {
    "host": "smtp.gmail.com",
    "port": 587,
    "username": "your@email.com",
    "password": "your_app_password",
    "from": "your@email.com",
    "to": ["recipient@email.com"],
    "cc": "",
    "enabled": true
  }
}

list[] 欄位(model.Website)

欄位 型別 說明
url string 正規化後的網址(未以 http 開頭者補 https://)
code int 最近一次 HTTP 狀態碼;連線失敗為 0
duration int 回應耗時,單位奈秒(time.Duration)
online bool 狀態碼介於 200–399 為 true
last_check string 最近一次檢查時間(RFC 3339)
expire int SSL 憑證剩餘天數;無法取得為 0
count int 連續離線次數,範圍 0–4

啟動時只使用 url,其餘欄位是上次執行的快照,第一輪檢查後即被覆蓋。

config 欄位(model.Config)

欄位 型別 預設 說明
host string "" SMTP 主機
port int 587 465 走隱式 TLS、587 走 STARTTLS
username string "" 與 password 皆非空才認證
password string "" 以明文存放於檔案中
from string "" 寄件者
to []string [] 收件者清單
cc string "" 副本地址;TUI 無對應指令,只能手動編輯
enabled bool false 是否寄出告警與測試信

password 以明文寫入檔案,檔案權限為 0644;在多人共用的主機上請自行調整權限。

手動編輯

程式執行中會整份覆寫設定檔,手動修改(例如 cc、批次匯入網址)請在程式結束後進行,下次啟動時生效。

EN