[{"data":1,"prerenderedAt":534},["ShallowReactive",2],{"navigation_docs":3,"-docs-reference-troubleshooting":130,"-docs-reference-troubleshooting-surround":529},[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":121,"body":132,"description":522,"extension":523,"links":524,"meta":525,"navigation":526,"path":122,"seo":527,"stem":123,"__hash__":528},"docs\u002Fdocs\u002F5.reference\u002F1.troubleshooting.md",{"type":133,"value":134,"toc":509},"minimark",[135,144,149,223,227,238,241,291,294,298,313,316,320,323,367,375,379,393,403,429,433,436,440,446,450,458,471,475,487,491,505],[136,137,138,139,143],"p",{},"Most problems show a message in Harblet that says what to do. This page covers the cases where you need the server's command line. Run the commands on the ",[140,141,142],"strong",{},"first server",".",[145,146,148],"h2",{"id":147},"the-install-script-stops","The install script stops",[150,151,152,165],"table",{},[153,154,155],"thead",{},[156,157,158,162],"tr",{},[159,160,161],"th",{},"Message",[159,163,164],{},"What to do",[166,167,168,182,199,212],"tbody",{},[156,169,170,174],{},[171,172,173],"td",{},"k3s is already installed on this server, so Harblet can't be installed.",[171,175,176,177,181],{},"Use a fresh server, or remove k3s with ",[178,179,180],"code",{},"sudo \u002Fusr\u002Flocal\u002Fbin\u002Fk3s-uninstall.sh"," first. This deletes everything k3s ran.",[156,183,184,187],{},[171,185,186],{},"This server's IPv4 address couldn't be found.",[171,188,189,190,193,194,143],{},"Set ",[178,191,192],{},"HARBLET_URL",", see ",[195,196,198],"a",{"href":197},"\u002Fdocs\u002Fgetting-started\u002Finstallation#servers-behind-nat","Servers behind NAT",[156,200,201,204],{},[171,202,203],{},"k3s didn't become ready within 5 minutes.",[171,205,206,207,211],{},"Check that the server meets the ",[195,208,210],{"href":209},"\u002Fdocs\u002Fgetting-started\u002Finstallation#requirements","requirements",", then start over.",[156,213,214,217],{},[171,215,216],{},"Installing Harblet failed. To start over, run \u002Fusr\u002Flocal\u002Fbin\u002Fk3s-uninstall.sh and then this script again.",[171,218,219,220,222],{},"Run ",[178,221,180],{},", fix the cause shown above the message, and run the install command again.",[145,224,226],{"id":225},"logins-are-rejected","Logins are rejected",[136,228,229,230,233,234,237],{},"Harblet accepts logins only at its own address: the one the install script printed, or ",[178,231,232],{},"https:\u002F\u002F\u003Cdomain>"," once Harblet has ",[195,235,236],{"href":97},"its own domain",". Open Harblet at exactly that address.",[136,239,240],{},"If your browser can't reach that address, for example because the server is behind NAT, set the address Harblet runs at:",[242,243,249],"pre",{"className":244,"code":245,"filename":246,"language":247,"meta":248,"style":248},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo k3s kubectl -n harblet-system set env deployment\u002Fharblet -c harblet NUXT_PUBLIC_SITE_URL=http:\u002F\u002F203.0.113.10:3000\n","First server","bash","",[178,250,251],{"__ignoreMap":248},[252,253,256,260,264,267,270,273,276,279,282,285,288],"span",{"class":254,"line":255},"line",1,[252,257,259],{"class":258},"sBMFI","sudo",[252,261,263],{"class":262},"sfazB"," k3s",[252,265,266],{"class":262}," kubectl",[252,268,269],{"class":262}," -n",[252,271,272],{"class":262}," harblet-system",[252,274,275],{"class":262}," set",[252,277,278],{"class":262}," env",[252,280,281],{"class":262}," deployment\u002Fharblet",[252,283,284],{"class":262}," -c",[252,286,287],{"class":262}," harblet",[252,289,290],{"class":262}," NUXT_PUBLIC_SITE_URL=http:\u002F\u002F203.0.113.10:3000\n",[136,292,293],{},"Harblet restarts with the new address within seconds.",[145,295,297],{"id":296},"harblet-isnt-reachable-at-its-domain","Harblet isn't reachable at its domain",[136,299,300,301,304,305,308,309,312],{},"If you saved a wrong domain under ",[140,302,303],{},"Settings"," → ",[140,306,307],{},"General",", or its DNS or certificate doesn't work, either fix the DNS record, or move Harblet back to its IP address with the command above. Then log in at ",[178,310,311],{},"http:\u002F\u002F\u003Cip>:3000"," and set the domain again.",[136,314,315],{},"Port 3000 has to be open for this. If you closed it in your firewall, open it again first.",[145,317,319],{"id":318},"an-update-doesnt-start","An update doesn't start",[136,321,322],{},"If a new version of Harblet doesn't come up after an update, switch back to the version you had before:",[242,324,326],{"className":244,"code":325,"filename":246,"language":247,"meta":248,"style":248},"sudo k3s kubectl -n harblet-system set image deployment\u002Fharblet harblet=ghcr.io\u002Fharblet\u002Fharblet:\u003Cold version>\n",[178,327,328],{"__ignoreMap":248},[252,329,330,332,334,336,338,340,342,345,347,350,354,357,360,364],{"class":254,"line":255},[252,331,259],{"class":258},[252,333,263],{"class":262},[252,335,266],{"class":262},[252,337,269],{"class":262},[252,339,272],{"class":262},[252,341,275],{"class":262},[252,343,344],{"class":262}," image",[252,346,281],{"class":262},[252,348,349],{"class":262}," harblet=ghcr.io\u002Fharblet\u002Fharblet:",[252,351,353],{"class":352},"sMK4o","\u003C",[252,355,356],{"class":262},"old",[252,358,359],{"class":262}," versio",[252,361,363],{"class":362},"sTEyZ","n",[252,365,366],{"class":352},">\n",[368,369,370,371,374],"warning",{},"This only works if the new version hasn't changed Harblet's database in a way the old version can't read. If it has, restore your ",[195,372,373],{"href":87},"backup of Harblet"," instead.",[145,376,378],{"id":377},"a-k3s-upgrade-is-stuck","A k3s upgrade is stuck",[136,380,381,382,384,385,388,389,392],{},"The ",[195,383,101],{"href":102}," page shows ",[140,386,387],{},"The k3s upgrade is stuck"," with Kubernetes' message, or a server shows ",[140,390,391],{},"Upgrading to"," for a long time.",[394,395,396,400],"ul",{},[397,398,399],"li",{},"If the message says an image can't be pulled, check that the server can reach the internet. Kubernetes keeps trying by itself.",[397,401,402],{},"If you went back to an older Harblet that shouldn't upgrade k3s anymore, stop the upgrade:",[242,404,406],{"className":244,"code":405,"filename":246,"language":247,"meta":248,"style":248},"sudo k3s kubectl -n harblet-system delete plans --all\n",[178,407,408],{"__ignoreMap":248},[252,409,410,412,414,416,418,420,423,426],{"class":254,"line":255},[252,411,259],{"class":258},[252,413,263],{"class":262},[252,415,266],{"class":262},[252,417,269],{"class":262},[252,419,272],{"class":262},[252,421,422],{"class":262}," delete",[252,424,425],{"class":262}," plans",[252,427,428],{"class":262}," --all\n",[145,430,432],{"id":431},"services-dont-start-after-a-reboot","Services don't start after a reboot",[136,434,435],{},"Image services and databases ask their registry for their image every time they start, for example Docker Hub. If the registry can't be reached right after a reboot, they stay down until it can. They start by themselves once the server is online again. Services built from Git start from the image on the server.",[145,437,439],{"id":438},"the-first-build-fails-right-after-the-install-or-a-reboot","The first build fails right after the install or a reboot",[136,441,442,443,445],{},"Right after k3s starts, the cluster's DNS may not answer yet, and the clone step of a build fails. Click ",[140,444,26],{}," again a minute later.",[145,447,449],{"id":448},"a-removed-server-doesnt-boot-completely","A removed server doesn't boot completely",[136,451,452,453,457],{},"A server you ",[195,454,456],{"href":455},"\u002Fdocs\u002Fadministration\u002Fservers#remove-a-server","removed"," keeps trying to reconnect until you uninstall the k3s agent on it. Log in over SSH and run:",[242,459,462],{"className":244,"code":460,"filename":461,"language":247,"meta":248,"style":248},"sudo \u002Fusr\u002Flocal\u002Fbin\u002Fk3s-agent-uninstall.sh\n","Removed server",[178,463,464],{"__ignoreMap":248},[252,465,466,468],{"class":254,"line":255},[252,467,259],{"class":258},[252,469,470],{"class":262}," \u002Fusr\u002Flocal\u002Fbin\u002Fk3s-agent-uninstall.sh\n",[145,472,474],{"id":473},"someone-forgot-their-password","Someone forgot their password",[136,476,477,478,481,482,486],{},"Harblet has no password reset yet. An admin removes the member under ",[140,479,480],{},"Members"," and ",[195,483,485],{"href":484},"\u002Fdocs\u002Fadministration\u002Fteam#invite-a-colleague","invites them again",". Their deployments stay.",[145,488,490],{"id":489},"get-help","Get help",[136,492,493,494,500,501,143],{},"Look for an existing issue or open a new one on ",[195,495,499],{"href":496,"rel":497},"https:\u002F\u002Fgithub.com\u002Fharblet\u002Fharblet\u002Fissues",[498],"nofollow","GitHub",", or write to ",[195,502,504],{"href":503},"mailto:mail@harblet.com","mail@harblet.com",[506,507,508],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":248,"searchDepth":510,"depth":510,"links":511},2,[512,513,514,515,516,517,518,519,520,521],{"id":147,"depth":510,"text":148},{"id":225,"depth":510,"text":226},{"id":296,"depth":510,"text":297},{"id":318,"depth":510,"text":319},{"id":377,"depth":510,"text":378},{"id":431,"depth":510,"text":432},{"id":438,"depth":510,"text":439},{"id":448,"depth":510,"text":449},{"id":473,"depth":510,"text":474},{"id":489,"depth":510,"text":490},"Fixes for common problems with the install, logins, domains, updates and servers.","md",null,{},{"icon":124},{"title":121,"description":522},"SjlNa_7jIV_ILErKvWAR22hyljf1TVhmCZ4Ai0kPNJg",[530,532],{"title":111,"path":112,"stem":113,"description":531,"icon":114,"children":-1},"Update Harblet from the browser. Harblet keeps k3s on your servers up to date.",{"title":126,"path":127,"stem":128,"description":533,"icon":129,"children":-1},"Harblet is source-available under the Business Source License 1.1, free in production on one server.",1794744118054]