[{"data":1,"prerenderedAt":520},["ShallowReactive",2],{"navigation":3,"\u002Finstallation\u002Fquickstart":94,"\u002Finstallation\u002Fquickstart-surround":515},[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":23,"body":96,"description":509,"extension":510,"links":511,"meta":512,"navigation":425,"path":24,"seo":513,"stem":25,"__hash__":514},"docs\u002F2.installation\u002F1.quickstart.md",{"type":97,"value":98,"toc":499},"minimark",[99,103,110,115,136,140,175,178,242,246,276,280,310,321,325,328,353,357,360,372,387,391,484,488,495],[100,101,102],"p",{},"This guide gets fsbackup running on a bare-metal Linux server using the automated installer.",[100,104,105,106,109],{},"For detailed steps see ",[107,108,17],"a",{"href":31},".",[111,112,114],"h2",{"id":113},"prerequisites","Prerequisites",[116,117,118,122,133],"ul",{},[119,120,121],"li",{},"Ubuntu 22.04+ or Debian 12+ (bare-metal or VM)",[119,123,124,125,129,130,132],{},"A ZFS pool with a ",[126,127,128],"code",{},"snapshots"," dataset (see ",[107,131,27],{"href":28},")",[119,134,135],{},"SSH access to the machines you want to back up",[111,137,139],{"id":138},"_1-run-the-installer","1. Run the installer",[141,142,147],"pre",{"className":143,"code":144,"language":145,"meta":146,"style":146},"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","",[126,148,149],{"__ignoreMap":146},[150,151,154,158,162,165,169,172],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sBMFI","curl",[150,159,161],{"class":160},"sfazB"," -fsSL",[150,163,164],{"class":160}," https:\u002F\u002Fraw.githubusercontent.com\u002Ffsbackup\u002Ffsbackup\u002Fmain\u002Fbin\u002Ffs-install.sh",[150,166,168],{"class":167},"sMK4o"," |",[150,170,171],{"class":156}," sudo",[150,173,174],{"class":160}," bash\n",[100,176,177],{},"The installer will:",[179,180,181,206,213,219,225,231,234,239],"ol",{},[119,182,183,184,187,188,187,191,187,194,187,197,187,200,187,203,132],{},"Install required packages (",[126,185,186],{},"rsync",", ",[126,189,190],{},"jq",[126,192,193],{},"yq",[126,195,196],{},"zstd",[126,198,199],{},"age",[126,201,202],{},"awscli",[126,204,205],{},"zfsutils-linux",[119,207,208,209,212],{},"Create the ",[126,210,211],{},"fsbackup"," system user (UID 993)",[119,214,215,216],{},"Install scripts to ",[126,217,218],{},"\u002Fopt\u002Ffsbackup\u002F",[119,220,221,222],{},"Create config skeleton in ",[126,223,224],{},"\u002Fetc\u002Ffsbackup\u002F",[119,226,227,228,132],{},"Set up ZFS delegation (",[126,229,230],{},"zfs allow",[119,232,233],{},"Install and enable systemd units",[119,235,236,237],{},"Apply schedule from ",[126,238,45],{},[119,240,241],{},"Optionally set up the web UI",[111,243,245],{"id":244},"_2-create-zfs-datasets-for-your-targets","2. Create ZFS datasets for your targets",[141,247,249],{"className":143,"code":248,"language":145,"meta":146,"style":146},"sudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh --dry-run   # preview\nsudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh              # create\n",[126,250,251,266],{"__ignoreMap":146},[150,252,253,256,259,262],{"class":152,"line":153},[150,254,255],{"class":156},"sudo",[150,257,258],{"class":160}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-provision.sh",[150,260,261],{"class":160}," --dry-run",[150,263,265],{"class":264},"sHwdD","   # preview\n",[150,267,269,271,273],{"class":152,"line":268},2,[150,270,255],{"class":156},[150,272,258],{"class":160},[150,274,275],{"class":264},"              # create\n",[111,277,279],{"id":278},"_3-edit-config","3. Edit config",[141,281,283],{"className":143,"code":282,"language":145,"meta":146,"style":146},"sudo nano \u002Fetc\u002Ffsbackup\u002Ffsbackup.conf   # set S3_BUCKET, schedules, retention\nsudo nano \u002Fetc\u002Ffsbackup\u002Ftargets.yml     # define your backup targets\n",[126,284,285,298],{"__ignoreMap":146},[150,286,287,289,292,295],{"class":152,"line":153},[150,288,255],{"class":156},[150,290,291],{"class":160}," nano",[150,293,294],{"class":160}," \u002Fetc\u002Ffsbackup\u002Ffsbackup.conf",[150,296,297],{"class":264},"   # set S3_BUCKET, schedules, retention\n",[150,299,300,302,304,307],{"class":152,"line":268},[150,301,255],{"class":156},[150,303,291],{"class":160},[150,305,306],{"class":160}," \u002Fetc\u002Ffsbackup\u002Ftargets.yml",[150,308,309],{"class":264},"     # define your backup targets\n",[100,311,312,313,316,317,320],{},"See ",[107,314,315],{"href":46},"fsbackup.conf reference"," and ",[107,318,319],{"href":50},"Targets"," for details.",[111,322,324],{"id":323},"_4-trust-remote-hosts","4. Trust remote hosts",[100,326,327],{},"For each host you want to back up:",[141,329,331],{"className":143,"code":330,"language":145,"meta":146,"style":146},"sudo \u002Fopt\u002Ffsbackup\u002Futils\u002Ffs-trust-host.sh \u003Chostname>\n",[126,332,333],{"__ignoreMap":146},[150,334,335,337,340,343,346,350],{"class":152,"line":153},[150,336,255],{"class":156},[150,338,339],{"class":160}," \u002Fopt\u002Ffsbackup\u002Futils\u002Ffs-trust-host.sh",[150,341,342],{"class":167}," \u003C",[150,344,345],{"class":160},"hostnam",[150,347,349],{"class":348},"sTEyZ","e",[150,351,352],{"class":167},">\n",[111,354,356],{"id":355},"_5-apply-acls-for-local-paths","5. Apply ACLs for local paths",[100,358,359],{},"If any targets are local paths (e.g. Docker volumes on the same machine):",[141,361,363],{"className":143,"code":362,"language":145,"meta":146,"style":146},"sudo \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-fix-permissions.sh\n",[126,364,365],{"__ignoreMap":146},[150,366,367,369],{"class":152,"line":153},[150,368,255],{"class":156},[150,370,371],{"class":160}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-fix-permissions.sh\n",[373,374,377],"u-callout",{"color":375,"icon":376},"orange","i-lucide-alert-triangle",[100,378,379,382,383,386],{},[126,380,381],{},"fs-fix-permissions.sh"," applies ",[126,384,385],{},"setfacl -R -m u:fsbackup:rX"," to each local source path. Review each path before running — on Docker volume paths this grants the fsbackup user read access to all files inside the volume, including any secrets your containers may store there.",[111,388,390],{"id":389},"_6-verify-and-run","6. Verify and run",[141,392,394],{"className":143,"code":393,"language":145,"meta":146,"style":146},"# Check target health\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh --class class1\n\n# Dry run\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1 --dry-run\n\n# First real backup\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1\n",[126,395,396,401,420,427,433,456,461,467],{"__ignoreMap":146},[150,397,398],{"class":152,"line":153},[150,399,400],{"class":264},"# Check target health\n",[150,402,403,405,408,411,414,417],{"class":152,"line":268},[150,404,255],{"class":156},[150,406,407],{"class":160}," -u",[150,409,410],{"class":160}," fsbackup",[150,412,413],{"class":160}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh",[150,415,416],{"class":160}," --class",[150,418,419],{"class":160}," class1\n",[150,421,423],{"class":152,"line":422},3,[150,424,426],{"emptyLinePlaceholder":425},true,"\n",[150,428,430],{"class":152,"line":429},4,[150,431,432],{"class":264},"# Dry run\n",[150,434,436,438,440,442,445,448,450,453],{"class":152,"line":435},5,[150,437,255],{"class":156},[150,439,407],{"class":160},[150,441,410],{"class":160},[150,443,444],{"class":160}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh",[150,446,447],{"class":160}," daily",[150,449,416],{"class":160},[150,451,452],{"class":160}," class1",[150,454,455],{"class":160}," --dry-run\n",[150,457,459],{"class":152,"line":458},6,[150,460,426],{"emptyLinePlaceholder":425},[150,462,464],{"class":152,"line":463},7,[150,465,466],{"class":264},"# First real backup\n",[150,468,470,472,474,476,478,480,482],{"class":152,"line":469},8,[150,471,255],{"class":156},[150,473,407],{"class":160},[150,475,410],{"class":160},[150,477,444],{"class":160},[150,479,447],{"class":160},[150,481,416],{"class":160},[150,483,419],{"class":160},[111,485,487],{"id":486},"_7-check-the-web-ui","7. Check the web UI",[100,489,490,491,494],{},"The web UI runs on port 8080. Open ",[126,492,493],{},"http:\u002F\u002F\u003Cyour-server>:8080"," in a browser.",[496,497,498],"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}",{"title":146,"searchDepth":153,"depth":268,"links":500},[501,502,503,504,505,506,507,508],{"id":113,"depth":268,"text":114},{"id":138,"depth":268,"text":139},{"id":244,"depth":268,"text":245},{"id":278,"depth":268,"text":279},{"id":323,"depth":268,"text":324},{"id":355,"depth":268,"text":356},{"id":389,"depth":268,"text":390},{"id":486,"depth":268,"text":487},"Get fsbackup running in under 20 minutes with the automated installer.","md",null,{},{"title":23,"description":509},"N-affYvEz2Qm4HebJdSDTZ2LsIBcLl_X3bOane4HaYw",[516,518],{"title":12,"path":13,"stem":14,"description":517,"children":-1},"What you need to run fsbackup — software prerequisites, disk recommendations, and unsupported configurations.",{"title":27,"path":28,"stem":29,"description":519,"children":-1},"How to create and configure a ZFS pool for fsbackup snapshot storage.",1775923865773]