Skip to main content

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:

  1. Go to SettingsSource
  2. Toggle Auto Deploy on
  3. 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:

TriggerDescription
Git pushAuto-deploy on push (when enabled)
ManualClick "Deploy" in the dashboard
WebhookTrigger via HTTP POST
APITrigger programmatically

Webhooks

Trigger deployments from external systems using webhooks.

Deploy Webhook

Each application has a unique deploy webhook URL:

  1. Go to SettingsWebhooks
  2. Copy the Deploy Webhook URL
  3. 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:

EventDescription
deploy.startedBuild process begins
deploy.succeededDeployment completed
deploy.failedDeployment failed
app.health_changedHealth status changed

Configure outbound webhooks in SettingsWebhooksAdd 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 .dockerignore to 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:

BranchApplicationEnvironment
mainmyapp-productionProduction
stagingmyapp-stagingStaging
developmyapp-devDevelopment

Each application has its own environment variables, domain, and auto-deploy settings.

Preview Deployments

For pull request previews:

  1. Create a separate application for previews
  2. Configure auto-deploy from your PR branch
  3. Use a free subdomain (e.g., myapp-pr-123.kuploy.app)
  4. Delete the preview app after merging