A Kirby Panel view button to trigger deployments on any CI/CD service, such as Vercel, Netlify, or GitHub Actions.
This is especially useful when you want to trigger a deployment after updating the content in the Panel from your headless Kirby setup. The button sends a request to the specified URL, which can be used to trigger a deployment on your CI/CD service.
- Kirby 4 or Kirby 5
Kirby is not free software. However, you can try Kirby and the Starterkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. โฆ and when you're convinced, buy your license.
composer require johannschopplich/kirby-deploy-triggerDownload and copy this repository to /site/plugins/kirby-deploy-trigger.
Create a webhook in your CI/CD service to listen for incoming requests. The webhook URL is the URL you need to specify in the johannschopplich.deploy-trigger.deployUrl option in the config.php file:
# /site/config/config.php
return [
'johannschopplich.deploy-trigger' => [
'deployUrl' => 'https://api.example.com/deploy',
]
];Tip
The deployUrl is sent as a POST request by default. You can change the request method with the requestOptions option.
Kirby 5 introduces new extensions that allow you to add custom view buttons to most Panel views (e.g. page, site, or file). The Deploy Trigger plugin provides a button that can be added alongside the default buttons, such as the preview button or the language dropdown.
To add the deploy-trigger button to a particular view, set the buttons option in the corresponding blueprint. The following example shows how to reference the default buttons and add the deploy-trigger button to the site blueprint:
# /site/blueprints/site.yml
buttons:
- deploy-trigger # Re-order the button as needed
- previewThis way, you can reference the default buttons and decide where to place the deploy-trigger button.
Tip
Kirby 4 does not support custom view buttons, but the deploy-trigger button has been backported ๐. It is always prepended to the default buttons and cannot be moved.
Each configuration option is available in the config.php file.
The following table lists all available options:
| Option | Default | Description |
|---|---|---|
deployUrl |
null |
The URL to trigger the deployment. |
requestOptions |
[] |
Additional headers or a specific method to send the request. |
To create a Deploy Hook for your project, make sure your project is connected to a Git repository.
Once your project is connected, navigate to its Settings page and then select the Git menu item.
In the "Deploy Hooks" section, choose a name for your Deploy Hook and select the branch that will be deployed when the generated URL is requested.
After submitting the form, you will see a URL that you can copy and use as the deployUrl option in the config.php file.
MIT License ยฉ 2025-PRESENT Johann Schopplich

