How certimate-go/certimate works
Certimate is a self-hosted certificate lifecycle manager. Users configure workflows through its REST-facing application, then workflows orchestrate issuance, deployment, and notification; scheduled runs support automation and renewal. The graph includes ACME DNS/HTTP challenges, certificate destinations, and local persistence as distinct concerns. README capabilities are shown at subsystem level; sampled engine and provider excerpts support the workflow execution and deployment links, while wiring for unsampled modules is intentionally kept high-level.
Main entry points: executor_bizapply.go Workflow Executors · repository Repositories · workflows.go REST Handlers · service.go Workflow Service
Components 23
Application API
- REST Routes
internal/rest/routes/routes.go - REST Handlers
internal/rest/handlers/workflows.go - Application
internal/app/app.go
Workflow Runtime
- Workflow Service
internal/workflow/service.go - Workflow Dispatcher
internal/workflow/dispatcher/dispatcher.go - Workflow Engine
internal/workflow/engine/engine.go - Workflow Executors
internal/workflow/engine/executor_bizapply.go - Scheduler
internal/scheduler/scheduler.go
Certificate Lifecycle
- Certificate Service
internal/certificate/service.go - ACME Client
internal/certacme/client.go - Challenge Registry
internal/certacme/certifiers/registry.go - Deployment Client
internal/certmgmt/client.go - Deployment Registry
internal/certmgmt/deployers/registry.go
External Integrations
- Notification Service
internal/notify/service.go - Notifier Registry
internal/notify/notifiers/registry.go - ACME CA
- DNS Providers
pkg/core/certifier/challengers/dns01 - Deployment Targets
pkg/core/deployer/providers - Notification Channels
internal/notify/notifiers
Persistence and Metrics
- Repositories
internal/repository - Local Store
internal/settings/pbstore.go - Statistics Service
internal/statistics/service.go
Other components
- Operator
Connections 25
- Operator → REST Routes: submits requests
- REST Routes → REST Handlers: dispatches
- REST Handlers → Workflow Service: manages workflows
- Application → REST Routes: serves API
- Application → Scheduler: starts jobs
- Scheduler → Workflow Dispatcher: dispatches runs
- Workflow Service → Workflow Dispatcher: queues runs
- Workflow Dispatcher → Workflow Engine: executes workflow
- Workflow Engine → Workflow Executors: selects node executor
- Workflow Executors → Certificate Service: requests certificates
- Certificate Service → ACME Client: obtains or revokes
- ACME Client → Challenge Registry: uses challenge provider
- Challenge Registry → DNS Providers: updates DNS
- ACME Client → ACME CA: requests issuance
- Workflow Executors → Deployment Client: deploys certificates
- Deployment Client → Deployment Registry: creates deployer
- Deployment Registry → Deployment Targets: dispatches deployment
- Workflow Executors → Notification Service: sends notifications
- Notification Service → Notifier Registry: selects notifier
- Notifier Registry → Notification Channels: delivers messages
- Workflow Service → Repositories: reads and writes
- Workflow Engine → Repositories: persists outputs
- Repositories → Local Store: stores records
- REST Handlers → Statistics Service: queries metrics
- Statistics Service → Repositories: reads statistics