[{"data":1,"prerenderedAt":93},["ShallowReactive",2],{"$f2aoiq88ee47fx":3},{"site":4,"app":16,"alternatives":66,"compose":88,"log":89,"changelog":90},{"hourly_rate_usd":5,"break_even_window_mo":6,"reference_env":7,"attribution":8},20,18,"Fresh Debian 12, Docker + Compose preinstalled, 2 GB RAM \u002F 2 vCPU ($5-class VPS)",{"caniselfhostit":9},{"name":10,"url":11,"repo":12,"license":13,"author":14,"note":15},"caniselfhostit.com","https:\u002F\u002Fcaniselfhostit.com","https:\u002F\u002Fgithub.com\u002Fcaniselfhostit\u002Fcaniselfhostit","MIT","Jashanpreet Singh","Capability data (app → replacement pairings, pricing snapshots) seeded from this dataset. They answer 'can you run it, and how' — go there for guided installs.",{"id":17,"name":18,"domain":19,"category":20,"price_usd_mo":21,"price_plan":22,"price_unit":23,"price_source":24,"price_checked":25,"links":26,"jobs":28,"verdict":33,"alternatives":34,"provenance":36,"verdict_reason":39,"what_you_lose":40,"economics":43,"hardware_tier":47,"verified":48,"compose":56,"derived":59},"cronitor","Cronitor","cronitor.io","monitoring",2,"Business","usage","https:\u002F\u002Fcronitor.io\u002Fpricing","2026-08-05",{"caniselfhostit":27},"https:\u002F\u002Fcaniselfhostit.com\u002Fcronitor",[29,30,31,32],"dead-man-switch cron monitoring","alerting (email\u002Fwebhook\u002FSlack)","status badges","schedules\u002Fgrace windows","NOT_REALLY",[35],"healthchecks",{"capability_seed":37,"decision_layer":38},"caniselfhostit","original","Healthchecks is excellent and installs in half an hour. Cronitor's solo tier is $2\u002Fmo. If your time is worth anything at all, the subscription wins — and the monitor watching your cron jobs shouldn't share fate with the box running them.",[41,42],"Independence: self-hosted on the same infra it watches, an outage takes out the alarm too","$24\u002Fyr of not thinking",{"vps_share_usd_mo":44,"storage_usd_mo":45,"maint_min_mo":46},0.5,0,10,"pi",{"by":49,"at":50,"protocol":51,"setup_min":52,"assistant":53,"evidence":54,"what_broke":57},"zernonia","2026-08-10","v1",35,"claude-code",[55,56],"logs\u002Fcronitor-healthchecks.md","compose\u002Fcronitor-healthchecks.yml",[58],"The image's built-in healthcheck probes the database connection, and the sqlite default has no writable path in the stock container — it 500s forever until you either mount the sqlite dir correctly or (better) give it the Postgres it actually wants",{"hourly_rate_usd":5,"self_host_cost_usd_mo":60,"net_saving_usd_mo":61,"setup_cost_usd":62,"break_even_months":63,"break_even_date":63,"markup_index":64,"primary_abandoned":65,"verdict_stale":65},3.83,-1.83,11.67,null,0.52,false,[67],{"id":35,"name":68,"tagline":69,"repo":70,"site":71,"license":72,"category":20,"resources":73,"provenance":78,"metrics":79},"Healthchecks","A dead-man's switch for every cron job you own, with no monitor quota and no per-check billing.","healthchecks\u002Fhealthchecks","https:\u002F\u002Fhealthchecks.io","BSD-3-Clause",{"ram_min_mb":74,"disk_gb":75,"arm64":76,"containers":77,"external_db":65},1024,5,true,1,{"capability_seed":37,"decision_layer":38},{"id":35,"stars":80,"last_commit":81,"latest_release":82,"docker_pulls":63,"open_issues":86,"fetched_at":87},10231,"2026-08-10T07:48:37Z",{"tag":83,"published_at":84,"url":85},"v4.3","2026-07-14T10:15:08Z","https:\u002F\u002Fgithub.com\u002Fhealthchecks\u002Fhealthchecks\u002Freleases\u002Ftag\u002Fv4.3",53,"2026-08-11T03:55:22.705Z","# Healthchecks — cron job monitoring (tested against Cronitor's job list; see the verdict\n# for why the $2\u002Fmo subscription out-competes your own attention)\nservices:\n  healthchecks:\n    image: healthchecks\u002Fhealthchecks:latest\n    container_name: healthchecks\n    restart: unless-stopped\n    depends_on:\n      hc-db:\n        condition: service_healthy\n    environment:\n      SECRET_KEY: 7f3a9c1e5b8d2f6a0c4e8b2d6f0a4c8e # throwaway test value\n      SITE_ROOT: http:\u002F\u002Flocalhost:8089\n      ALLOWED_HOSTS: \"*\"\n      DEBUG: \"False\"\n      DB: postgres\n      DB_HOST: hc-db\n      DB_NAME: hc\n      DB_USER: hc\n      DB_PASSWORD: hc\n    ports:\n      - \"8089:8000\"\n    # No healthcheck override: the image ships its own (.\u002Ffetchstatus.py probes\n    # \u002Fapi\u002Fv3\u002Fstatus\u002F, which checks the DB connection — sqlite without a writable dir\n    # fails it, which is why this compose brings postgres).\n\n  hc-db:\n    image: postgres:16-alpine\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: hc\n      POSTGRES_PASSWORD: hc\n      POSTGRES_DB: hc\n    volumes:\n      - hc-pg:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U hc\"]\n      interval: 5s\n      timeout: 5s\n      retries: 12\n\nvolumes:\n  hc-pg:\n","# Timed setup log: Cronitor → healthchecks\n\n**Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10\n**Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 \u002F Compose v5.1\n\n## Timeline\n\n| Step | Time |\n|---|---|\n| Read upstream docs, draft compose with healthcheck | ~11 min |\n| **Boot: all services healthy in 12 s (measured, `compose up --wait`)** | — |\n| Endpoint-level workflow check (login\u002Fhealth\u002FAPI serve) + re-run from clean volumes | ~11 min |\n| **Total: ~35 min** | |\n\nBoot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this\nsession including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow —\ndispute anything that doesn't reproduce (CONTRIBUTING.md).\n\n## What broke\n\n- The image's built-in healthcheck probes the database connection, and the sqlite default has no writable path in the stock container — it 500s forever until you either mount the sqlite dir correctly or (better) give it the Postgres it actually wants\n\n## Verdict-relevant notes\n\n- Same cheap-SaaS pattern as Pinboard: capability is all there; the economics simply never arrive. Run it if you already have a fleet and want internal-only pings.\n",[91],{"date":50,"app":17,"from":63,"to":33,"reason":92},"Initial verdict: Healthchecks is excellent and installs in half an hour. Cronitor's solo tier is $2\u002Fmo. If your time is worth anything at all, the subscription wins.",1786459421183]