Deployment Notifications
Notify your team when deployments start, succeed, or fail.
Deployments affect everyone. Whether it's a new feature going live or a hotfix rolling out, the right people need to know — in real time, not via a status page they might not check.
Docker / Docker Compose
Wrap your deploy script with notifications:
#!/bin/bash
WEBHOOK="https://app.alphorn.dev/api/webhooks/wh_abc123"
SERVICE="my-app"
VERSION=$(git describe --tags --always)
# Notify start
curl -s -X POST "$WEBHOOK" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"Deploy started: $SERVICE\",
\"message\": \"Deploying $VERSION to production\",
\"priority\": 2,
\"tags\": [\"deploy\", \"started\", \"$SERVICE\"]
}"
# Deploy
docker compose pull && docker compose up -d
EXIT_CODE=$?
if [ $EXIT_CODE -eq 0 ]; then
curl -s -X POST "$WEBHOOK" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"Deploy succeeded: $SERVICE\",
\"message\": \"$VERSION is live in production\",
\"priority\": 2,
\"tags\": [\"deploy\", \"success\", \"$SERVICE\"]
}"
else
curl -s -X POST "$WEBHOOK" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"Deploy FAILED: $SERVICE\",
\"message\": \"$VERSION failed to deploy (exit $EXIT_CODE)\",
\"priority\": 5,
\"tags\": [\"deploy\", \"failure\", \"$SERVICE\"]
}"
fiKubernetes
Send a notification from a Kubernetes Job or post-deploy hook:
apiVersion: batch/v1
kind: Job
metadata:
name: deploy-notify
spec:
template:
spec:
containers:
- name: notify
image: curlimages/curl
command:
- curl
- -s
- -X
- POST
- $(ALPHORN_WEBHOOK)
- -H
- "Content-Type: application/json"
- -d
- '{"title":"Deployed to k8s","message":"$(APP_VERSION) rolled out","priority":2,"tags":["deploy","k8s"]}'
env:
- name: ALPHORN_WEBHOOK
valueFrom:
secretKeyRef:
name: alphorn
key: webhook-url
- name: APP_VERSION
value: "v1.2.3"
restartPolicy: NeverVercel / Netlify
Use deploy webhooks. Both platforms can call a URL on deploy events — point them at your Alphorn webhook endpoint.
In Vercel:
- Go to Project Settings → Git → Deploy Hooks (outgoing webhooks)
- Or use the Vercel API in a GitHub Action to POST to Alphorn after deploy completes
Routing examples
| Channel | Filter | Purpose |
|---|---|---|
| Slack (#deployments) | tags CONTAINS "deploy" | All deploy activity |
| Slack (#engineering) | tags CONTAINS "failure" | Only failed deploys |
| PagerDuty | priority >= 4 AND tags CONTAINS "deploy" | Page on-call for deploy failures |
| Discord | tags CONTAINS "success" | Celebrate successful releases |