# nicholas-fedor/watchtower

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nicholas-fedor-watchtower).**

2,771 stars · 37 forks · Go · apache-2.0 · fork

## Links

- GitHub: https://github.com/nicholas-fedor/watchtower
- Homepage: http://watchtower.nickfedor.com/
- awesome-repositories: https://awesome-repositories.com/repository/nicholas-fedor-watchtower.md

## Topics

`community-project` `docker` `go` `golang`

## Description

Watchtower is a Docker container update automator that monitors registries for new image pushes and automatically restarts containers with the latest versions. It functions as a container lifecycle manager, handling the process of bringing running containers up to date without manual intervention.

The service includes specialized controls to manage deployment risk and precision, such as image age deferral and deployment cooldowns to protect against buggy releases. It supports image tag pinning to restrict updates to specific version series and can operate as a self-updating service to maintain its own currency.

Beyond basic updates, the project provides infrastructure monitoring through Prometheus-compatible metrics and a webhook notification system with template-driven reporting. It manages the update lifecycle through sequential dependency-aware restarts, custom termination signals, and post-update image resource cleanup. For extended environments, it supports private registry authentication, remote daemon communication, and a token-secured management API for remote update triggers.

## Tags

### DevOps & Infrastructure

- [Automated Container Image Updaters](https://awesome-repositories.com/f/devops-infrastructure/automated-container-image-updaters.md) — Automatically updates running Docker containers to the latest image versions from a registry without manual intervention.
- [Automated Container Updaters](https://awesome-repositories.com/f/devops-infrastructure/automated-container-updaters.md) — Monitors registries for new image pushes and automatically restarts containers with the latest versions. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Container Filtering Policies](https://awesome-repositories.com/f/devops-infrastructure/container-filtering-policies.md) — Provides rules for selecting specific containers for monitoring and updates based on names, regex, or labels. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Container Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/container-lifecycle-management.md) — Manages the stop and restart lifecycle of containers during the update process. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Container Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/container-lifecycle-management.md) — Manages the process of stopping and restarting containers through custom signals, timeouts, and sequential ordering.
- [Docker Container Update Monitors](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-orchestrators/docker-container-update-monitors.md) — Monitors running Docker containers for new image pushes and automatically applies updates. ([source](https://cdn.jsdelivr.net/gh/nicholas-fedor/watchtower@main/README.md))
- [Registry Version Polling](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning/dependency-version-updates/registry-version-polling.md) — Periodically checks remote registries for new image versions to detect available updates.
- [CI/CD Workflows](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/cicd-pipeline-management/ci-cd-workflows.md) — Integrates container image updates into CI/CD pipelines using API triggers and lifecycle hooks.
- [Private Registries](https://awesome-repositories.com/f/devops-infrastructure/container-image-registries/private-registries.md) — Connects to protected container registries using credentials to pull and update private images.
- [Container Lifecycle Cleanup](https://awesome-repositories.com/f/devops-infrastructure/container-lifecycle-cleanup.md) — Reclaims disk space by removing obsolete container images and anonymous volumes after updates. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Container Monitoring](https://awesome-repositories.com/f/devops-infrastructure/containerized-environments/container-monitoring.md) — Tracks image versions and update status via Prometheus metrics and custom notifications for system observability.
- [Remote Runtime Communication](https://awesome-repositories.com/f/devops-infrastructure/daemon-communication-management/remote-runtime-communication.md) — Connects to container runtimes via network sockets to manage containers on separate host machines.
- [Dependency-Aware Orchestration](https://awesome-repositories.com/f/devops-infrastructure/dependency-aware-orchestration.md) — Orders container updates by analyzing linked services and network dependencies to minimize service disruption.
- [Dependency-Aware Restart Sequences](https://awesome-repositories.com/f/devops-infrastructure/dependency-aware-restart-sequences.md) — Determines the update sequence by following container dependencies, linked services, or network modes to minimize disruption. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Update Notification Services](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/container-orchestration-tools/container-deployment-updaters/update-notification-services.md) — Monitors running containers and dispatches alerts to various services when newer image versions are available. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Management APIs](https://awesome-repositories.com/f/devops-infrastructure/management-apis.md) — Provides HTTP endpoints to trigger updates, monitor active containers, and export metrics. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Rolling Update Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/rolling-update-orchestrators.md) — Updates containers sequentially and verifies health checks before proceeding to minimize service downtime. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Shutdown Signaling](https://awesome-repositories.com/f/devops-infrastructure/shutdown-signaling.md) — Sends custom termination signals to containers during updates to ensure graceful shutdowns. ([source](http://watchtower.nickfedor.com/advanced-features/stop-signals/))

### Security & Cryptography

- [Registry Authentication Providers](https://awesome-repositories.com/f/security-cryptography/registry-authentication-providers.md) — Enables connection to protected image registries using environment variables, local configuration files, or external credential helpers. ([source](http://watchtower.nickfedor.com/getting-started/usage/))

### Business & Productivity Software

- [Release Age Filters](https://awesome-repositories.com/f/business-productivity-software/automatic-software-updates/plugin-auto-updaters/release-age-filters.md) — Delays the application of new images until they meet a minimum age requirement to protect against buggy releases. ([source](http://watchtower.nickfedor.com/advanced-features/image-cooldown/))

### Development Tools & Productivity

- [Lifecycle Script Execution](https://awesome-repositories.com/f/development-tools-productivity/lifecycle-script-execution.md) — Executes custom scripts triggered by specific stages of the container update lifecycle. ([source](https://watchtower.nickfedor.com/configuration/arguments/))
- [Update Execution APIs](https://awesome-repositories.com/f/development-tools-productivity/link-management/programmatic-infrastructure/update-execution-apis.md) — Provides APIs to programmatically trigger update processes for specific or all containers. ([source](http://watchtower.nickfedor.com/advanced-features/http-api/))
- [Registry Authentication](https://awesome-repositories.com/f/development-tools-productivity/private-package-registries/registry-authentication.md) — Uses environment variables or local configuration files to authenticate with private image registries.
- [Webhook Notification Systems](https://awesome-repositories.com/f/development-tools-productivity/webhook-notification-systems.md) — Dispatches custom formatted update reports and session logs to external services via HTTP requests.

### Operating Systems & Systems Programming

- [Tag Pinning](https://awesome-repositories.com/f/operating-systems-systems-programming/os-development-distributions/custom-image-builders/immutable-image-distribution/image-tagging-automation/image-tag-selection-policies/tag-pinning.md) — Restricts updates to the exact image reference and tag to ensure containers remain within a specific version series. ([source](http://watchtower.nickfedor.com/getting-started/overview/))

### Programming Languages & Runtimes

- [Lifecycle Hook Executions](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/run-lifecycle-controls/lifecycle-hook-executions.md) — Triggers external scripts at specific stages of the update process using custom identity mappings.

### Software Engineering & Architecture

- [Deployment Cooldowns](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/deployment-cooldowns.md) — Prevents immediate deployment of new images by enforcing a cooldown period based on image age. ([source](https://watchtower.nickfedor.com/configuration/arguments/))

### System Administration & Monitoring

- [Disk Space Cleaners](https://awesome-repositories.com/f/system-administration-monitoring/disk-space-cleaners.md) — Identifies and removes unnecessary old container images and orphaned volumes to reclaim host storage.
- [Prometheus-Formatted HTTP Endpoints](https://awesome-repositories.com/f/system-administration-monitoring/metrics-exporters/prometheus-formatted-http-endpoints.md) — Exposes container update status and performance metrics via a Prometheus-compatible HTTP endpoint.

### Testing & Quality Assurance

- [Container Target Filters](https://awesome-repositories.com/f/testing-quality-assurance/label-based-filtering/container-target-filters.md) — Identifies which containers to monitor using specific metadata labels or regular expression patterns.
