aaP_tunnaduong Hello aaPanel Community π
Iβm excited to share a new open-source GitHub Action that makes continuous deployment to your aaPanel server effortless β no more manual clicks after every push!
This Action automatically triggers your aaPanel webhook whenever you push to your main branch and (optionally) sends you instant notifications via ntfy (on your phone or desktop) for both success and failure events.
π What It Does
β
Automatically sends a POST request to your aaPanel webhook:
https://your-panel-domain.com/hook?access_key=YOUR_KEY
π± Optionally sends ntfy push notifications for success or failure events.
π‘ Ideal for developers who use aaPanel for hosting projects and want a simple CI/CD setup directly from GitHub.
π§© GitHub Marketplace
π Action link:
π aaPanel Auto Deploy on GitHub Marketplace (or search for βaaPanel Auto Deployβ)
Repository:
π https://github.com/tunnaduong/aapanel-deploy-action
βοΈ Example GitHub Workflow
Add this file to your repository:
.github/workflows/deploy.yml
name: Auto Deploy to aaPanel
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to aaPanel
uses: tunnaduong/aapanel-deploy-action@v1.0
with:
panel_url: https://panel.example.com
webhook_key: ${{ secrets.AAPANEL_WEBHOOK_KEY }}
ntfy_topic: mytopic # optional
if(window.hljsLoader && !document.currentScript.parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScript.parentNode);
}
β
This will automatically call:
https://panel.example.com/hook?access_key=<your_key>
π² And send a notification to:
https://ntfy.sh/mytopic
π§ Inputs
| Name | Description | Required | Default |
| --- | --- | --- | --- |
| panel_url | Your aaPanel base URL (e.g., https://panel.example.com) | β
| β |
| webhook_key | Your aaPanel webhook access key | β
| β |
| ntfy_topic | ntfy topic for push notifications | β | β |
| ntfy_server | ntfy server URL (for self-hosted users) | β | https://ntfy.sh |
π¬ Notification Examples
Success:
β
Deploy succeeded for tunnaduong/myapp!
https://github.com/tunnaduong/myapp/actions/runs/123456
Failure:
β Deploy failed for tunnaduong/myapp!
https://github.com/tunnaduong/myapp/actions/runs/123456
π§° Why Use It?
Simple 1-step setup
Works with any aaPanel webhook
Optional real-time notifications
Perfect for personal or small business deployments
Lightweight β based on Alpine + curl only
π§ Tips
Use GitHub Secrets for your webhook key (AAPANEL_WEBHOOK_KEY)
If you host your own ntfy instance, use the ntfy_server input to point to it
You can also set multiple triggers (e.g., tag push, manual dispatch)
πͺͺ License
MIT Β© DΖ°Ζ‘ng TΓΉng Anh (Tunna Duong)
β€οΈ Feedback
If you find this helpful, please give the project a β on GitHub or leave your feedback below.
Any suggestions for integration improvements or aaPanel-related automations are warmly welcome!