[{"data":1,"prerenderedAt":926},["ShallowReactive",2],{"navigation":3,"\u002Finstallation\u002Fbare-metal":94,"\u002Finstallation\u002Fbare-metal-surround":921},[4,16,38,56,70,80],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"What is fsbackup?",{"title":12,"path":13,"stem":14},"Requirements & hardware","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F2.requirements","i-lucide-rocket",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":37},"Installation","i-lucide-package","\u002Finstallation","2.installation",[22,26,30,33],{"title":23,"path":24,"stem":25},"Quick start","\u002Finstallation\u002Fquickstart","2.installation\u002F1.quickstart",{"title":27,"path":28,"stem":29},"ZFS pool setup","\u002Finstallation\u002Fzfs-pool","2.installation\u002F2.zfs-pool",{"title":17,"path":31,"stem":32},"\u002Finstallation\u002Fbare-metal","2.installation\u002F3.bare-metal",{"title":34,"path":35,"stem":36},"Adding remote hosts","\u002Finstallation\u002Fadding-hosts","2.installation\u002F4.adding-hosts",false,{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":37},"Configuration","i-lucide-sliders","\u002Fconfiguration","3.configuration",[44,48,52],{"title":45,"path":46,"stem":47},"fsbackup.conf","\u002Fconfiguration\u002Ffsbackup-conf","3.configuration\u002F1.fsbackup-conf",{"title":49,"path":50,"stem":51},"targets.yml","\u002Fconfiguration\u002Ftargets","3.configuration\u002F2.targets",{"title":53,"path":54,"stem":55},"Scheduling","\u002Fconfiguration\u002Fscheduling","3.configuration\u002F3.scheduling",{"title":57,"icon":58,"path":59,"stem":60,"children":61,"page":37},"Usage","i-lucide-play","\u002Fusage","4.usage",[62,66],{"title":63,"path":64,"stem":65},"Web UI","\u002Fusage\u002Fweb-ui","4.usage\u002F1.web-ui",{"title":67,"path":68,"stem":69},"Running jobs manually","\u002Fusage\u002Frunning-jobs","4.usage\u002F2.running-jobs",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":37},"Restore","i-lucide-history","\u002Frestore","5.restore",[76],{"title":77,"path":78,"stem":79},"Restoring data","\u002Frestore\u002Frestore","5.restore\u002F1.restore",{"title":81,"icon":82,"path":83,"stem":84,"children":85,"page":37},"Reference","i-lucide-book-open","\u002Freference","6.reference",[86,90],{"title":87,"path":88,"stem":89},"Script reference","\u002Freference\u002Fscripts","6.reference\u002F1.scripts",{"title":91,"path":92,"stem":93},"Prometheus metrics","\u002Freference\u002Fmetrics","6.reference\u002F2.metrics",{"id":95,"title":17,"body":96,"description":915,"extension":916,"links":917,"meta":918,"navigation":649,"path":31,"seo":919,"stem":32,"__hash__":920},"docs\u002F2.installation\u002F3.bare-metal.md",{"type":97,"value":98,"toc":891},"minimark",[99,103,108,130,134,137,172,175,203,206,210,215,251,254,269,273,294,298,319,323,365,369,405,408,412,429,433,444,448,460,464,468,494,498,522,526,551,555,558,570,592,596,602,614,618,710,714,833,836,846,887],[100,101,102],"p",{},"fsbackup v2.0 runs directly on the backup server as a systemd service. There is no Docker container.",[104,105,107],"h2",{"id":106},"prerequisites","Prerequisites",[109,110,111,115,127],"ul",{},[112,113,114],"li",{},"Ubuntu 22.04+ or Debian 12+",[112,116,117,118,122,123,126],{},"A ZFS pool with ",[119,120,121],"code",{},"backup\u002Fsnapshots"," dataset created (see ",[124,125,27],"a",{"href":28},")",[112,128,129],{},"Internet access to download packages",[104,131,133],{"id":132},"run-the-installer","Run the installer",[100,135,136],{},"The installer must be run as root:",[138,139,144],"pre",{"className":140,"code":141,"language":142,"meta":143,"style":143},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Ffsbackup\u002Ffsbackup\u002Fmain\u002Fbin\u002Ffs-install.sh | sudo bash\n","bash","",[119,145,146],{"__ignoreMap":143},[147,148,151,155,159,162,166,169],"span",{"class":149,"line":150},"line",1,[147,152,154],{"class":153},"sBMFI","curl",[147,156,158],{"class":157},"sfazB"," -fsSL",[147,160,161],{"class":157}," https:\u002F\u002Fraw.githubusercontent.com\u002Ffsbackup\u002Ffsbackup\u002Fmain\u002Fbin\u002Ffs-install.sh",[147,163,165],{"class":164},"sMK4o"," |",[147,167,168],{"class":153}," sudo",[147,170,171],{"class":157}," bash\n",[100,173,174],{},"Or clone the repo and run it locally:",[138,176,178],{"className":140,"code":177,"language":142,"meta":143,"style":143},"git clone https:\u002F\u002Fgithub.com\u002Ffsbackup\u002Ffsbackup.git\nsudo bash fsbackup\u002Fbin\u002Ffs-install.sh\n",[119,179,180,191],{"__ignoreMap":143},[147,181,182,185,188],{"class":149,"line":150},[147,183,184],{"class":153},"git",[147,186,187],{"class":157}," clone",[147,189,190],{"class":157}," https:\u002F\u002Fgithub.com\u002Ffsbackup\u002Ffsbackup.git\n",[147,192,194,197,200],{"class":149,"line":193},2,[147,195,196],{"class":153},"sudo",[147,198,199],{"class":157}," bash",[147,201,202],{"class":157}," fsbackup\u002Fbin\u002Ffs-install.sh\n",[100,204,205],{},"The installer runs interactively and walks through each step.",[104,207,209],{"id":208},"what-the-installer-does","What the installer does",[211,212,214],"h3",{"id":213},"_1-packages","1. Packages",[100,216,217,218,221,222,221,225,221,228,221,231,221,233,221,236,221,239,221,242,221,245,221,248],{},"Installs: ",[119,219,220],{},"rsync",", ",[119,223,224],{},"openssh-client",[119,226,227],{},"jq",[119,229,230],{},"zstd",[119,232,154],{},[119,234,235],{},"unzip",[119,237,238],{},"python3",[119,240,241],{},"python3-venv",[119,243,244],{},"acl",[119,246,247],{},"zfsutils-linux",[119,249,250],{},"sanoid",[100,252,253],{},"Installs separately (not in Ubuntu 24.04 apt):",[109,255,256,263],{},[112,257,258,262],{},[259,260,261],"strong",{},"AWS CLI v2"," — via official AWS installer",[112,264,265,268],{},[259,266,267],{},"yq"," (mikefarah\u002Fyq v4) — via GitHub releases",[211,270,272],{"id":271},"_2-fsbackup-user","2. fsbackup user",[100,274,275,276,279,280,283,284,221,287,221,290,293],{},"Creates system user ",[119,277,278],{},"fsbackup"," (UID 993) with home at ",[119,281,282],{},"\u002Fvar\u002Flib\u002Ffsbackup",". Adds to groups: ",[119,285,286],{},"systemd-journal",[119,288,289],{},"nodeexp_txt",[119,291,292],{},"docker"," (if they exist).",[211,295,297],{"id":296},"_3-scripts","3. Scripts",[100,299,300,301,304,305,221,308,221,311,314,315,318],{},"Rsyncs the repo to ",[119,302,303],{},"\u002Fopt\u002Ffsbackup\u002F",". Excludes ",[119,306,307],{},".git",[119,309,310],{},"web\u002F.venv",[119,312,313],{},"web\u002F.env",", and ",[119,316,317],{},"conf\u002Ftargets.yml",".",[211,320,322],{"id":321},"_4-config-skeleton","4. Config skeleton",[109,324,325,337,348,356],{},[112,326,327,328,221,331,221,334],{},"Creates ",[119,329,330],{},"\u002Fetc\u002Ffsbackup\u002F",[119,332,333],{},"\u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002F",[119,335,336],{},"\u002Fvar\u002Flib\u002Ffsbackup\u002F.ssh\u002F",[112,338,339,340,343,344,347],{},"Copies ",[119,341,342],{},"fsbackup.conf.example"," → ",[119,345,346],{},"\u002Fetc\u002Ffsbackup\u002Ffsbackup.conf"," if not present",[112,349,339,350,343,353,347],{},[119,351,352],{},"targets.yml.example",[119,354,355],{},"\u002Fetc\u002Ffsbackup\u002Ftargets.yml",[112,357,358,359,361,362,364],{},"Grants ",[119,360,278],{}," user write ACL on ",[119,363,330],{}," (for web UI targets editor)",[211,366,368],{"id":367},"_5-zfs-delegation","5. ZFS delegation",[138,370,372],{"className":140,"code":371,"language":142,"meta":143,"style":143},"zfs allow fsbackup create,snapshot,mount,destroy backup\u002Fsnapshots\nchown -R fsbackup:fsbackup \u002Fbackup\u002Fsnapshots\n",[119,373,374,391],{"__ignoreMap":143},[147,375,376,379,382,385,388],{"class":149,"line":150},[147,377,378],{"class":153},"zfs",[147,380,381],{"class":157}," allow",[147,383,384],{"class":157}," fsbackup",[147,386,387],{"class":157}," create,snapshot,mount,destroy",[147,389,390],{"class":157}," backup\u002Fsnapshots\n",[147,392,393,396,399,402],{"class":149,"line":193},[147,394,395],{"class":153},"chown",[147,397,398],{"class":157}," -R",[147,400,401],{"class":157}," fsbackup:fsbackup",[147,403,404],{"class":157}," \u002Fbackup\u002Fsnapshots\n",[100,406,407],{},"If the pool doesn't exist yet, the installer prints the commands to run later.",[211,409,411],{"id":410},"_6-systemd-units","6. Systemd units",[100,413,414,415,418,419,422,423,426,427,318],{},"Copies all units from ",[119,416,417],{},"systemd\u002F"," to ",[119,420,421],{},"\u002Fetc\u002Fsystemd\u002Fsystem\u002F"," and enables timers based on which ",[119,424,425],{},"*_SCHEDULE"," vars are set in ",[119,428,45],{},[211,430,432],{"id":431},"_7-schedule","7. Schedule",[100,434,435,436,439,440,443],{},"Runs ",[119,437,438],{},"fs-schedule-apply.sh"," to write ",[119,441,442],{},"OnCalendar="," drop-ins for each enabled timer.",[211,445,447],{"id":446},"_8-web-ui","8. Web UI",[100,449,435,450,453,454,456,457,318],{},[119,451,452],{},"web\u002Finstall.sh"," which creates a Python venv, installs dependencies, generates ",[119,455,313],{},", and installs ",[119,458,459],{},"fsbackup-web.service",[104,461,463],{"id":462},"post-install-steps","Post-install steps",[211,465,467],{"id":466},"create-per-target-zfs-datasets","Create per-target ZFS datasets",[138,469,471],{"className":140,"code":470,"language":142,"meta":143,"style":143},"sudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh --dry-run   # preview first\nsudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh\n",[119,472,473,487],{"__ignoreMap":143},[147,474,475,477,480,483],{"class":149,"line":150},[147,476,196],{"class":153},[147,478,479],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh",[147,481,482],{"class":157}," --dry-run",[147,484,486],{"class":485},"sHwdD","   # preview first\n",[147,488,489,491],{"class":149,"line":193},[147,490,196],{"class":153},[147,492,493],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh\n",[211,495,497],{"id":496},"edit-config","Edit config",[138,499,501],{"className":140,"code":500,"language":142,"meta":143,"style":143},"sudo nano \u002Fetc\u002Ffsbackup\u002Ffsbackup.conf\nsudo nano \u002Fetc\u002Ffsbackup\u002Ftargets.yml\n",[119,502,503,513],{"__ignoreMap":143},[147,504,505,507,510],{"class":149,"line":150},[147,506,196],{"class":153},[147,508,509],{"class":157}," nano",[147,511,512],{"class":157}," \u002Fetc\u002Ffsbackup\u002Ffsbackup.conf\n",[147,514,515,517,519],{"class":149,"line":193},[147,516,196],{"class":153},[147,518,509],{"class":157},[147,520,521],{"class":157}," \u002Fetc\u002Ffsbackup\u002Ftargets.yml\n",[211,523,525],{"id":524},"trust-remote-ssh-host-keys","Trust remote SSH host keys",[138,527,529],{"className":140,"code":528,"language":142,"meta":143,"style":143},"sudo \u002Fopt\u002Ffsbackup\u002Futils\u002Ffs-trust-host.sh \u003Chostname>\n",[119,530,531],{"__ignoreMap":143},[147,532,533,535,538,541,544,548],{"class":149,"line":150},[147,534,196],{"class":153},[147,536,537],{"class":157}," \u002Fopt\u002Ffsbackup\u002Futils\u002Ffs-trust-host.sh",[147,539,540],{"class":164}," \u003C",[147,542,543],{"class":157},"hostnam",[147,545,547],{"class":546},"sTEyZ","e",[147,549,550],{"class":164},">\n",[211,552,554],{"id":553},"apply-local-path-acls","Apply local path ACLs",[100,556,557],{},"For any targets using local paths (Docker volumes, shared directories):",[138,559,561],{"className":140,"code":560,"language":142,"meta":143,"style":143},"sudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-fix-permissions.sh\n",[119,562,563],{"__ignoreMap":143},[147,564,565,567],{"class":149,"line":150},[147,566,196],{"class":153},[147,568,569],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-fix-permissions.sh\n",[571,572,575],"u-callout",{"color":573,"icon":574},"orange","i-lucide-alert-triangle",[100,576,577,580,581,584,585,588,589,318],{},[259,578,579],{},"Security note:"," ",[119,582,583],{},"fs-fix-permissions.sh"," runs ",[119,586,587],{},"setfacl -R -m u:fsbackup:rX"," on each local source path. This grants the fsbackup user read access to every file in that directory tree — including application secrets your containers may store. Review each path before applying, especially paths under ",[119,590,591],{},"\u002Fdocker\u002Fvolumes\u002F",[211,593,595],{"id":594},"apply-schedule-changes","Apply schedule changes",[100,597,598,599,601],{},"After editing schedule vars in ",[119,600,45],{},":",[138,603,605],{"className":140,"code":604,"language":142,"meta":143,"style":143},"sudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-schedule-apply.sh\n",[119,606,607],{"__ignoreMap":143},[147,608,609,611],{"class":149,"line":150},[147,610,196],{"class":153},[147,612,613],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-schedule-apply.sh\n",[211,615,617],{"id":616},"verify","Verify",[138,619,621],{"className":140,"code":620,"language":142,"meta":143,"style":143},"# List active timers\nsystemctl list-timers | grep fsbackup\n\n# Run doctor\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh --class class1\n\n# First backup (dry run)\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1 --dry-run\n",[119,622,623,628,644,651,657,676,681,687],{"__ignoreMap":143},[147,624,625],{"class":149,"line":150},[147,626,627],{"class":485},"# List active timers\n",[147,629,630,633,636,638,641],{"class":149,"line":193},[147,631,632],{"class":153},"systemctl",[147,634,635],{"class":157}," list-timers",[147,637,165],{"class":164},[147,639,640],{"class":153}," grep",[147,642,643],{"class":157}," fsbackup\n",[147,645,647],{"class":149,"line":646},3,[147,648,650],{"emptyLinePlaceholder":649},true,"\n",[147,652,654],{"class":149,"line":653},4,[147,655,656],{"class":485},"# Run doctor\n",[147,658,660,662,665,667,670,673],{"class":149,"line":659},5,[147,661,196],{"class":153},[147,663,664],{"class":157}," -u",[147,666,384],{"class":157},[147,668,669],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh",[147,671,672],{"class":157}," --class",[147,674,675],{"class":157}," class1\n",[147,677,679],{"class":149,"line":678},6,[147,680,650],{"emptyLinePlaceholder":649},[147,682,684],{"class":149,"line":683},7,[147,685,686],{"class":485},"# First backup (dry run)\n",[147,688,690,692,694,696,699,702,704,707],{"class":149,"line":689},8,[147,691,196],{"class":153},[147,693,664],{"class":157},[147,695,384],{"class":157},[147,697,698],{"class":157}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh",[147,700,701],{"class":157}," daily",[147,703,672],{"class":157},[147,705,706],{"class":157}," class1",[147,708,709],{"class":157}," --dry-run\n",[104,711,713],{"id":712},"upgrading","Upgrading",[138,715,717],{"className":140,"code":716,"language":142,"meta":143,"style":143},"cd \u002Fpath\u002Fto\u002Ffsbackup-repo\ngit pull\n\nsudo rsync -a --delete \\\n  --exclude='.git' \\\n  --exclude='web\u002F.venv' \\\n  --exclude='web\u002F.env' \\\n  --exclude='conf\u002Ftargets.yml' \\\n  .\u002F \u002Fopt\u002Ffsbackup\u002F\n\nsudo systemctl restart fsbackup-web\n",[119,718,719,728,735,739,755,769,781,793,805,814,819],{"__ignoreMap":143},[147,720,721,725],{"class":149,"line":150},[147,722,724],{"class":723},"s2Zo4","cd",[147,726,727],{"class":157}," \u002Fpath\u002Fto\u002Ffsbackup-repo\n",[147,729,730,732],{"class":149,"line":193},[147,731,184],{"class":153},[147,733,734],{"class":157}," pull\n",[147,736,737],{"class":149,"line":646},[147,738,650],{"emptyLinePlaceholder":649},[147,740,741,743,746,749,752],{"class":149,"line":653},[147,742,196],{"class":153},[147,744,745],{"class":157}," rsync",[147,747,748],{"class":157}," -a",[147,750,751],{"class":157}," --delete",[147,753,754],{"class":546}," \\\n",[147,756,757,760,763,765,767],{"class":149,"line":659},[147,758,759],{"class":157},"  --exclude=",[147,761,762],{"class":164},"'",[147,764,307],{"class":157},[147,766,762],{"class":164},[147,768,754],{"class":546},[147,770,771,773,775,777,779],{"class":149,"line":678},[147,772,759],{"class":157},[147,774,762],{"class":164},[147,776,310],{"class":157},[147,778,762],{"class":164},[147,780,754],{"class":546},[147,782,783,785,787,789,791],{"class":149,"line":683},[147,784,759],{"class":157},[147,786,762],{"class":164},[147,788,313],{"class":157},[147,790,762],{"class":164},[147,792,754],{"class":546},[147,794,795,797,799,801,803],{"class":149,"line":689},[147,796,759],{"class":157},[147,798,762],{"class":164},[147,800,317],{"class":157},[147,802,762],{"class":164},[147,804,754],{"class":546},[147,806,808,811],{"class":149,"line":807},9,[147,809,810],{"class":157},"  .\u002F",[147,812,813],{"class":157}," \u002Fopt\u002Ffsbackup\u002F\n",[147,815,817],{"class":149,"line":816},10,[147,818,650],{"emptyLinePlaceholder":649},[147,820,822,824,827,830],{"class":149,"line":821},11,[147,823,196],{"class":153},[147,825,826],{"class":157}," systemctl",[147,828,829],{"class":157}," restart",[147,831,832],{"class":157}," fsbackup-web\n",[104,834,63],{"id":835},"web-ui",[100,837,838,839,841,842,845],{},"The web UI runs as ",[119,840,459],{}," and binds to ",[119,843,844],{},"0.0.0.0:8080"," by default.",[138,847,849],{"className":140,"code":848,"language":142,"meta":143,"style":143},"sudo systemctl status fsbackup-web\nsudo systemctl restart fsbackup-web\nsudo journalctl -u fsbackup-web -f\n",[119,850,851,862,872],{"__ignoreMap":143},[147,852,853,855,857,860],{"class":149,"line":150},[147,854,196],{"class":153},[147,856,826],{"class":157},[147,858,859],{"class":157}," status",[147,861,832],{"class":157},[147,863,864,866,868,870],{"class":149,"line":193},[147,865,196],{"class":153},[147,867,826],{"class":157},[147,869,829],{"class":157},[147,871,832],{"class":157},[147,873,874,876,879,881,884],{"class":149,"line":646},[147,875,196],{"class":153},[147,877,878],{"class":157}," journalctl",[147,880,664],{"class":157},[147,882,883],{"class":157}," fsbackup-web",[147,885,886],{"class":157}," -f\n",[888,889,890],"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 pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":143,"searchDepth":150,"depth":193,"links":892},[893,894,895,905,913,914],{"id":106,"depth":193,"text":107},{"id":132,"depth":193,"text":133},{"id":208,"depth":193,"text":209,"children":896},[897,898,899,900,901,902,903,904],{"id":213,"depth":646,"text":214},{"id":271,"depth":646,"text":272},{"id":296,"depth":646,"text":297},{"id":321,"depth":646,"text":322},{"id":367,"depth":646,"text":368},{"id":410,"depth":646,"text":411},{"id":431,"depth":646,"text":432},{"id":446,"depth":646,"text":447},{"id":462,"depth":193,"text":463,"children":906},[907,908,909,910,911,912],{"id":466,"depth":646,"text":467},{"id":496,"depth":646,"text":497},{"id":524,"depth":646,"text":525},{"id":553,"depth":646,"text":554},{"id":594,"depth":646,"text":595},{"id":616,"depth":646,"text":617},{"id":712,"depth":193,"text":713},{"id":835,"depth":193,"text":63},"Full bare-metal installation of fsbackup using fs-install.sh — user, ZFS permissions, systemd units, and web UI.","md",null,{},{"title":17,"description":915},"L9NLX72xgoeU5rsbMMWJrNiBg0O8WVwJR8GA2R1uV-c",[922,924],{"title":27,"path":28,"stem":29,"description":923,"children":-1},"How to create and configure a ZFS pool for fsbackup snapshot storage.",{"title":34,"path":35,"stem":36,"description":925,"children":-1},"How to initialize a new remote host for fsbackup and add it to targets.yml.",1775923865773]