feat: add Web UI for notification config (feishu + email)

- New config/notify_store.go: persistent notification config (notify.json)
- New API: GET/PUT /api/notify/config, POST /api/notify/test-feishu, POST /api/notify/test-email
- New Vue page: NotifyConfig.vue with feishu webhook and SMTP settings
- Updated cron/init to read from persistent store instead of env vars
- Password masked as ******** in API responses, preserved on updates
This commit is contained in:
2026-07-23 16:31:04 +08:00
parent 2d70a15307
commit bbf09fbc8d
9 changed files with 627 additions and 42 deletions
+6
View File
@@ -72,6 +72,12 @@ func InitStore(cfg *Config) {
log.Println("Cert store initialized successfully")
}
// InitAll initializes all stores
func InitAll(cfg *Config) {
InitStore(cfg)
InitNotifyStore(cfg)
}
// Load reads certificates from JSON file into memory
func (s *CertStore) Load() error {
s.mu.Lock()