No description
  • C# 90.6%
  • Dockerfile 9.4%
Find a file
Dirk Kok a9ce057de7
All checks were successful
Build AuthenticatedGlue / build-and-push-image (push) Successful in 4s
Build AuthenticatedGlue / trigger-update (push) Successful in 1s
Build WatchtowerGlue / build-and-push-image (push) Successful in 4s
Build WatchtowerGlue / trigger-update (push) Successful in 2s
decided not to use attestations
2026-03-03 22:27:08 +01:00
.forgejo/workflows decided not to use attestations 2026-03-03 22:27:08 +01:00
AuthenticatedGlue [ci skip] add mock watchtower service 2026-03-03 13:28:26 +01:00
TestCallJwt working 2025-04-13 12:48:33 +02:00
WatchtowerGlue fixed a bug that has been there since the beginning (what) 2025-06-14 00:23:49 +02:00
.dockerignore authenticated glue 2025-04-12 21:49:16 +02:00
.gitignore ignore and untrack *.DotSettings.user 2025-07-24 21:39:37 +02:00
LICENSE Create LICENSE 2025-04-12 23:07:28 +02:00
README.md Update README.md 2025-04-14 00:58:15 +02:00
WatchtowerGlue.sln authenticated glue 2025-04-12 21:49:16 +02:00

WatchtowerGlue

Use in conjunction with Watchtower to automate your deployments.

WatchtowerGlue is designed to be linked to a selfhosted registry container, which can be configured to call a webhook when images are pushed:

# /etc/docker/registry/config.yml
notifications:
  events:
    includereferences: true
  endpoints:
    - name: updater
      url: http://glue-container-name/
      timeout: 1500ms
      threshold: 1
      backoff: 0s
      ignore:
        # Doesn't work, but whatever.
        mediatypes:
          - application/octet-stream
        actions:
          - pull


WatchtowerGlue is not supposed to be accessible from the internet, as it does not authenticate its incoming requests.

Environment variables:

  • DEBOUNCE_MILLIS: the amount of milliseconds to wait before making a request to Watchtower. Useful if your workflows push multiple images, to avoid triggering multiple updates. Default 5000
  • WATCHTOWER_TOKEN: the authorization token configured in Watchtower's http api.
  • WATCHTOWER: the full hostname including http:// or https:// that Watchtower is located at.

AuthenticatedGlue

AuthenticatedGlue is meant to be used in conjunction with the trigger-update workflow action. It authenticates all incoming requests using JWTs.

Environment variables

Key Description Example
Keys__Keys__* followed by a key id, the value should be the PEM-encoded certificate for that signing key. -----BEGIN CERTIFICATE-----\n...
Watchtower__Url The full URL that Watchtower is accessible from http://localhost:8080
Watchtower__Token The HTTP API token for Watchtower mytoken