feat(docker-watcher): phase 5 - registry client & poller

Gitea registry client with tag listing and pattern matching, cron-based
polling scheduler with first-poll safety, poll state persistence.
DeployTriggerer interface for decoupled deploy triggering.
This commit is contained in:
2026-03-27 21:34:09 +03:00
parent 389ed5aff8
commit 90be636d66
11 changed files with 1104 additions and 18 deletions
+3 -3
View File
@@ -261,12 +261,12 @@ 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
### Phase 2: Detection & Deployment (Registry & Poller ✅)
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
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