feat(docker-watcher): phase 6 - webhook handler

Secret UUID-based webhook endpoint for CI image push notifications.
Project/stage matching via glob patterns, auto-creation of unknown
projects from image inspection. Fix JSON response injection.
This commit is contained in:
2026-03-27 21:56:18 +03:00
parent 90be636d66
commit eef60a4302
9 changed files with 812 additions and 14 deletions
+7 -7
View File
@@ -261,18 +261,18 @@ Core infrastructure — store, config import, Docker client, NPM client.
5. **Docker client** — connect to socket, pull image, inspect image, list/start/stop/remove containers, manage networks
6. **NPM client** — authenticate (JWT), create/update/delete proxy hosts, list existing hosts
### Phase 2: Detection & Deployment (Registry & Poller ✅)
### Phase 2: Detection & Deployment (Registry & Poller ✅, Webhook ✅, Deployer ✅)
The core loop — detecting new images and deploying them.
8. **Registry client** ✅ — Gitea registry API: list tags for an image, detect new tags
9. **Poller** ✅ — periodic check for new tags matching configured patterns
10. **Secret webhook handler** — UUID-based URL, receives image push notifications, auto-creates unknown projects
11. **Deployer** — orchestrate: pull → start container → NPM proxy → health check
12. **Multi-instance support** — multiple versions per project/stage, tag-based subdomains, max_instances limit
13. **Health checker** — HTTP GET with retries and timeout
14. **Rollback** — on health check failure: remove new container, clean up NPM, alert
15. **Notifications** — send webhook on deploy success/failure
10. **Secret webhook handler** — UUID-based URL, receives image push notifications, auto-creates unknown projects
11. **Deployer** — orchestrate: pull → start container → NPM proxy → health check
12. **Multi-instance support** — multiple versions per project/stage, tag-based subdomains, max_instances limit
13. **Health checker** — HTTP GET with retries and timeout (3 retries, 5s interval, 10s timeout)
14. **Rollback** — on health check failure: remove new container, clean up NPM, alert
15. **Notifications** — send webhook on deploy success/failure (fire-and-forget)
### Phase 3: Web UI