Deploy hooks

🪝

Hook up automatic deployments.

Trigger deployments from external services, like headless CMS platforms or cron jobs.

Deploy hooks are unique URLs that accept HTTP POST requests to trigger a deployment on an environment.

# Settings

Deploy hooks are configured in the fortrabbit dashboard for each environment.

https://dash.fortrabbit.com/environments/{{app-env-id}}/deployment#deploy-hook

After enabling a deploy hook, a unique URL is shown. Store it securely and use it to trigger deployments from external services.

# Trigger

To trigger a deployment, send a POST request to the deploy hook URL with a User-Agent header. No authentication or payload is required:

# Trigger
curl -X POST "https://api.fortrabbit.com/webhooks/environments/{{ app-env-id }}/deploy/{{ SECRET }}" \
  -H "User-Agent: Hello fortrabbit"
bash

Upon successful trigger, the server responds with a deployment object:

{
  "data": {
    "publicId": "dp-abc123"
  }
}
json

If the response had an error you get back something like this:

{
  "error": "Environment not found."
}
json

# Use cases

  • Deploy on CMS publish events via webhooks (Contentful, Strapi).
  • Scheduled deployments with cron or workflow tools.
  • Manual trigger from the CLI with a simple script or alias.
  • Automation in GitHub Actions, GitLab CI, or Zapier.

# Example

Triggering a fortrabbit deployment from a GitHub Actions workflow could theoretically work like this:

deploy:
  runs-on: ubuntu-latest
  steps:
    - name: Trigger fortrabbit deploy
      run: |
        curl -X POST "${{ secrets.FORTRABBIT_DEPLOY_HOOK_URL }}" \
          -H "User-Agent: GitHub-Actions"
yaml

NOTE that this for demonstrational purposes only. Don't take that example literal. GitHub Actions is one kind of integration. Read on for alternatives.

# Alternatives

The deploy hook is a specific solution for specific workflows.

For most day to day usage. The GitHub integration with automatic git push to deploy is the most convenient way to deploy.

# Security

Deploy hooks are public! Anyone with the URL can trigger a deployment. Each deploy hook URL contains a unique identifier. Treat this URL with the same security care as you would a password or API token. If you believe your deploy hook URL has been compromised, you can revoke it from the dashboard and create a new one. Consider rotating it on regular basis.

# Troubleshooting

If a deploy hook fails to trigger a deployment:

  • Invalid URL: Verify the hook URL is correct and has not been modified
  • Revoked hook: Check if the hook was revoked or deleted from the dashboard
  • Network issues: Ensure the external service can reach the fortrabbit deployment API
  • Check status: View deployment history in the dashboard to confirm if the hook was triggered

You can monitor all deploy hook triggers and their results in the deployment history of your environment.

Found a tpyo?Edit