checkId: check.integration.slack plugin: stellaops.doctor.integration severity: info tags: [notification, slack, webhook]

Slack Webhook

This Doctor check validates that the configured Slack incoming-webhook URL is well-formed and that Slack’s webhook host is reachable, so operators can trust that deployment, policy, and security alerts will land in their Slack channels.

What It Checks

Reads the Slack webhook URL from Slack:WebhookUrl or Notify:Slack:WebhookUrl. First validates the URL format: warns if the URL does not start with https://hooks.slack.com/. Then tests host reachability by sending an HTTP GET to the base URL (https://hooks.slack.com). The check passes if the Slack host is reachable, warns if the host is unreachable or if the URL format is suspicious. Does not send an actual webhook payload to avoid generating noise in the Slack channel.

Why It Matters

Slack notifications keep operators informed about deployment status, policy violations, security findings, and approval requests in real time. A misconfigured or unreachable Slack webhook means critical alerts go undelivered, potentially delaying incident response, approval workflows, or security remediation.

Common Causes

How to Fix

Docker Compose

# Check Slack webhook configuration
grep 'SLACK__WEBHOOKURL\|NOTIFY__SLACK' .env

# Test connectivity to Slack
docker compose exec gateway curl -sv https://hooks.slack.com/ -o /dev/null

# Update webhook URL
echo 'Slack__WebhookUrl=https://hooks.slack.com/services/T.../B.../xxx' >> .env
docker compose restart platform

# If behind a proxy
echo 'HTTP_PROXY=http://proxy:8080' >> .env
echo 'HTTPS_PROXY=http://proxy:8080' >> .env
docker compose restart platform

Bare Metal / systemd

# Verify configuration
cat /etc/stellaops/appsettings.Production.json | jq '.Slack'

# Test connectivity
curl -sv https://hooks.slack.com/ -o /dev/null

# Update webhook URL
sudo nano /etc/stellaops/appsettings.Production.json
sudo systemctl restart stellaops-platform

Kubernetes / Helm

# values.yaml
slack:
  webhookUrl: https://hooks.slack.com/services/T.../B.../xxx
  # or use an existing secret
  existingSecret: stellaops-slack-webhook
helm upgrade stellaops ./chart -f values.yaml

Verification

stella doctor run --check check.integration.slack