Files
2026-11-06 22:41:17 +00:00
..
2026-11-05 16:28:52 +00:00
2026-11-06 22:40:15 +00:00
2026-11-06 22:40:15 +00:00
2026-11-06 22:41:17 +00:00

ha-backup v3.2.0

Go port of home_assistant_backup.sh. Uses the same home_assistant_backup.conf.

Build

CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o ha-backup .

Override the version at build time if needed: CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.version=3.1.2" -o ha-backup .

Check the version: ./ha-backup -version

Cross-compile examples: GOOS=linux GOARCH=amd64 go build -o ha-backup-linux-amd64 . GOOS=linux GOARCH=arm64 go build -o ha-backup-linux-arm64 . # Raspberry Pi / ARM NAS

Logging

ha-backup writes a log to /var/log/ha-backup.log by default. Each line is timestamped, and the file is appended to on every run. The same output is still printed to the console.

Create the log file

Writing to /var/log requires elevated permissions, so create the file once and give ownership to the user that runs the backup. Replace backupuser with that user (use root if you run it as root):

If you'd rather do it in steps:

sudo touch /var/log/ha-backup.log
sudo chown backupuser:backupuser /var/log/ha-backup.log
sudo chmod 640 /var/log/ha-backup.log

If the log file can't be opened, ha-backup prints a warning and continues the backup without file logging.

Change or disable the log location

Set LOG_FILE in home_assistant_backup.conf:

LOG_FILE="/var/log/ha-backup.log"   # default
LOG_FILE="/home/backupuser/ha-backup.log"   # custom path
LOG_FILE="none"                     # disable file logging

Run

./ha-backup # looks for home_assistant_backup.conf next to the binary, then in cwd
./ha-backup -config /path/to.conf

Requires ssh and scp on the machine running it. jq and yq are no longer needed.