CI/CD & Automation
Automate your deployments with Kuploy's built-in CI/CD features and integrate with external pipelines.
Auto-Deploy on Push
The simplest way to automate deployments — redeploy whenever you push to your branch:
- Go to Settings → Source
- Toggle Auto Deploy on
- Optionally configure:
- Branch filter — Only deploy from specific branches
- Path filter — Only deploy when specific files change
Every push to your configured branch triggers a new deployment automatically.
Build Triggers
Kuploy supports several deployment triggers:
| Trigger | Description |
|---|---|
| Git push | Auto-deploy on push (when enabled) |
| Manual | Click "Deploy" in the dashboard |
| Webhook | Trigger via HTTP POST |
| API | Trigger programmatically |
Webhooks
Trigger deployments from external systems using webhooks.
Deploy Webhook
Each application has a unique deploy webhook URL:
- Go to Settings → Webhooks
- Copy the Deploy Webhook URL
- Send a POST request to trigger a deployment:
curl -X POST https://your-kuploy-instance.com/api/webhook/deploy/[token]
Webhook Events
Kuploy can also send webhook notifications when events occur:
| Event | Description |
|---|---|
deploy.started | Build process begins |
deploy.succeeded | Deployment completed |
deploy.failed | Deployment failed |
app.health_changed | Health status changed |
Configure outbound webhooks in Settings → Webhooks → Add Outbound Webhook.
GitHub Actions Integration
Example workflow to trigger a Kuploy deployment after tests pass:
name: Deploy to Kuploy
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- name: Trigger Kuploy Deploy
run: |
curl -X POST ${{ secrets.KUPLOY_DEPLOY_WEBHOOK }}
Store your deploy webhook URL as a GitHub secret (KUPLOY_DEPLOY_WEBHOOK).
GitLab CI Integration
stages:
- test
- deploy
test:
stage: test
script:
- npm ci
- npm test
deploy:
stage: deploy
only:
- main
script:
- curl -X POST $KUPLOY_DEPLOY_WEBHOOK
Build Minutes
Automated deployments consume build minutes. Tips for efficiency:
- Use
.dockerignoreto exclude test files, docs, and other non-runtime files - Leverage Docker layer caching by ordering Dockerfile commands from least to most frequently changing
- Consider using pre-built images for dependencies that change infrequently
- Failed builds count against your minutes — test locally first
Deployment Strategies
Branch-Based Deployments
Create separate applications for different environments:
| Branch | Application | Environment |
|---|---|---|
main | myapp-production | Production |
staging | myapp-staging | Staging |
develop | myapp-dev | Development |
Each application has its own environment variables, domain, and auto-deploy settings.
Preview Deployments
For pull request previews:
- Create a separate application for previews
- Configure auto-deploy from your PR branch
- Use a free subdomain (e.g.,
myapp-pr-123.kuploy.app) - Delete the preview app after merging