Commit Graph

10 Commits

Author SHA1 Message Date
cnbugs 3ce7c99bfe fix: resolve merge conflict in services/acme.go (debug logging + TrimSpace) 2026-07-25 00:39:35 +08:00
Your Name 9bae6b1d9b youhua 2026-07-25 00:09:24 +08:00
cnbugs a2923bdfc0 fix: upgrade lego to v4.23.0, fix CredentialID update on re-issuance, add Cloudflare token debug logging 2026-07-24 22:36:33 +08:00
cnbugs 6498903a7c fix: credential data corruption - Create handler mutating store pointer
- CreateCredential was setting cred.Data = cred.Masked directly on the
  store pointer, corrupting stored credentials with masked data
- Fixed by using a value copy for API response
- Also fix nextID starts at 1 to avoid ID=0 issue
2026-07-24 19:16:35 +08:00
cnbugs bdb3ca856f feat: add DNS credential management with Web UI
- New config/credential_store.go: persistent credential storage (credentials.json)
- New API: CRUD for DNS credentials + credential-types endpoint
- Certificate model now supports credential_id reference
- Create certificate auto-resolves credential_id to DNS config
- New Vue page: Credentials.vue for managing saved DNS keys
- CertCreate.vue: select existing credential or manual input + save as new
- Secrets masked in API responses, never exposed in list
2026-07-24 18:56:03 +08:00
cnbugs a9842e9212 v0.01: 修复死锁Bug + DNS-01默认 + 超时调整 2026-05-13 10:58:29 +08:00
cnbugs 3fa77d9bc0 refactor: replace SQLite/GORM with JSON file storage
- Remove GORM and SQLite, use simple JSON file (data/certs.json) for persistence
- CertStore with sync.RWMutex for thread-safe in-memory cache
- All handlers updated to use config.Store instead of config.DB
- Cron job and stats updated accordingly
- go mod tidy removes unused gorm/sqlite dependencies
2026-05-12 15:27:10 +08:00
cnbugs d0e738e1ef fix: use SQLite upsert to eliminate race condition on domain uniqueness constraint
Previously the CreateCertificate handler checked domain existence and then
inserted separately, creating a race window where concurrent requests could
both pass the check and trigger 'UNIQUE constraint failed' on INSERT.

Now uses SQLite's native INSERT ... ON CONFLICT (upsert) which atomically
handles the uniqueness constraint at the database level, eliminating the
race condition entirely.
2026-05-12 15:22:30 +08:00
cnbugs 0703dffb90 fix: 处理域名重复申请问题,支持重试失败/过期的证书 2026-05-12 15:01:07 +08:00
cnbugs 1775d4b4fc feat: AutoSSL certificate management tool with Web UI 2026-05-12 14:55:10 +08:00