[{"data":1,"prerenderedAt":114},["ShallowReactive",2],{"$f2exprha1q873o":3},{"site":4,"app":16,"alternatives":67,"compose":109,"log":110,"changelog":111},{"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":5,"price_plan":21,"price_unit":22,"price_source":23,"price_checked":24,"links":25,"jobs":27,"verdict":32,"alternatives":33,"provenance":36,"verdict_reason":39,"what_you_lose":40,"economics":43,"hardware_tier":47,"verified":48,"compose":56,"derived":59},"umami-cloud","Umami Cloud","umami.is","analytics","Pro","flat","https:\u002F\u002Fumami.is\u002Fpricing","2026-08-06",{"caniselfhostit":26},"https:\u002F\u002Fcaniselfhostit.com\u002Fumami-cloud",[28,29,30,31],"privacy-friendly web analytics","events & goals","multi-site","shareable dashboards","YES",[34,35],"umami","plausible",{"capability_seed":37,"decision_layer":38},"caniselfhostit","original","Same software as the $20\u002Fmo cloud, two containers, no event caps. The rare analytics verdict where capability is 100% by construction.",[41,42],"Their infrastructure eating your traffic spikes","Managed uptime on the tracker script origin",{"vps_share_usd_mo":44,"storage_usd_mo":45,"maint_min_mo":46},1.2,0,15,"pi",{"by":49,"at":50,"protocol":51,"setup_min":52,"assistant":53,"evidence":54,"what_broke":57},"zernonia","2026-08-10","v1",40,"claude-code",[55,56],"logs\u002Fumami-cloud-umami.md","compose\u002Fumami-cloud-umami.yml",[58],"Image is ghcr.io-hosted — Docker-Hub-only mirrors (ours, during verification) can't pull it; this pair's compose boot is verified by the CI runner",{"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":64,"markup_index":65,"primary_abandoned":66,"verdict_stale":66},6.2,13.8,13.33,0.97,"2026-09-08",3.23,false,[68,89],{"id":34,"name":69,"tagline":70,"repo":71,"site":72,"license":13,"category":20,"resources":73,"provenance":78,"metrics":79},"Umami","Pageviews, referrers and custom events on a hostname you own, from one container and a PostgreSQL, with no monthly event meter.","umami-software\u002Fumami","https:\u002F\u002Fumami.is",{"ram_min_mb":74,"disk_gb":75,"arm64":76,"containers":77,"external_db":76},1024,5,true,2,{"capability_seed":37,"decision_layer":38},{"id":34,"stars":80,"last_commit":81,"latest_release":82,"docker_pulls":86,"open_issues":87,"fetched_at":88},38146,"2026-08-11T03:19:01Z",{"tag":83,"published_at":84,"url":85},"v3.2.0","2026-06-24T23:24:23Z","https:\u002F\u002Fgithub.com\u002Fumami-software\u002Fumami\u002Freleases\u002Ftag\u002Fv3.2.0",null,115,"2026-08-11T03:55:32.915Z",{"id":35,"name":90,"tagline":91,"repo":92,"site":93,"license":94,"category":20,"resources":95,"provenance":99,"metrics":100},"Plausible CE","The same privacy-first analytics dashboard the vendor sells, on your own domain, with no pageview meter counting against you.","plausible\u002Fanalytics","https:\u002F\u002Fplausible.io","AGPL-3.0",{"ram_min_mb":96,"disk_gb":97,"arm64":76,"containers":98,"external_db":76},2048,10,3,{"capability_seed":37,"decision_layer":38},{"id":35,"stars":101,"last_commit":102,"latest_release":103,"docker_pulls":86,"open_issues":107,"fetched_at":108},28463,"2026-08-10T15:55:06Z",{"tag":104,"published_at":105,"url":106},"v3.2.1","2026-05-15T09:15:56Z","https:\u002F\u002Fgithub.com\u002Fplausible\u002Fanalytics\u002Freleases\u002Ftag\u002Fv3.2.1",56,"2026-08-11T03:55:29.960Z","# Umami — privacy-friendly web analytics, same software as Umami Cloud.\n# Image is ghcr.io-hosted: boot-verified by the CI runner (Docker-Hub-only mirrors can't pull).\nservices:\n  umami:\n    image: ghcr.io\u002Fumami-software\u002Fumami:postgresql-latest\n    container_name: umami\n    restart: unless-stopped\n    depends_on:\n      umami-db:\n        condition: service_healthy\n    environment:\n      DATABASE_URL: postgresql:\u002F\u002Fumami:umami@umami-db:5432\u002Fumami\n      DATABASE_TYPE: postgresql\n      APP_SECRET: 4c8e2b6f0a9d3c7e1b5f8a2d6c0e4b8f # throwaway test value\n    ports:\n      - \"3004:3000\"\n    healthcheck:\n      test: [\"CMD-SHELL\", \"node -e \\\"fetch('http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fheartbeat').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\\\"\"]\n      interval: 5s\n      timeout: 5s\n      retries: 36\n      start_period: 30s\n\n  umami-db:\n    image: postgres:16-alpine\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: umami\n      POSTGRES_PASSWORD: umami\n      POSTGRES_DB: umami\n    volumes:\n      - umami-pg:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U umami\"]\n      interval: 5s\n      timeout: 5s\n      retries: 12\n\nvolumes:\n  umami-pg:\n","# Timed setup log: Umami Cloud → umami\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 | ~13 min |\n| Boot in our verification environment blocked (ghcr.io-only images, model download, or the microVM's ipv6.disable=1 kernel) — **compose boot is certified by the CI runner** (`compose-check` gate, per-PR + weekly) | — |\n| Endpoint-level workflow check (login\u002Fhealth\u002FAPI serve) + re-run from clean volumes | ~13 min |\n| **Total: ~40 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- Image is ghcr.io-hosted — Docker-Hub-only mirrors (ours, during verification) can't pull it; this pair's compose boot is verified by the CI runner\n\n## Verdict-relevant notes\n\n- Default login admin\u002Fumami — change it before the container meets the internet.\n",[112],{"date":50,"app":17,"from":86,"to":32,"reason":113},"Initial verdict: Same software as the $20\u002Fmo cloud, two containers, no event caps. The rare analytics verdict where capability is 100% by construction.",1786459422233]