Installation

Bare-metal installation

Installing fsbackup directly on the host without Docker, using supercronic for scheduling.

If you prefer not to use Docker, fsbackup can run directly on the host as the fsbackup user, scheduled by supercronic — the same scheduler used inside the Docker image.

Prerequisites

  • Ubuntu/Debian Linux
  • rsync, openssh-client, age, zstd, awscli installed on the host
  • supercronic installed (see below)

Install supercronic

SUPERCRONIC_VERSION=0.2.33
SUPERCRONIC_SHA256=feefa310da569c81b99e1027b86b27b51e6ee9ab647747b49099645120cfc671
curl -fsSL \
  "https://github.com/aptible/supercronic/releases/download/v${SUPERCRONIC_VERSION}/supercronic-linux-amd64" \
  -o /usr/local/bin/supercronic
echo "${SUPERCRONIC_SHA256}  /usr/local/bin/supercronic" | sha256sum -c -
chmod +x /usr/local/bin/supercronic

Steps 1–7: Common setup

Follow steps 1–7 from Docker installation (create user, SSH keypair, directories, config). Use the same UID 993 for consistency.

Install scripts

sudo mkdir -p /opt/fsbackup
sudo cp -r /home/<user>/fsbackup/bin /opt/fsbackup/bin
sudo cp -r /home/<user>/fsbackup/utils /opt/fsbackup/utils
sudo cp -r /home/<user>/fsbackup/s3 /opt/fsbackup/s3
sudo chmod -R 755 /opt/fsbackup

Trust remote SSH host keys

sudo /opt/fsbackup/utils/fs-trust-host.sh <hostname>

Configure the crontab

Copy the example crontab and edit it to match your targets:

sudo cp /home/<user>/fsbackup/conf/fsbackup.crontab.example /etc/fsbackup/fsbackup.crontab
sudo chown root:fsbackup /etc/fsbackup/fsbackup.crontab
sudo chmod 640 /etc/fsbackup/fsbackup.crontab

Run supercronic as a systemd service

Create /etc/systemd/system/fsbackup-supercronic.service:

[Unit]
Description=fsbackup supercronic scheduler
After=network.target

[Service]
User=fsbackup
ExecStart=/usr/local/bin/supercronic /etc/fsbackup/fsbackup.crontab
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now fsbackup-supercronic.service

supercronic hot-reloads the crontab on change — no service restart needed when editing the schedule.

Verify and run

sudo -u fsbackup /opt/fsbackup/bin/fs-doctor.sh --class class1
sudo -u fsbackup /opt/fsbackup/bin/fs-runner.sh daily --class class1 --dry-run
sudo -u fsbackup /opt/fsbackup/bin/fs-runner.sh daily --class class1

Web UI (bare-metal)

The web UI can be run as a systemd service:

sudo cp /home/<user>/fsbackup/systemd/fsbackup-web.service /etc/systemd/system/
sudo systemctl enable --now fsbackup-web.service

The web UI binds to 0.0.0.0:8080 by default. Configure via web/.env.