ai-ops-templates/snippets/deploy-webhook.sh
DMleadgen 3cb8d3cb3f Initial commit: AI Ops Templates repository
- Schema.org JSON-LD templates (product, event, local-business, faq)
- Brand, UI, SEO, and decision guide rules
- Working code snippets (vendor-card, schema-inject, deploy-webhook)
- JSON schemas for project config validation
- Client presets (slc-bride, default)
- Self-update protocol with changelog tracking

Made-with: Cursor
2026-03-06 16:03:31 -07:00

134 lines
3.4 KiB
Bash

#!/bin/bash
# Deploy Webhook Trigger Script
# Triggers Coolify deployment via webhook or API
# Configuration - Set these in your environment or .env file
# COOLIFY_WEBHOOK_URL - The webhook URL from Coolify dashboard
# COOLIFY_API_URL - Your Coolify instance URL (e.g., https://app.abundancepartners.app)
# COOLIFY_API_TOKEN - Your API token
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Method 1: Trigger via Webhook URL
deploy_via_webhook() {
local webhook_url=$1
if [ -z "$webhook_url" ]; then
log_error "Webhook URL not provided"
exit 1
fi
log_info "Triggering deployment via webhook..."
response=$(curl -s -w "\n%{http_code}" -X POST "$webhook_url")
http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | sed '$d')
if [ "$http_code" -eq 200 ] || [ "$http_code" -eq 201 ]; then
log_info "Deployment triggered successfully"
echo "$body"
else
log_error "Deployment failed with HTTP $http_code"
echo "$body"
exit 1
fi
}
# Method 2: Trigger via Coolify API
deploy_via_api() {
local app_uuid=$1
local api_url=${COOLIFY_API_URL:-"https://app.abundancepartners.app"}
local api_token=$COOLIFY_API_TOKEN
if [ -z "$app_uuid" ] || [ -z "$api_token" ]; then
log_error "App UUID and API token required"
exit 1
fi
log_info "Triggering deployment via API for app: $app_uuid"
response=$(curl -s -w "\n%{http_code}" \
-X POST \
-H "Authorization: Bearer $api_token" \
-H "Content-Type: application/json" \
"${api_url}/api/v1/deploy?uuid=${app_uuid}")
http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | sed '$d')
if [ "$http_code" -eq 200 ] || [ "$http_code" -eq 201 ]; then
log_info "Deployment triggered successfully"
echo "$body"
else
log_error "Deployment failed with HTTP $http_code"
echo "$body"
exit 1
fi
}
# Check deployment status
check_status() {
local app_uuid=$1
local api_url=${COOLIFY_API_URL:-"https://app.abundancepartners.app"}
local api_token=$COOLIFY_API_TOKEN
log_info "Checking deployment status..."
curl -s -H "Authorization: Bearer $api_token" \
"${api_url}/api/v1/applications/${app_uuid}" | jq '.'
}
# Usage
usage() {
echo "Usage: $0 [command] [options]"
echo ""
echo "Commands:"
echo " webhook <webhook_url> Deploy via webhook URL"
echo " api <app_uuid> Deploy via Coolify API"
echo " status <app_uuid> Check deployment status"
echo ""
echo "Environment Variables:"
echo " COOLIFY_API_URL Your Coolify instance URL"
echo " COOLIFY_API_TOKEN Your API token"
echo ""
echo "Examples:"
echo " $0 webhook https://app.abundancepartners.app/api/v1/webhooks/deploy/abc123"
echo " $0 api abc123-def456-ghi789"
echo " COOLIFY_API_TOKEN=your_token $0 api abc123-def456-ghi789"
}
# Main
case "$1" in
webhook)
deploy_via_webhook "$2"
;;
api)
deploy_via_api "$2"
;;
status)
check_status "$2"
;;
*)
usage
exit 1
;;
esac