You run services across the Cocapn fleet. Vessel Tuner scans your live endpoints from the outside, scoring each on health, latency, security headers, and specification compliance. It runs inside your own Cloudflare account.
Live Example: vessel-tuner.casey-digennaro.workers.dev
- Fork this repository.
- Deploy it to Cloudflare Workers. It has zero dependencies.
- Edit the
VESSELSarray in the source with your own subdomains or GitHub paths. - Your tuner starts scanning immediately on the first request.
The tool performs a parallel fetch to each vessel’s public endpoint and its source repository. It then computes a weighted score based on:
- HTTP health and round-trip latency
- Presence of key security headers (CSP, HSTS, etc.)
- Validity of the
vessel.jsonspecification
Results are stored in Cloudflare KV, retaining the last 100 scans for basic trend viewing. The frontend shows a dashboard with pass/fail breakdowns and recurring issues.
- Parallel Scanning: Checks all defined vessels concurrently. A scan of 60 endpoints typically completes within 10 seconds under ideal network conditions.
- Weighted Scoring: Applies consistent scoring across health, latency, security, and spec compliance.
- Issue Aggregation: Highlights the most common failures across your fleet.
- Scan History: KV storage retains the last 100 scan results for simple trend observation.
- Fork-first Design: You control the code, the list of vessels, and all data.
- Minimal Codebase: Core logic is under 150 lines of TypeScript.
- Single-Region Latency: Latency is measured from the single Cloudflare region where your Worker runs, not from a global network. This gives a consistent baseline but does not represent worldwide user experience.
- Concurrency Limits: Scanning a very large number of vessels (e.g., 200+) in one request may hit subrequest or timing limits.
- GitHub Rate Limits: Frequent scans of many GitHub repositories may encounter API rate limiting without a configured token.
A single Cloudflare Worker script handles:
- Fetching each vessel endpoint and its GitHub source concurrently with timeouts.
- Computing scores and aggregating common issues.
- Storing results in KV.
- Serving a static HTML dashboard that visualizes the data.