#!/usr/bin/env bash set -euo pipefail # Run the Solstice Forge Integration (webhook listener) with local defaults. # Intended for local development with Hookdeck CLI forwarding. # Example (in another terminal): # hookdeck listen http://localhost:8080/webhooks/forgejo command -v cargo >/dev/null 2>&1 || { echo "cargo is required" >&2; exit 127; } export RUST_LOG=${RUST_LOG:-info} # HTTP listener configuration export HTTP_ADDR=${HTTP_ADDR:-0.0.0.0:8080} export WEBHOOK_PATH=${WEBHOOK_PATH:-/webhooks/forgejo} # Optional shared secret used to verify webhook signatures. Leave empty for dev. export WEBHOOK_SECRET=${WEBHOOK_SECRET:-} # AMQP defaults for local dev (RabbitMQ) export AMQP_URL=${AMQP_URL:-amqp://127.0.0.1:5672/%2f} export AMQP_EXCHANGE=${AMQP_EXCHANGE:-solstice.jobs} export AMQP_QUEUE=${AMQP_QUEUE:-solstice.jobs.v1} export AMQP_ROUTING_KEY=${AMQP_ROUTING_KEY:-jobrequest.v1} export SOL_RUNS_ON=ubuntu-22.04 # Note: Other optional envs are respected by the binary if set: # FORGEJO_BASE_URL, FORGEJO_TOKEN, FORGE_CONTEXT # ORCH_HTTP_BASE, S3_ENDPOINT, S3_BUCKET, RUNS_ON_DEFAULT, RUNS_ON_MAP exec cargo run -p forge-integration -- \ --http-addr "$HTTP_ADDR" \ --webhook-path "$WEBHOOK_PATH"