[{"data":1,"prerenderedAt":284},["ShallowReactive",2],{"changelog":3},{"id":4,"title":5,"body":6,"description":276,"extension":277,"meta":278,"navigation":279,"path":280,"seo":281,"stem":282,"__hash__":283},"changelog\u002Fchangelog.md","Changelog",{"type":7,"value":8,"toc":266},"minimark",[9,39,44,50,68,72,77,87,91,123,127,131,141,145,160,164,167,171],[10,11,12,13,20,21,26,27,32,33,38],"p",{},"freshdock follows ",[14,15,19],"a",{"href":16,"rel":17},"https:\u002F\u002Fkeepachangelog.com\u002F",[18],"nofollow","Keep a Changelog"," and ",[14,22,25],{"href":23,"rel":24},"https:\u002F\u002Fsemver.org\u002F",[18],"Semantic Versioning",". This mirrors the project's ",[14,28,31],{"href":29,"rel":30},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fblob\u002Fmain\u002FCHANGELOG.md",[18],"CHANGELOG.md",", the canonical, always-current source. Full release artifacts (binaries, images) are on the ",[14,34,37],{"href":35,"rel":36},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Freleases",[18],"releases page",".",[40,41,43],"h2",{"id":42},"_121-16-june-2026","1.2.1 (16 June 2026)",[10,45,46],{},[47,48,49],"strong",{},"Other",[51,52,53],"ul",{},[54,55,56,57,61,62,67],"li",{},"Bump ",[58,59,60],"code",{},"toml"," from 0.8.23 to 1.1.2 (spec 1.1.0). (",[14,63,66],{"href":64,"rel":65},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F50",[18],"#50",")",[40,69,71],{"id":70},"_120-16-june-2026","1.2.0 (16 June 2026)",[10,73,74],{},[47,75,76],{},"Added",[51,78,79],{},[54,80,81,82,67],{},"Credential observability. Surface registry-auth state, and survive rejected tokens instead of failing the whole check. (",[14,83,86],{"href":84,"rel":85},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F45",[18],"#45",[10,88,89],{},[47,90,49],{},[51,92,93,101,109],{},[54,94,95,96,67],{},"Publish documentation as an mdBook site on GitHub Pages. (",[14,97,100],{"href":98,"rel":99},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F46",[18],"#46",[54,102,103,104,67],{},"Add monthly Dependabot for cargo and GitHub Actions. (",[14,105,108],{"href":106,"rel":107},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F47",[18],"#47",[54,110,111,112,117,118,67],{},"Add a funding option, project logo, and README header. (",[14,113,116],{"href":114,"rel":115},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F41",[18],"#41",", ",[14,119,122],{"href":120,"rel":121},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F44",[18],"#44",[40,124,126],{"id":125},"_110-10-june-2026","1.1.0 (10 June 2026)",[10,128,129],{},[47,130,76],{},[51,132,133],{},[54,134,135,136,67],{},"Full environment-variable config coverage, onboarding docs, and node24 release actions. (",[14,137,140],{"href":138,"rel":139},"https:\u002F\u002Fgithub.com\u002FTurbootzz\u002Ffreshdock\u002Fpull\u002F39",[18],"#39",[40,142,144],{"id":143},"_100-10-june-2026","1.0.0 (10 June 2026)",[10,146,147,148,151,152,155,156,159],{},"First stable release. Same surface as ",[58,149,150],{},"1.0.0-rc.1",", promoted after a homelab beta. ",[58,153,154],{},"watch",", read-only ",[58,157,158],{},"check",", and the recreate health-gate were verified on Docker, Portainer, and TrueNAS. No functional changes since the candidate.",[40,161,163],{"id":162},"_100-rc1-9-june-2026","1.0.0-rc.1 (9 June 2026)",[10,165,166],{},"First release candidate. Closes Phases 0 to 7 of the roadmap.",[10,168,169],{},[47,170,76],{},[51,172,173,179,185,201,226,233,236,239,253,256,263],{},[54,174,175,178],{},[58,176,177],{},"freshdock check",": read-only update-status table. Lists opted-in containers, resolves the latest registry digest per unique image (deduped to respect Docker Hub's anonymous rate budget), and reports which have updates. Never mutates state.",[54,180,181,184],{},[58,182,183],{},"freshdock recreate \u003Cname>",": manual single-container update. The sequence is inspect → pull → stop → rename → create → start, health-gated with automatic rollback on failure.",[54,186,187,190,191,117,194,117,197,200],{},[58,188,189],{},"freshdock run",": scheduler daemon polling opted-in containers on their per-mode cadence (",[58,192,193],{},"--interval",[58,195,196],{},"--tick",[58,198,199],{},"--stop-timeout","); graceful SIGINT\u002FSIGTERM drain.",[54,202,203,204,117,207,117,210,117,213,117,216,117,218,221,222,225],{},"Per-container update modes via Docker labels: ",[58,205,206],{},"live",[58,208,209],{},"nightly",[58,211,212],{},"weekly",[58,214,215],{},"monthly",[58,217,154],{},[58,219,220],{},"off",". Opt-in by default (",[58,223,224],{},"freshdock.enable=true",").",[54,227,228,229,232],{},"Per-container cron override (",[58,230,231],{},"freshdock.schedule",") with a hand-rolled 5-field parser; calendar modes evaluated in system local time with DST-gap handling.",[54,234,235],{},"Health-gated rollback: a new container must pass its healthcheck (or a grace period) before the old one is removed; otherwise it is restored.",[54,237,238],{},"Multi-registry digest checks: Docker Hub (anonymous + authenticated), GHCR, Quay.io, lscr.io, and any OCI bearer-token registry.",[54,240,241,242,245,246,245,249,252],{},"Notifications: webhook, Discord, Telegram, and SMTP backends, each subscribable to a subset of the ",[58,243,244],{},"available"," \u002F ",[58,247,248],{},"succeeded",[58,250,251],{},"failed"," triggers.",[54,254,255],{},"Image cleanup: remove the superseded image after a healthy update; optional daemon-wide dangling prune.",[54,257,258,259,262],{},"Global default mode for enabled containers with no explicit ",[58,260,261],{},"freshdock.mode"," label.",[54,264,265],{},"Multi-arch container image (amd64, arm64, armv7) on GHCR and static-musl release binaries for the same three architectures.",{"title":267,"searchDepth":268,"depth":268,"links":269},"",3,[270,272,273,274,275],{"id":42,"depth":271,"text":43},2,{"id":70,"depth":271,"text":71},{"id":125,"depth":271,"text":126},{"id":143,"depth":271,"text":144},{"id":162,"depth":271,"text":163},"freshdock release history: what shipped in each version, newest first.","md",{},true,"\u002Fchangelog",{"title":5,"description":276},"changelog","zNRX-3uLDQj8fMDwSN_8asepU82x2l3t7LuwGmZsLmg",1782377496639]