g1t/apps/status/wrangler.jsonc

66 lines2,960 bytesCodeBlame
1{
2 "$schema": "../../node_modules/wrangler/config-schema.json",
3 "name": "g1t-status",
4 "account_id": "1e6f2cffa3f445920836e8ebe446bb58",
5 "compatibility_date": "2026-09-26",
6 "main": "./src/index.ts",
7 "workers_dev": false,
8 "preview_urls": false,
9 // The status page. A Worker of its own, bound to nothing it reports on
10 // but billing, so it stays up when the site does not. A custom domain,
11 // whose DNS record Cloudflare makes on the first deploy.
12 "routes": [{ "pattern": "status.g1t.sh", "custom_domain": true }],
13 // Every minute: check each part and keep the result.
14 "triggers": { "crons": ["* * * * *"] },
15 // The fonts, from packages/theme, served from the page's own origin.
16 "rules": [{ "type": "Data", "globs": ["**/*.woff2"], "fallthrough": false }],
17 // Each part's last check, 90 days of daily tallies, and incidents.
18 // Made by `npx wrangler d1 create g1t-status`; put its id here.
19 "d1_databases": [
20 {
21 "binding": "DB",
22 "database_name": "g1t-status",
23 "database_id": "dba85721-96dc-401d-9121-a6c587d614b2",
24 "migrations_dir": "migrations"
25 }
26 ],
27 // Billing has no public address: its price book is read through this.
28 // Nothing else is bound, so every other check goes over the internet.
29 "services": [{ "binding": "BILLING", "service": "g1t-billing" }],
30 // Email to subscribers (confirmations, incident and maintenance
31 // updates) and the staff alert for detected drafts, through Cloudflare
32 // Email Sending, as identity sends its own. Subscriptions also need the
33 // STATUS_SECRET secret, which signs unsubscribe links:
34 // npx wrangler secret put STATUS_SECRET
35 // Without either, the page offers the feeds only.
36 //
37 // The deploy tool says when a deploy starts and finishes (POST /deploys,
38 // bearer STATUS_DEPLOY_TOKEN), so restarts do not draft incidents.
39 // Optional; without it, deploys are not announced:
40 // npx wrangler secret put STATUS_DEPLOY_TOKEN
41 "send_email": [{ "name": "EMAIL", "remote": true }],
42 "vars": {
43 // Where each part is. An empty one leaves that part off the page,
44 // for an installation that does not run it.
45 "SITE_URL": "https://g1t.sh",
46 "API_URL": "https://api.g1t.sh",
47 "MCP_URL": "https://mcp.g1t.sh",
48 "DOCS_URL": "https://docs.g1t.sh",
49 "PAGES_URL": "https://g1t.page",
50 "MODELS_URL": "https://models.g1t.sh",
51 // A public repository that always exists, whose branches are listed
52 // as a clone would.
53 "PROBE_REPO": "flagon-io/g1t",
54 "SUPPORT_URL": "https://g1t.sh/support",
55 // This page's own address, for links in email and the feeds.
56 "STATUS_URL": "https://status.g1t.sh",
57 // sudo, for the link in the staff alert.
58 "SUDO_URL": "https://sudo.g1t.sh",
59 // Who hears when a part fails three checks in a row and a draft
60 // incident is made. Empty sends none.
61 "STATUS_ALERT_EMAIL": "hey@flagon.io",
62 "STATUS_FROM": "g1t status <noreply@g1t.sh>",
63 "OG_IMAGE": "https://og.g1t.sh/image?path=%2Fstatus&v=2"
64 },
65 "observability": { "enabled": true }
66}