Ambit Signal

api | install-astro | install-caddy | install-cloudflare | install-express | install-js-tag | install-netlify | install-nginx | install-shopify | install-squarespace | install-sveltekit | install-vercel-next | install-webflow | install-wix | install-wordpress | mcp | outcomes | privacy | quickstart | troubleshooting

Install: Caddy (self-hosted)

Collection: server collector (sees bots and humans). Replace example.com and st_YOURSITEID with your site's values (dashboard, list_sites, or GET /v1/sites). The MCP tool get_install_snippet(platform="caddy", site_id=...) returns this page pre-filled.

Steps

  1. Add the log block below inside the site block, then caddy reload.
  2. Run the shipper as a service: AMBIT_SIGNAL_SITE=... AMBIT_SIGNAL_SECRET=... python3 ship.py /var/log/caddy/ambit-signal.log --format caddy --state /var/lib/ambit-signal/offset.json
  3. roll_keep_for bounds raw-IP retention; keep it short.

File: Caddyfile (inside the site block)

log {
    output file /var/log/caddy/ambit-signal.log {
        roll_size 50MiB
        roll_keep 5
        roll_keep_for 168h
    }
    format json
}

Configuration

Name Value
AMBIT_SIGNAL_SITE example.com
AMBIT_SIGNAL_SECRET <SECRET>

<SECRET> is the site secret shown once when the site was created. Lost it? Rotate it in the dashboard (Site > Keys) or ask ambit; the old secret stops working immediately.

Verify

Load any page of example.com once, then check: MCP tool verify_install(site_id="st_YOURSITEID") or GET https://signal.ambit.agency/v1/sites/st_YOURSITEID/status with your API key. "receiving": true means events are arriving (usually within a minute).

curl -s -H "Authorization: Bearer $AMBIT_SIGNAL_API_KEY" \
  https://signal.ambit.agency/v1/sites/st_YOURSITEID/status

Expected: "receiving": true. If not, see troubleshooting.

Notes