Skip to main content
Hostwares

Webhooks

Trigger a Hostwares deployment from an external event — CI/CD, Git host, or any system that can send an HTTP POST.

Overview

Today, Hostwares webhooks are one-directional and inbound: every deployed site has a unique URL that, when POSTed to, triggers a fresh deployment. This is what CI/CD pipelines, Git hosts, and automation tools use to redeploy a site without calling the REST API directly.

Looking for outboundnotifications (Slack/Discord/PagerDuty when a deploy finishes)? That's not built yet — see Outbound Notifications below for the current workaround.

Getting Your Deploy URL

Ask the AI assistant for your site's deploy webhook — it's the fastest path and requires no API key handling:

you> what's the deploy webhook for my-site?
ai>  Deploy webhook for "my-site":
     POST https://your-coolify-host/webhooks/deploy/abc123def

Or fetch it via the REST API (see API Reference for authentication):

# Via the AI chat endpoint — same tool the assistant uses internally
POST /api/chat
{ "message": "list the deploy webhook for my-site" }

Triggering a Deploy

POST to the URL with no body required — it starts a fresh deployment from your current source (GitHub branch, Docker image, etc.):

curl -X POST https://your-coolify-host/webhooks/deploy/abc123def

The site's status flips to DEPLOYING immediately; poll GET /api/sites/:id or check the dashboard to see when it's back to RUNNING.

Integration Examples

GitHub Actions — redeploy on push

# .github/workflows/deploy.yml
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - run: curl -X POST ${{ secrets.HOSTWARES_DEPLOY_WEBHOOK }}

n8n / Zapier

Use an HTTP Request node with POST and your webhook URL as the target — no auth headers needed, since the URL itself is the credential. Treat it like a secret.

Outbound Notifications (Roadmap)

Push notifications when a deployment completes or fails — to Slack, Discord, PagerDuty, or a custom endpoint — aren't available yet. Until they ship, two workarounds:

  • Ask the AI in an active chat session — it can report back on deployment status
  • Poll GET /api/sites/:id from an n8n/Zapier workflow and relay status changes to Slack/Discord yourself