{"id":865,"slug":"client-bjf-service-uptime-and-tunnel-v2","title":"B&J — service uptime, memory footprint, and tunnel reachability (v2, verified 2026-05-24)","kind":"reference","scope":"client-case-studies","status":"current","audiences":["kevin","candid-team","client-prospect"],"topics":["deployment","hosting-platforms","client-boucher-jones","case-study-source","kpi-candidates"],"reference_body":"## `boucherjones-web.service` snapshot\n\n| Metric | Value |\n|---|---|\n| Active state | **active (running)** |\n| Uptime since last restart | **2h 36min** (since 2026-05-23 21:39:42 UTC — yesterday's audit-closure deploy) |\n| Memory (current) | **63.0 MB** |\n| Memory (peak) | **68.0 MB** |\n| CPU time consumed | **668 ms** total across 2h 36min |\n| Tasks | 13 |\n| Process | `next-server (v16.2.6)` |\n| Deploy invocation | `git pull && npm ci && npm run build && sudo systemctl restart boucherjones-web` |\n\n## Journal summary (last 1,000 lines)\n\n| Severity | Count |\n|---|---|\n| Lines containing \"error\" | **38** |\n| Lines containing \"warn\" | **0** |\n\nThe 38 \"error\" lines are all the same incident: a short window on 2026-05-19 where the unit booted before `npm ci` had finished writing the `next` binary in `node_modules`, producing repeated `Error: Cannot find module '/opt/boucherjones-web/node_modules/next/dist/bin/next'` on restart-loop until the deploy completed. The unit has been healthy since. **No application-level errors in the current window.**\n\n## Cloudflare tunnel\n\n| Check | Result |\n|---|---|\n| `cloudflared` installed | yes — version **2026.3.0** (built 2026-03-09) |\n| `https://bjweb.candidcreative.ca/` reachable | **200 OK** (initial response 5.2s — likely a cold revalidation; subsequent hits ~50–100 ms) |\n| `https://bjweb.candidcreative.ca/agriculture` reachable | **200 OK** |\n| Tunnel ingress | routes to `127.0.0.1:3201` per `/etc/cloudflared/config.yml` |\n\n## What this enables in case-study copy\n\n> **\"Production memory footprint sits at 63 MB; CPU is effectively idle between requests (668 ms total CPU over 2h 36m of uptime).\"**\n\n> **\"Self-hosted, Cloudflare-fronted, single LXC container — ~$10–20/month all-in. No subscription stack.\"** (Cost number cross-referenced from [[client-bjf-marketing-site-stack]].)","rationale_body":null,"metadata":null,"links":{"outgoing":[{"slug":"client-bjf-marketing-site-stack","title":"B&J marketing site stack (`bj-next`, dev URL `bjweb.candidcreative.ca`) — VERIFIED LIVE STACK","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-kpi-candidates","title":"B&J KPI candidates — every defensible metric, with source and confidence","kind":"reference","scope":"client-case-studies","link_type":"relates-to"}],"incoming":[{"slug":"client-bjf-case-study-source-v2","title":"Boucher & Jones — case-study source material, v2 (technical facts, 2026-05-24)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"}]},"created_at":"2026-05-24T01:16:37.156Z","updated_at":"2026-05-24T01:16:37.156Z"}