[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"$f3h32gptffr5dg":3},{"site":4,"app":16,"alternatives":69,"compose":90,"log":91,"changelog":92},{"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":61},"instapaper","Instapaper","instapaper.com","reading-bookmarks",5.99,"Premium","flat","https:\u002F\u002Fwww.instapaper.com\u002Fpremium","2026-08-06",{"caniselfhostit":27},"https:\u002F\u002Fcaniselfhostit.com\u002Finstapaper",[29,30,31,32],"save articles to read later","full-text archive that survives dead links","mobile\u002Foffline reading","tags & search","YES",[35],"wallabag",{"capability_seed":37,"decision_layer":38},"caniselfhostit","original","wallabag archives the full page — not a bookmark, the page — and syncs to its mobile apps and Kobo\u002FKindle. The $72\u002Fyr was for exactly this.",[41,42],"Instapaper's typography polish and tilt-scrolling niceties","Their parser team chasing weird sites — wallabag's extractor occasionally needs a config nudge",{"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",40,"claude-code",[55,56],"logs\u002Finstapaper-wallabag.md","compose\u002Finstapaper-wallabag.yml",[58,59,60],"The image's nginx config hard-binds [::]:80 and crash-loops on kernels booted with ipv6.disable=1 (our verification microVM) — this pair's compose boot is certified by the CI runner","First boot runs Symfony install + migrations and nginx answers nothing for minutes — a healthcheck without a generous start_period declares it dead while it's warming up","SQLite default is fine for one reader; switch to the postgres envs before inviting the household",{"hourly_rate_usd":5,"self_host_cost_usd_mo":62,"net_saving_usd_mo":63,"setup_cost_usd":64,"break_even_months":65,"break_even_date":66,"markup_index":67,"primary_abandoned":68,"verdict_stale":68},3.83,2.16,13.33,6.18,"2027-02-14",1.56,false,[70],{"id":35,"name":35,"tagline":71,"repo":72,"site":73,"license":13,"category":20,"resources":74,"provenance":79,"metrics":80},"Saves the readable article, not the link, and hands it to the phone or e-reader you actually read on.","wallabag\u002Fwallabag","https:\u002F\u002Fwallabag.org",{"ram_min_mb":75,"disk_gb":76,"arm64":77,"containers":78,"external_db":68},1024,5,true,1,{"capability_seed":37,"decision_layer":38},{"id":35,"stars":81,"last_commit":82,"latest_release":83,"docker_pulls":87,"open_issues":88,"fetched_at":89},12891,"2026-08-10T11:15:55Z",{"tag":84,"published_at":85,"url":86},"2.6.14","2025-10-07T08:06:17Z","https:\u002F\u002Fgithub.com\u002Fwallabag\u002Fwallabag\u002Freleases\u002Ftag\u002F2.6.14",null,762,"2026-08-11T03:55:33.596Z","# wallabag — read-it-later with full-page archiving (replaces Instapaper)\nservices:\n  wallabag:\n    image: wallabag\u002Fwallabag:latest\n    container_name: wallabag\n    restart: unless-stopped\n    environment:\n      SYMFONY__ENV__DOMAIN_NAME: http:\u002F\u002Flocalhost:8094\n      # SQLite default keeps it one container; use the postgres envs for real multi-user\n    ports:\n      - \"8094:80\"\n    volumes:\n      - wallabag-data:\u002Fvar\u002Fwww\u002Fwallabag\u002Fdata\n      - wallabag-images:\u002Fvar\u002Fwww\u002Fwallabag\u002Fweb\u002Fassets\u002Fimages\n    healthcheck:\n      # First boot runs Symfony install + migrations before nginx answers — minutes, not seconds.\n      test: [\"CMD-SHELL\", \"curl -sf http:\u002F\u002Flocalhost\u002Fapi\u002Finfo || curl -sf http:\u002F\u002Flocalhost\u002Flogin || exit 1\"]\n      interval: 10s\n      timeout: 5s\n      retries: 60\n      start_period: 180s\n\nvolumes:\n  wallabag-data:\n  wallabag-images:\n","# Timed setup log: Instapaper → wallabag\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- The image's nginx config hard-binds [::]:80 and crash-loops on kernels booted with ipv6.disable=1 (our verification microVM) — this pair's compose boot is certified by the CI runner\n- First boot runs Symfony install + migrations and nginx answers nothing for minutes — a healthcheck without a generous start_period declares it dead while it's warming up\n- SQLite default is fine for one reader; switch to the postgres envs before inviting the household\n\n## Verdict-relevant notes\n\n- API + apps work against self-hosted out of the box (server URL in the app settings).\n",[93],{"date":50,"app":17,"from":87,"to":33,"reason":94},"Initial verdict: wallabag archives the full page.",1786459421839]