[{"data":1,"prerenderedAt":549},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fbancwr\u002Fupdating":128,"\u002Fdocs\u002Fbancwr\u002Fupdating-surround":546},[4,19,62,93],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,11,15],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-rocket",{"title":12,"path":13,"stem":14},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation",{"title":16,"path":17,"stem":18},"Using Diogel","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage",{"title":20,"path":21,"stem":22,"children":23,"icon":61},"Porwr","\u002Fdocs\u002Fporwr","1.docs\u002F2.porwr\u002F01.index",[24,26,29,33,37,41,45,49,53,57],{"title":25,"path":21,"stem":22,"icon":10},"What is Porwr",{"title":12,"path":27,"stem":28},"\u002Fdocs\u002Fporwr\u002Finstallation","1.docs\u002F2.porwr\u002F02.installation",{"title":30,"path":31,"stem":32},"Dashboard","\u002Fdocs\u002Fporwr\u002Fdashboard","1.docs\u002F2.porwr\u002F03.dashboard",{"title":34,"path":35,"stem":36},"Key Management","\u002Fdocs\u002Fporwr\u002Fkeys","1.docs\u002F2.porwr\u002F04.keys",{"title":38,"path":39,"stem":40},"Profile Management","\u002Fdocs\u002Fporwr\u002Fprofile","1.docs\u002F2.porwr\u002F05.profile",{"title":42,"path":43,"stem":44},"Relay Management","\u002Fdocs\u002Fporwr\u002Frelay","1.docs\u002F2.porwr\u002F06.relay",{"title":46,"path":47,"stem":48},"Messaging","\u002Fdocs\u002Fporwr\u002Fmessaging","1.docs\u002F2.porwr\u002F07.messaging",{"title":50,"path":51,"stem":52},"Media Management","\u002Fdocs\u002Fporwr\u002Fmedia","1.docs\u002F2.porwr\u002F08.media",{"title":54,"path":55,"stem":56},"Wallet Management","\u002Fdocs\u002Fporwr\u002Fwallet","1.docs\u002F2.porwr\u002F09.wallet",{"title":58,"path":59,"stem":60},"Extension Settings","\u002Fdocs\u002Fporwr\u002Fsettings","1.docs\u002F2.porwr\u002F10.settings","i-lucide-puzzle",{"title":63,"path":64,"stem":65,"children":66,"icon":92},"Symudol","\u002Fdocs\u002Fsymudol","1.docs\u002F3.symudol\u002F1.index",[67,69,72,76,80,84,88],{"title":68,"path":64,"stem":65,"icon":10},"What is Symudol",{"title":12,"path":70,"stem":71},"\u002Fdocs\u002Fsymudol\u002Finstallation","1.docs\u002F3.symudol\u002F2.installation",{"title":73,"path":74,"stem":75},"Your vault","\u002Fdocs\u002Fsymudol\u002Fvault","1.docs\u002F3.symudol\u002F3.vault",{"title":77,"path":78,"stem":79},"Accounts and profile","\u002Fdocs\u002Fsymudol\u002Faccounts","1.docs\u002F3.symudol\u002F4.accounts",{"title":81,"path":82,"stem":83},"Approving requests","\u002Fdocs\u002Fsymudol\u002Fapproving-requests","1.docs\u002F3.symudol\u002F5.approving-requests",{"title":85,"path":86,"stem":87},"Remote apps (NIP-46)","\u002Fdocs\u002Fsymudol\u002Fremote-apps","1.docs\u002F3.symudol\u002F6.remote-apps",{"title":89,"path":90,"stem":91},"Settings","\u002Fdocs\u002Fsymudol\u002Fsettings","1.docs\u002F3.symudol\u002F7.settings","i-lucide-smartphone",{"title":94,"path":95,"stem":96,"children":97,"icon":127},"Bancwr","\u002Fdocs\u002Fbancwr","1.docs\u002F4.bancwr\u002F1.index",[98,100,103,107,111,115,119,123],{"title":99,"path":95,"stem":96,"icon":10},"What is Bancwr",{"title":12,"path":101,"stem":102},"\u002Fdocs\u002Fbancwr\u002Finstallation","1.docs\u002F4.bancwr\u002F2.installation",{"title":104,"path":105,"stem":106},"First administrator and signing in","\u002Fdocs\u002Fbancwr\u002Ffirst-administrator","1.docs\u002F4.bancwr\u002F3.first-administrator",{"title":108,"path":109,"stem":110},"Team and roles","\u002Fdocs\u002Fbancwr\u002Fteam","1.docs\u002F4.bancwr\u002F4.team",{"title":112,"path":113,"stem":114},"Connecting apps","\u002Fdocs\u002Fbancwr\u002Fconnecting-apps","1.docs\u002F4.bancwr\u002F5.connecting-apps",{"title":116,"path":117,"stem":118},"Profile, follows and relays","\u002Fdocs\u002Fbancwr\u002Fprofile-follows-relays","1.docs\u002F4.bancwr\u002F6.profile-follows-relays",{"title":120,"path":121,"stem":122},"Health, versions and logs","\u002Fdocs\u002Fbancwr\u002Fhealth-and-logs","1.docs\u002F4.bancwr\u002F7.health-and-logs",{"title":124,"path":125,"stem":126},"Updating","\u002Fdocs\u002Fbancwr\u002Fupdating","1.docs\u002F4.bancwr\u002F8.updating","i-lucide-server",{"id":129,"title":124,"body":130,"description":311,"extension":540,"meta":541,"navigation":542,"path":125,"seo":543,"stem":126,"__hash__":545},"docs\u002F1.docs\u002F4.bancwr\u002F8.updating.md",{"type":131,"value":132,"toc":530},"minimark",[133,138,142,233,239,248,254,259,262,265,268,272,281,284,288,370,376,383,389,392,396,399,443,450,454,460,463,487,490,508,526],[134,135,137],"h2",{"id":136},"image-tags","Image tags",[139,140,141],"p",{},"The bunker and the dashboard share one version and are released together. Each image is published with several tags.",[143,144,145,158],"table",{},[146,147,148],"thead",{},[149,150,151,155],"tr",{},[152,153,154],"th",{},"Tag",[152,156,157],{},"Points at",[159,160,161,173,187,200,210,223],"tbody",{},[149,162,163,170],{},[164,165,166],"td",{},[167,168,169],"code",{},"latest",[164,171,172],{},"The newest release.",[149,174,175,184],{},[164,176,177,180,181],{},[167,178,179],{},"\u003Cversion>",", such as ",[167,182,183],{},"0.1.0",[164,185,186],{},"That release.",[149,188,189,197],{},[164,190,191,180,194],{},[167,192,193],{},"\u003Cmajor>.\u003Cminor>",[167,195,196],{},"0.1",[164,198,199],{},"The newest patch of that release line.",[149,201,202,207],{},[164,203,204],{},[167,205,206],{},"edge",[164,208,209],{},"Trunk: the latest merged code, not a reviewed release.",[149,211,212,217],{},[164,213,214],{},[167,215,216],{},"master",[164,218,219,220,222],{},"The same image as ",[167,221,206],{},".",[149,224,225,230],{},[164,226,227],{},[167,228,229],{},"sha-\u003Cshort>",[164,231,232],{},"One specific commit.",[139,234,235,236,222],{},"Trunk builds are also tagged with their own version, such as ",[167,237,238],{},"0.1.1-3",[139,240,241,243,244,247],{},[167,242,169],{}," only moves forward, to the highest stable release. There is no ",[167,245,246],{},":0"," style tag for a major version.",[139,249,250,251,253],{},"Use ",[167,252,206],{}," only to try what has merged but not been released.",[255,256,258],"h3",{"id":257},"weekly-rebuilds","Weekly rebuilds",[139,260,261],{},"Every Monday, the newest release and trunk are rebuilt on fresh base images. Each rebuild runs the same tests and vulnerability scan before it is published.",[139,263,264],{},"A rebuilt release keeps its version and its code. Only the image digest changes. This brings base-image security fixes to what you run within a week, without a new release.",[139,266,267],{},"If you pin an image by digest, you will not get these fixes.",[134,269,271],{"id":270},"choosing-a-tag","Choosing a tag",[139,273,274,277,278,280],{},[167,275,276],{},"compose.yaml"," pins an exact version for both images, such as ",[167,279,183],{},". Upgrading is then a deliberate change to that file.",[139,282,283],{},"Always use the same tag for both images.",[134,285,287],{"id":286},"how-to-update","How to update",[289,290,291,302,340],"ol",{},[292,293,294,295,298,299,301],"li",{},"Edit the two ",[167,296,297],{},"image:"," lines in ",[167,300,276],{}," to the new version, for both the bunker and the frontend.",[292,303,304,305],{},"Pull the new images:",[306,307,312],"pre",{"className":308,"code":309,"language":310,"meta":311,"style":311},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","podman pull ghcr.io\u002Fdiogel-io\u002Fbancwr-diogel-backend:0.1.0\npodman pull ghcr.io\u002Fdiogel-io\u002Fbancwr-diogel-frontend:0.1.0\n","bash","",[167,313,314,330],{"__ignoreMap":311},[315,316,319,323,327],"span",{"class":317,"line":318},"line",1,[315,320,322],{"class":321},"sBMFI","podman",[315,324,326],{"class":325},"sfazB"," pull",[315,328,329],{"class":325}," ghcr.io\u002Fdiogel-io\u002Fbancwr-diogel-backend:0.1.0\n",[315,331,333,335,337],{"class":317,"line":332},2,[315,334,322],{"class":321},[315,336,326],{"class":325},[315,338,339],{"class":325}," ghcr.io\u002Fdiogel-io\u002Fbancwr-diogel-frontend:0.1.0\n",[292,341,342,343],{},"Recreate the containers:",[306,344,346],{"className":308,"code":345,"language":310,"meta":311,"style":311},"podman compose down\npodman compose up -d\n",[167,347,348,358],{"__ignoreMap":311},[315,349,350,352,355],{"class":317,"line":318},[315,351,322],{"class":321},[315,353,354],{"class":325}," compose",[315,356,357],{"class":325}," down\n",[315,359,360,362,364,367],{"class":317,"line":332},[315,361,322],{"class":321},[315,363,354],{"class":325},[315,365,366],{"class":325}," up",[315,368,369],{"class":325}," -d\n",[139,371,372,373,375],{},"Replace ",[167,374,183],{}," with the version you are updating to.",[139,377,378,379,382],{},"Your data is kept in the ",[167,380,381],{},".\u002Fdata"," directory, so it survives the update.",[384,385,386],"note",{},[139,387,388],{},"Restarting the dashboard container signs everyone out. Let your team know before you update.",[139,390,391],{},"To pick up a weekly rebuild of the version you already run, pull the same tag again and recreate the containers.",[134,393,395],{"id":394},"checking-the-running-version","Checking the running version",[139,397,398],{},"After updating, check that both parts run the new version.",[400,401,402,413,434],"ul",{},[292,403,404,408,409,412],{},[405,406,407],"strong",{},"In the dashboard:"," the sidebar footer shows the bunker and frontend versions. It warns ",[405,410,411],{},"Bunker and frontend versions differ"," if they do not match.",[292,414,415,418],{},[405,416,417],{},"The dashboard container:",[306,419,421],{"className":308,"code":420,"language":310,"meta":311,"style":311},"curl -s http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fversion\n",[167,422,423],{"__ignoreMap":311},[315,424,425,428,431],{"class":317,"line":318},[315,426,427],{"class":321},"curl",[315,429,430],{"class":325}," -s",[315,432,433],{"class":325}," http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fversion\n",[292,435,436,439,440,222],{},[405,437,438],{},"The bunker container:"," its first log line carries its version, such as ",[167,441,442],{},"Bancwr Diogel 0.1.0 starting...",[139,444,445,446,298,448,222],{},"If the versions differ, the two containers were not updated together. Check both ",[167,447,297],{},[167,449,276],{},[134,451,453],{"id":452},"updating-from-an-early-build","Updating from an early build",[139,455,456,457,459],{},"Both containers run as user ID 65532, not root. If you ran an early build of the bunker as root, its ",[167,458,381],{}," directory belongs to root, and the bunker can no longer write its database. Hand it over once, before starting the new image.",[139,461,462],{},"With rootless Podman:",[306,464,466],{"className":308,"code":465,"language":310,"meta":311,"style":311},"podman unshare chown -R 65532:65532 .\u002Fdata\n",[167,467,468],{"__ignoreMap":311},[315,469,470,472,475,478,481,484],{"class":317,"line":318},[315,471,322],{"class":321},[315,473,474],{"class":325}," unshare",[315,476,477],{"class":325}," chown",[315,479,480],{"class":325}," -R",[315,482,483],{"class":325}," 65532:65532",[315,485,486],{"class":325}," .\u002Fdata\n",[139,488,489],{},"With Docker:",[306,491,493],{"className":308,"code":492,"language":310,"meta":311,"style":311},"sudo chown -R 65532:65532 .\u002Fdata\n",[167,494,495],{"__ignoreMap":311},[315,496,497,500,502,504,506],{"class":317,"line":318},[315,498,499],{"class":321},"sudo",[315,501,477],{"class":325},[315,503,480],{"class":325},[315,505,483],{"class":325},[315,507,486],{"class":325},[139,509,510,511,514,515,518,519,514,522,525],{},"Early builds used the roles ",[167,512,513],{},"admin"," and ",[167,516,517],{},"viewer",". At startup the bunker changes them to ",[167,520,521],{},"administrator",[167,523,524],{},"user",". If the same key was registered twice, the older registration is kept, and the log names both.",[527,528,529],"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);}",{"title":311,"searchDepth":332,"depth":332,"links":531},[532,536,537,538,539],{"id":136,"depth":332,"text":137,"children":533},[534],{"id":257,"depth":535,"text":258},3,{"id":270,"depth":332,"text":271},{"id":286,"depth":332,"text":287},{"id":394,"depth":332,"text":395},{"id":452,"depth":332,"text":453},"md",{},true,{"description":544,"title":124},"Update Bancwr: set the new image tag for the bunker and dashboard in compose.yaml, pull the images and recreate the containers.","93FMto2h14Y-U1yyEsCd122XATZQcze2-uNTW4u36hA",[547,548],{"title":120,"path":121,"stem":122,"description":311,"children":-1},null,1793311924986]