[{"data":1,"prerenderedAt":333},["ShallowReactive",2],{"navigation_docs":3,"-docs-administration-updates":130,"-docs-administration-updates-surround":328},[4,25,70,90,115],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation","i-lucide-terminal",{"title":21,"path":22,"stem":23,"icon":24},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F3.quickstart","i-lucide-rocket",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Deploy","\u002Fdocs\u002Fdeploy","docs\u002F2.deploy",[30,35,40,45,50,55,60,65],{"title":31,"path":32,"stem":33,"icon":34},"Projects and services","\u002Fdocs\u002Fdeploy\u002Fprojects-and-services","docs\u002F2.deploy\u002F1.projects-and-services","i-lucide-folder-kanban",{"title":36,"path":37,"stem":38,"icon":39},"Docker images","\u002Fdocs\u002Fdeploy\u002Fdocker-images","docs\u002F2.deploy\u002F2.docker-images","i-lucide-container",{"title":41,"path":42,"stem":43,"icon":44},"Git repositories","\u002Fdocs\u002Fdeploy\u002Fgit-repositories","docs\u002F2.deploy\u002F3.git-repositories","i-lucide-git-branch",{"title":46,"path":47,"stem":48,"icon":49},"Databases","\u002Fdocs\u002Fdeploy\u002Fdatabases","docs\u002F2.deploy\u002F4.databases","i-lucide-database",{"title":51,"path":52,"stem":53,"icon":54},"Environment variables","\u002Fdocs\u002Fdeploy\u002Fenvironment-variables","docs\u002F2.deploy\u002F5.environment-variables","i-lucide-key-round",{"title":56,"path":57,"stem":58,"icon":59},"Deployments and logs","\u002Fdocs\u002Fdeploy\u002Fdeployments","docs\u002F2.deploy\u002F6.deployments","i-lucide-scroll-text",{"title":61,"path":62,"stem":63,"icon":64},"Deploy hooks","\u002Fdocs\u002Fdeploy\u002Fdeploy-hooks","docs\u002F2.deploy\u002F7.deploy-hooks","i-lucide-webhook",{"title":66,"path":67,"stem":68,"icon":69},"Domains and HTTPS","\u002Fdocs\u002Fdeploy\u002Fdomains","docs\u002F2.deploy\u002F8.domains","i-lucide-lock",{"title":71,"icon":6,"path":72,"stem":73,"children":74,"page":6},"Backups","\u002Fdocs\u002Fbackups","docs\u002F3.backups",[75,80,85],{"title":76,"path":77,"stem":78,"icon":79},"Backup destinations","\u002Fdocs\u002Fbackups\u002Fbackup-destinations","docs\u002F3.backups\u002F1.backup-destinations","i-lucide-hard-drive-upload",{"title":81,"path":82,"stem":83,"icon":84},"Database backups","\u002Fdocs\u002Fbackups\u002Fdatabase-backups","docs\u002F3.backups\u002F2.database-backups","i-lucide-archive-restore",{"title":86,"path":87,"stem":88,"icon":89},"Backing up Harblet","\u002Fdocs\u002Fbackups\u002Fharblet-backups","docs\u002F3.backups\u002F3.harblet-backups","i-lucide-shield-check",{"title":91,"icon":6,"path":92,"stem":93,"children":94,"page":6},"Administration","\u002Fdocs\u002Fadministration","docs\u002F4.administration",[95,100,105,110],{"title":96,"path":97,"stem":98,"icon":99},"Harblet's domain","\u002Fdocs\u002Fadministration\u002Fharblet-domain","docs\u002F4.administration\u002F1.harblet-domain","i-lucide-globe",{"title":101,"path":102,"stem":103,"icon":104},"Servers","\u002Fdocs\u002Fadministration\u002Fservers","docs\u002F4.administration\u002F2.servers","i-lucide-server",{"title":106,"path":107,"stem":108,"icon":109},"Team and account","\u002Fdocs\u002Fadministration\u002Fteam","docs\u002F4.administration\u002F3.team","i-lucide-users",{"title":111,"path":112,"stem":113,"icon":114},"Updates","\u002Fdocs\u002Fadministration\u002Fupdates","docs\u002F4.administration\u002F4.updates","i-lucide-refresh-cw",{"title":116,"icon":6,"path":117,"stem":118,"children":119,"page":6},"Reference","\u002Fdocs\u002Freference","docs\u002F5.reference",[120,125],{"title":121,"path":122,"stem":123,"icon":124},"Troubleshooting","\u002Fdocs\u002Freference\u002Ftroubleshooting","docs\u002F5.reference\u002F1.troubleshooting","i-lucide-life-buoy",{"title":126,"path":127,"stem":128,"icon":129},"License","\u002Fdocs\u002Freference\u002Flicense","docs\u002F5.reference\u002F2.license","i-lucide-scale",{"id":131,"title":111,"body":132,"description":321,"extension":322,"links":323,"meta":324,"navigation":325,"path":112,"seo":326,"stem":113,"__hash__":327},"docs\u002Fdocs\u002F4.administration\u002F4.updates.md",{"type":133,"value":134,"toc":309},"minimark",[135,148,152,157,193,196,205,209,215,239,246,250,253,262,273,276,280,304],[136,137,138,139,143,144,147],"p",{},"Harblet checks GitHub for new releases at most once an hour. When one is out, admins see an ",[140,141,142],"strong",{},"Update"," badge next to ",[140,145,146],{},"General"," in the sidebar.",[149,150,151],"note",{},"Updating is for admins.",[153,154,156],"h2",{"id":155},"update-harblet","Update Harblet",[158,159,161,166,183,186],"steps",{"level":160},"3",[162,163,165],"h3",{"id":164},"read-the-release-notes","Read the release notes",[136,167,168,169,172,173,175,176,178,179,182],{},"Go to ",[140,170,171],{},"Settings"," → ",[140,174,146],{},". The ",[140,177,111],{}," card shows the installed version and the new one. Click ",[140,180,181],{},"Release notes"," to see what changed.",[162,184,142],{"id":185},"update",[136,187,188,189,192],{},"Click ",[140,190,191],{},"Update to"," the new version. Harblet downloads the new version first and only then restarts with it. The page reloads when the new version is ready.",[136,194,195],{},"Harblet is unreachable for a few seconds while it restarts. Your services keep running, and builds and deployments that were running are picked up again.",[197,198,199,200,204],"tip",{},"Take a ",[201,202,203],"a",{"href":87},"backup of Harblet"," before you update. Harblet doesn't take one by itself.",[153,206,208],{"id":207},"if-the-update-fails","If the update fails",[136,210,211,212,214],{},"If the new version can't be downloaded or doesn't start, nothing changes: Harblet keeps running the installed version, and the ",[140,213,111],{}," card shows why. Common reasons:",[216,217,218,222,230],"ul",{},[219,220,221],"li",{},"The release is brand new and its image isn't published yet. Try again a few minutes later.",[219,223,224,225,229],{},"The server can't reach ",[226,227,228],"code",{},"ghcr.io",", where Harblet's images are published.",[219,231,224,232,235,236,238],{},[226,233,234],{},"api.github.com",". Then the ",[140,237,111],{}," card shows that checking for a newer version failed.",[136,240,241,242,245],{},"Harblet can't go back to an older version from the browser. See ",[201,243,121],{"href":244},"\u002Fdocs\u002Freference\u002Ftroubleshooting#an-update-doesnt-start"," if a new version doesn't start after the update.",[153,247,249],{"id":248},"k3s-upgrades","k3s upgrades",[136,251,252],{},"Each Harblet release comes with the k3s version it was tested with. After an update to a release with a newer k3s version, Harblet upgrades every server by itself:",[254,255,256,259],"ol",{},[219,257,258],{},"The first server upgrades first. Harblet's interface and your domains may be unreachable for a few seconds while k3s restarts.",[219,260,261],{},"Then the other servers upgrade one at a time.",[136,263,264,265,268,269,272],{},"Services keep running during the upgrade. The ",[201,266,101],{"href":267},"\u002Fdocs\u002Fadministration\u002Fservers#k3s-upgrades"," page shows ",[140,270,271],{},"Upgrading to"," the new version while a server upgrades.",[136,274,275],{},"Harblet only upgrades k3s, never downgrades it. Traefik, containerd and the other components that come with k3s upgrade with it.",[153,277,279],{"id":278},"what-doesnt-update","What doesn't update",[216,281,282,288,298],{},[219,283,284,287],{},[140,285,286],{},"Harblet's own PostgreSQL"," stays on the PostgreSQL 18 patch release it was installed with.",[219,289,290,293,294,297],{},[140,291,292],{},"Your databases"," update to the newest patch release of their version when you deploy them, and whenever they restart, for example after a reboot. See ",[201,295,46],{"href":296},"\u002Fdocs\u002Fdeploy\u002Fdatabases#update-to-a-new-patch-release",".",[219,299,300,303],{},[140,301,302],{},"Ubuntu"," on your servers is yours to update.",[136,305,306,307,297],{},"Harblet doesn't update itself automatically. You decide when to click ",[140,308,142],{},{"title":310,"searchDepth":311,"depth":311,"links":312},"",2,[313,318,319,320],{"id":155,"depth":311,"text":156,"children":314},[315,317],{"id":164,"depth":316,"text":165},3,{"id":185,"depth":316,"text":142},{"id":207,"depth":311,"text":208},{"id":248,"depth":311,"text":249},{"id":278,"depth":311,"text":279},"Update Harblet from the browser. Harblet keeps k3s on your servers up to date.","md",null,{},{"icon":114},{"title":111,"description":321},"UtGN-uxUicfZbzTjWFVTw1QuXSBcdTkI8TJWkuG7K-c",[329,331],{"title":106,"path":107,"stem":108,"description":330,"icon":109,"children":-1},"Invite colleagues as admins or members, manage their roles, and change your own name and password.",{"title":121,"path":122,"stem":123,"description":332,"icon":124,"children":-1},"Fixes for common problems with the install, logins, domains, updates and servers.",1794744117475]