Ballast

Support

Most setup questions are in the guides. Otherwise, email support@ballastbackup.app. It helps to include the command and its output: in the app, open the backup and tap the copy button next to the command, or Settings › Command log › Copy log.

Ballast can't sign in to my server

With a key, the server needs this phone's public key. When you add a server, Ballast shows a one-line command that adds it; run it on the server as the user Ballast signs in as. With a password, check the username and that the server allows password sign-in.

"The server's identity changed"

The server's host key isn't the one saved the first time. That's expected after reinstalling the server. Compare the new fingerprint with ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub on the server, then tap Trust the new key. If you didn't change anything, don't.

A backup says "Needs read access"

The SSH user can read the server but not that backup. Give it read access to the repository or log, or use a user that has it: see Let Ballast read your backup. Ballast never uses sudo.

Ballast says overdue but the backup runs

A backup turns overdue when its last snapshot is older than its limit. If it simply runs less often, open it and use the limit Ballast observed, or pick another.

I don't get notifications

Ballast has no server, so it checks when you open it, when you pull to refresh, and when iOS gives it background time, a few times a day. Check that notifications are on for Ballast in iOS Settings; Ballast's Settings will say if they're off. For a check at a fixed time, add a Shortcuts automation that runs "Refresh Ballast".

Purchases

The trial and the unlock are tied to your Apple Account and shared with your family through Family Sharing. On a new device, open Settings › Ballast and tap Restore purchase.

What Ballast runs on my server

Only read-only commands that list snapshots and read logs, such as restic --no-lock snapshots --json, borg --bypass-lock list, kopia snapshot list --json and zfs list -t snapshot. Every one is shown in the app with its output. One exception: reads through borgmatic take Borg's lock, which briefly writes a lock file to the repository. Add the repository as plain Borg to avoid that.