Open Source
v0.1

ibmcloudvercel

A Vercel integration that automatically deploys your app to IBM Cloud Code Engine every time Vercel creates a new deployment.

📦
Git Push
your code
Vercel
deployment.created
🔗
Webhook
ibmcloudvercel
☁️
Code Engine
IBM Cloud

What it does

ibmcloudvercel acts as a bridge between Vercel and IBM Cloud. It runs a small HTTP service that listens for Vercel webhook events. When Vercel creates a new deployment, the integration triggers a build and deploy job on IBM Cloud Code Engine — automatically, with no manual steps.

Automatic deploys
Every Vercel deployment.created event triggers a Code Engine build.
🔐
OIDC auth support
Use IBM Trusted Profiles with Vercel's OIDC tokens — no static API keys needed.
📄
YAML config
One ibmcloudvercel.yml file controls region, scaling, CPU, memory, and more.
↕️
Scale to zero
Code Engine scales down to zero when idle — you only pay for what you use.

Quick Start

  1. Clone the repo & install dependencies
    git clone https://github.com/connor-leung/ibmcloudvercel
    cd ibmcloudvercel
    pip3 install -r requirements.txt
  2. Copy and edit the config file
    cp ibmcloudvercel.example.yml ibmcloudvercel.yml
    Fill in your IBM Cloud region, Code Engine project ID, and COS bucket name.
  3. Set environment variables in Vercel
    # Required
    IBM_CODE_ENGINE_PROJECT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    IBM_COS_BUCKET_NAME=my-bucket
    IBM_CLOUD_REGION=us-south
    
    # Choose one auth method (OIDC recommended)
    IBM_TRUSTED_PROFILE_ID=Profile-xxxx   # OIDC
    IBM_CLOUD_API_KEY=your-api-key        # fallback
    
    # Webhook secret (from Vercel integration settings)
    VERCEL_WEBHOOK_SECRET=your-secret
  4. Deploy the integration service to Vercel
    Push to your repo. Vercel will build and deploy the integration server. Configure the webhook URL in your Vercel integration settings to point to /integration/webhook.
  5. Push code and watch it deploy
    From now on, every push to your repo will automatically trigger a Code Engine build via the Vercel webhook.

ibmcloudvercel.yml

Drop this file in your repo root. All values support ${'{'}ENV_VAR{'}'} and ${'{'}ENV_VAR:-default{'}'} syntax.

ibm_cloud:
  region: "${IBM_CLOUD_REGION:-us-south}"
  project_id: "${IBM_CODE_ENGINE_PROJECT_ID}"
  cos_bucket: "${IBM_COS_BUCKET_NAME}"

  # OIDC auth (recommended)
  trusted_profile_id: "${IBM_TRUSTED_PROFILE_ID}"

scaling:
  min_scale: 0        # scale to zero when idle
  max_scale: 10
  cpu: "0.25"
  memory: "0.5G"
  port: 8080
  concurrency: 100

source_dir: "."
cleanup_artifacts: true

Authentication

Two methods are supported. OIDC is recommended because it uses short-lived tokens with no static secrets to manage.

API Key
Set IBM_CLOUD_API_KEY in Vercel environment variables. Used as a fallback when trusted_profile_id is not configured.