ConfigurationTriggersHTTP
Http
The http trigger lets you send container update notifications via HTTP.
The http trigger lets you send container update notifications via HTTP.
Variables
| Env var | Required | Description | Supported values | Default value when missing |
|---|---|---|---|---|
DD_NOTIFICATION_HTTP_{trigger_name}_URL | 🔴 | The URL of the webhook | Valid http or https endpoint | |
DD_NOTIFICATION_HTTP_{trigger_name}_METHOD | ⚪ | The HTTP method to use | GET, POST | POST |
DD_NOTIFICATION_HTTP_{trigger_name}_AUTH_TYPE | ⚪ | The auth type | BASIC, BEARER | BASIC |
DD_NOTIFICATION_HTTP_{trigger_name}_AUTH_USER | ⚪ | The Auth user if BASIC Auth is enabled | ||
DD_NOTIFICATION_HTTP_{trigger_name}_AUTH_PASSWORD | ⚪ | The Auth user password if BASIC Auth is enabled | ||
DD_NOTIFICATION_HTTP_{trigger_name}_AUTH_BEARER | ⚪ | The Auth bearer token if BEARER Auth is enabled | ||
DD_NOTIFICATION_HTTP_{trigger_name}_PROXY | ⚪ | The HTTP Proxy | Valid http or https proxy URL | |
DD_NOTIFICATION_HTTP_{trigger_name}_ALLOWMETADATA | ⚪ | Allow requests to cloud metadata / link-local addresses | true, false | false |
HTTP trigger auth now fails closed. If
AUTH_TYPE=BASIC, both AUTH_USER and AUTH_PASSWORD are required. If AUTH_TYPE=BEARER, AUTH_BEARER is required.The
PROXY URL must use an http:// or https:// scheme. Any other scheme (e.g. socks5://) is rejected at configuration-validation time and prevents the trigger from registering.HTTP requests have a 30-second timeout. If the remote server does not respond within 30 seconds, the trigger will fail.
Metadata endpoint guard: Before sending each request, the trigger resolves the target hostname and rejects any address in the cloud metadata / link-local ranges:
169.254.0.0/16 (IPv4, including the AWS IMDSv1 endpoint 169.254.169.254), fe80::/10 (IPv6 link-local), and fd00:ec2::254 (AWS IMDSv2 IPv6). RFC-1918 private ranges (10.x, 172.16–31.x, 192.168.x) are not blocked — self-hosted webhook targets on your local network work normally. Set ALLOWMETADATA=true on a specific trigger if you have a legitimate need to reach a link-local address.This trigger also supports the common configuration variables.
Examples
Post an HTTP request to an existing server
services:
drydock:
image: codeswhat/drydock
...
environment:
- DD_NOTIFICATION_HTTP_MYREMOTEHOST_URL=https://my-remote-host/new-versiondocker run \
-e DD_NOTIFICATION_HTTP_MYREMOTEHOST_URL="https://my-remote-host/new-version" \
...
codeswhat/drydockExample of payload (POST request, simple mode)
{
"id":"31a61a8305ef1fc9a71fa4f20a68d7ec88b28e32303bbc4a5f192e851165b816",
"name":"homeassistant",
"watcher":"local",
"includeTags":"^\\d+\\.\\d+.\\d+$",
"image":{
"id":"sha256:d4a6fafb7d4da37495e5c9be3242590be24a87d7edcc4f79761098889c54fca6",
"registry":{
"url":"123456789.dkr.ecr.eu-west-1.amazonaws.com"
},
"name":"test",
"tag":{
"value":"2021.6.4",
"semver":true
},
"digest":{
"watch":false,
"repo":"sha256:ca0edc3fb0b4647963629bdfccbb3ccfa352184b45a9b4145832000c2878dd72"
},
"architecture":"amd64",
"os":"linux",
"created":"2021-06-12T05:33:38.440Z"
},
"result":{
"tag":"2021.6.5"
},
"updateAvailable": true
}Batch mode payload
When MODE=batch, the POST body is an array of all containers with available updates:
[
{ "id": "...", "name": "app1", "image": { ... }, "result": { "tag": "2.0.0" }, "updateAvailable": true },
{ "id": "...", "name": "app2", "image": { ... }, "result": { "tag": "3.1.0" }, "updateAvailable": true }
]