Dokploy Webhook Deploy Action
ActionsTags
(1)Deploy your applications on Dokploy with git commit information via Dokploy's webhook urls. The action collects metadata from the GitHub runner (ref, sha, repo, actor, and a commit message) and POSTs it to your Dokploy webhook.
{
"ref": "<GITHUB_REF>",
"head_commit": {
"id": "<GITHUB_SHA>",
"message": "<commit message>"
},
"repository": { "full_name": "<owner/repo>" },
"pusher": { "name": "<actor>" }
}The HTTP header
X-GitHub-Eventis included and reflects the current workflow event (e.g.,push,workflow_dispatch,pull_request, …).
| Name | Required | Default | Description |
|---|---|---|---|
| webhook_url | Yes | — | Dokploy webhook URL. Store it as a secret in caller repos. |
| commit_message | No | "" | Optional override. If not provided and the repo is checked out, the action attempts git log -1 --pretty=%B. Empty string otherwise. |
| package_url | Yes | - | Package URL for a Docker image. Necessary after a breaking change to Dokploy's webhook usage |
| Name | Description |
|---|---|
| payload | The exact JSON body posted to the webhook (string). Useful for debugging or logging in downstream steps. |
name: Deploy (push)
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Dokploy Deployment
uses: your-org/dokploy-deploy-action@v1
with:
webhook_url: ${{ secrets.DOKPLOY_WEBHOOK_URL }}- name: Dokploy Deployment
uses: TimLanzi/dokploy-deploy-action@v1
with:
webhook_url: ${{ secrets.DOKPLOY_WEBHOOK_URL }}
commit_message: ${{ github.event.head_commit.message }} # for pushcommit_message: ${{ github.event.pull_request.title }}commit_message: "Manual deploy of ${{ github.sha }}"- name: Dokploy Deployment
id: dokploy
uses: TimLanzi/dokploy-deploy-action@v1
with:
webhook_url: ${{ secrets.DOKPLOY_WEBHOOK_URL }}
- name: Show payload
run: echo '${{ steps.dokploy.outputs.payload }}'-
Secrets: Store the webhook URL as a repository/organization secret (e.g., DOKPLOY_WEBHOOK_URL).
-
Checkout: If you want the action to auto-detect the commit message, include actions/checkout@v4. Otherwise, pass commit_message.
-
jq: The action checks for jq and attempts to install it on common runners (Ubuntu/macOS) and Alpine containers. If you prefer, you can remove that and install jq in the caller workflow instead.
push: Works out-of-the-box; you can use ${{ github.event.head_commit.message }} if desired.
pull_request: No head_commit in payload. Provide commit_message (e.g., PR title).
workflow_dispatch / schedule / others: Provide commit_message, or the action will try git log -1 if checkout is present.
HTTP 4xx/5xx: The step fails the job (uses --fail-with-body / --fail). Check the step logs for the server’s response body.
No commit message: Ensure actions/checkout ran, or pass commit_message.
jq not found: Either rely on the action’s installer (default) or install jq in the caller workflow:
- run: sudo apt-get update -y && sudo apt-get install -y jqDokploy Webhook Deploy Action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.