Watchtower Notification System Overview

Watchtower Docker notifications are powered by Shoutrrr — a notification library that supports 20+ services via a unified URL scheme. Notifications are sent when:

  • A container is successfully updated to a new image
  • An update fails (pull error, restart error)
  • Optionally: when no updates are found (configurable)

Slack Notifications

services:
  watchtower:
    image: containrrr/watchtower
    environment:
      - WATCHTOWER_NOTIFICATIONS=slack
      - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/T.../B.../xxx
      - WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=watchtower  # Bot display name
      - WATCHTOWER_NOTIFICATION_SLACK_ICON_EMOJI=:whale:
      - WATCHTOWER_NOTIFICATION_SLACK_CHANNEL=#deployments

Create a Slack webhook at api.slack.com/messaging/webhooks and paste the URL into WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL.

Email (SMTP) Notifications

environment:
  - WATCHTOWER_NOTIFICATIONS=email
  - WATCHTOWER_NOTIFICATION_EMAIL_FROM=watchtower@example.com
  - WATCHTOWER_NOTIFICATION_EMAIL_TO=admin@example.com
  - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
  - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
  - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=user@gmail.com
  - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=yourAppPassword
  - WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2  # Batch delay in seconds
For Gmail, use an App Password (not your account password). Enable 2FA on your Google account and generate an App Password at myaccount.google.com/apppasswords.

Modern Method: WATCHTOWER_NOTIFICATION_URL (Shoutrrr)

The newer and preferred method uses Shoutrrr URL strings — one variable covers any notification service:

# Slack via Shoutrrr
- WATCHTOWER_NOTIFICATION_URL=slack://token-a/token-b/token-c

# Telegram
- WATCHTOWER_NOTIFICATION_URL=telegram://botToken@telegram?channels=channelID

# Discord
- WATCHTOWER_NOTIFICATION_URL=discord://token@webhookID

# Gotify (self-hosted)
- WATCHTOWER_NOTIFICATION_URL=gotify://hostname/token

# Multiple services (separate with space)
- WATCHTOWER_NOTIFICATION_URL=slack://... gotify://...

Log Level and Docker Logs

Control what appears in watchtower docker logs with the log level:

environment:
  - WATCHTOWER_DEBUG=false       # Set to true for verbose debug output
  # OR use log level directly:
  # Passed as a CLI flag:
  # command: --log-level debug

View docker watchtower logs in real time:

# Follow live
docker logs watchtower --follow

# Last 50 lines
docker logs watchtower --tail 50

# Since last hour
docker logs watchtower --since 1h

Notify Without Updating

To receive watchtower docker notifications for available updates without actually restarting containers, enable monitor-only mode globally:

environment:
  - WATCHTOWER_MONITOR_ONLY=true    # Detect updates, notify, but never restart
  - WATCHTOWER_NOTIFICATIONS=slack
  - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/...

This turns Watchtower into a pure notification system — similar to Diun or What's Up Docker, but with Watchtower's simpler setup.

Frequently Asked Questions

How do I test Watchtower Docker notifications?

Start Watchtower with the --debug flag and run it in --run-once mode: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -e WATCHTOWER_NOTIFICATIONS=slack -e WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=... containrrr/watchtower --run-once --debug. You'll see the notification attempt in the log output, and a test message will arrive in Slack.

Can Watchtower send notifications for every check, not just updates?

Not directly — Watchtower only sends notifications when updates occur or fail, not for "no-op" checks. If you need heartbeat-style notifications, use the HTTP API and poll from an external monitoring tool, or check Watchtower's logs via your observability stack.

Does Watchtower support Microsoft Teams notifications?

Yes, via Shoutrrr: WATCHTOWER_NOTIFICATION_URL=teams://tokenA/tokenB/tokenC. Create an Incoming Webhook in Microsoft Teams and use the webhook URL components as the Shoutrrr token. See the Shoutrrr documentation for the exact URL format.

AC
Alex Chen
Docker Infrastructure Engineer
Alex has configured Watchtower notification integrations for 80+ production environments including Slack, PagerDuty, Teams, Telegram, and custom webhooks. All examples are verified against containrrr/watchtower v1.7.x and Shoutrrr v0.8.x.