Terraform -> Discord Webhook Proxy
10K+
Have you ever wanted to use the webhook notification system on Terraform Cloud to notify a Discord channel of your infrastructure state changes, only to realize that they can't natively talk to each other? Well not anymore, because here's the tool you've been searching for!
Terraform webhook comes in, Discord webhook goes out, profit.
By default, an embedded rich message will be sent to Discord but this can be disabled in the config file.
Sample embed message:

The color of the message (on the left side) will be either green (success), red (error), blue (plan needs confirmation), or yellow (other).
go get github.com/captainGeech42/tf-discord-webhook-proxyconfig.ex.json file to your current directory as config.jsonWebhookURL field with a Discord webhook URL (Discord docs on webhooks)tf-discord-webhook-proxyThe proxy will be available at http://host:8080/webhook. Add that URL to a new Webhook Notification in the Notifications settings in your Terraform Cloud workspace.
This tool is also available via a Docker image on Docker Hub (captaingeech/tf-discord-webhook-proxy). When running via the Docker image, you can either use this image as a base image to COPY your config.json into /app, or set the following environment variables instead:
TF_PROXY_ENV=YES (without this, a config.json will be looked for)TF_PROXY_WEBHOOK_URL="https://discordapp.com/api/webhooks/xxxxxxxx/yyyyyyyyyyyyy"TF_PROXY_RICH_MESSAGES=YES (optional, disable rich messages by setting to NO)The Docker image will always have the proxy running on port 8080 in the container, you can choose to forward this outside of the container to whatever port you need.
Example execution of container:
docker run --rm -it -p8080:8080 \
-e TF_PROXY_ENV=YES \
-e TF_PROXY_WEBHOOK_URL="https://discordapp.com/api/webhooks/xxxxxxxx/yyyyyyyyyyyyy" \
captaingeech/tf-discord-webhook-proxy:latest
Content type
Image
Digest
Size
7.1 MB
Last updated
over 5 years ago
docker pull captaingeech/tf-discord-webhook-proxy