ThunderHosting

Deploy on push with a webhook

Connect GitHub, GitLab, Gitea or Forgejo so every push to your branch deploys the app.

With a webhook, every push to your branch deploys the app by itself: Dash pulls the code and restarts the app.

1. Copy the URL and the secret

Open the app's Deploy tab. Save the repository first, then the Webhook card shows the payload URL and the secret. Keep "Deploy on push" switched on.

GitHub

  1. In the repository: Settings → Webhooks → Add webhook.
  2. Payload URL: the URL from Dash. Content type: application/json.
  3. Secret: the secret from Dash.
  4. Choose "Just the push event" and click Add webhook. GitHub sends a test ping; it shows as delivered.

GitLab

  1. In the project: Settings → Webhooks → Add new webhook.
  2. URL: the URL from Dash. Secret token: the secret from Dash.
  3. Trigger: Push events, then click Add webhook.

Gitea and Forgejo

  1. In the repository: Settings → Webhooks → Add webhook → Gitea (or Forgejo).
  2. Target URL: the URL from Dash, content type application/json, secret: the secret from Dash.
  3. Trigger on push events and save.

Other services

Any service or script can deploy by sending a POST request with the secret in the X-Deploy-Token header:

bash
curl -X POST "WEBHOOK_URL" \
  -H "X-Deploy-Token: YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"ref":"refs/heads/main"}'

Treat the secret like a password. If it leaks, click New webhook secret on the Deploy tab and update the webhook in your repository.

What happens on a push

  • Only pushes to the configured branch deploy; other branches and events are ignored.
  • Pushes in quick succession are combined into one deploy.
  • A paused free plan does not deploy until you confirm it.
  • The history on the Deploy tab shows each deploy with commit, message and log.