Deploy alerts

Deploy failure alerts to your phone.

Nerve sends encrypted deploy status messages from CI/CD and production scripts, with optional signed action follow-up.

Release status without chat noise

A deploy alert should be fast, private, and actionable. Nerve sends it to a dedicated pipe instead of mixing it into a general chat channel.

Include the right context

Good deploy alerts include service name, status, commit SHA, environment, and a link to logs or a runbook.

Action remains separate

A sender DSN cannot run rollback commands. If you later add rollback actions, do it through an agent token and signed commands.

Failure alert with logs pointer

Do not paste the entire deploy log into a phone notification. Send the service, environment, commit, and a link to the place where the full log already exists.

export NERVE_DSN="nerve://TOKEN:[email protected]"

if ./deploy.sh production; then
  echo "deploy ok service=api env=prod sha=$GIT_SHA" | nerve send
else
  echo "deploy failed service=api env=prod sha=$GIT_SHA run=$CI_JOB_URL" \
    | nerve send --severity critical
fi

When to notify success

Success notifications are useful for manual production deploys and release milestones. For every commit on every branch, they become noise. A good rule: failures always notify, success only when a human is waiting for confirmation.

Rollback safety

If rollback becomes a mobile action later, keep it signed, bounded, and separate from the sender DSN. The secret used by CI to send “deploy failed” should never be able to execute rollback by itself.

Quick start

export NERVE_DSN="nerve://TOKEN:[email protected]"
if ./deploy.sh; then
  echo "deploy success sha=$GIT_SHA" | nerve send
else
  echo "deploy failed sha=$GIT_SHA" | nerve send --severity alert
fi

FAQ

Can I send deploy alerts from GitHub Actions?

Yes. Store NERVE_DSN as a GitHub secret and call nerve send in a workflow step.

Can a leaked deploy DSN execute rollback?

No. Sender DSNs cannot execute commands.

Should deploy alerts include secrets?

No. Send status and links, not secrets or credentials.