Setup a new PBS client
Proxmox Backup Client on Raspberry Pi (ARM64) — Community Setup Guide
This guide installs **`proxmox-backup- on a Raspberry Pi (ARM64) and schedules backups to your client`**client**existing**existing PBS server (no PBS web UI on the Pi).
> **Tip:
**Try to keep the client major version close to your PBS major version. Proxmox tests compatibility across current major versions, but “two or more releases apart” is best-effort.citeturn2view0##1) Requirements
-
Raspberry Pi running
**64-bitOS**OS (`aarch64`aarch64)-Network access to your PBS server (default port
**8007**8007)-A PBS user +
**APItoken**token (recommended)Check ARM64:
uname -m# should be: aarch64##2) Install the client (community ARM64 packages)
We’ll use the community ARM64 build repo
**wofferl/proxmox-backup-arm64**arm64 to download prebuilt`.packages.deb`debciteturn0search0turn0search9###A) Download packages
sudo apt updatesudo apt install -y git ca-certificates curlcd /tmpgit clone https://github.com/wofferl/proxmox-backup-arm64.gitcd proxmox-backup-arm64# Choose branch (common pattern):# - Debian 12 / Bookworm: git checkout stable-3# - Debian 13 / Trixie: stay on main## Pick a VERSION tag from the repo releases page.# Example (as seen in your packages folder):VERSION="4.1.1-1"./build.sh download=$VERSION````build.sh` expects `download=VERSION`. citeturn0search0turn0search9###B) Install ONLY the client packages
cd /tmp/proxmox-backup-arm64/packages# minimal client installsudo apt install -y ./proxmox-mini-journalreader_*_arm64.deb ./proxmox-backup-client_*_arm64.deb# optional: restore toolsudo apt install -y ./proxmox-backup-file-restore_*_arm64.debproxmox-backup-client version```>Don’t install
`proxmox-backup-server_*.on the Pi if you only need a client.deb`deb## 3) Create a PBS token + collect connection infoOn your **PBS server**, create a dedicated user/token (recommended) and grab:- **Repository string** (format like `user@pbs!token@host:datastore`) citeturn1view0- **Token secret** (used as the “password”) citeturn1view0- **Server fingerprint** (needed if the TLS cert isn’t trusted by system CAs) citeturn1view0In PBS UI, you can usually find these under the datastore “connection information” section.## 4) Configure the Pi (secure files)Create a small config directory:```bashsudo mkdir -p /etc/proxmox-backup-clientsudo chmod 700 /etc/proxmox-backup-client```### A) Save your repository string```bash# Example:# echo "backup@[email protected]:datastore1" | sudo tee /etc/proxmox-backup-client/repositoryecho "PUT_YOUR_REPOSITORY_HERE" | sudo tee /etc/proxmox-backup-client/repository >/dev/nullsudo chmod 600 /etc/proxmox-backup-client/repository```### B) Save your token secret```bashsudo nano /etc/proxmox-backup-client/token.secretsudo chmod 600 /etc/proxmox-backup-client/token.secret```### C) (Optional) Save PBS fingerprint```bash# only needed if your Pi doesn't trust PBS's TLS cert chainsudo nano /etc/proxmox-backup-client/fingerprintsudo chmod 600 /etc/proxmox-backup-client/fingerprint```## 5) Create the backup scriptCreate:```bashsudo nano /usr/local/sbin/pbs_backup.shsudo chmod 700 /usr/local/sbin/pbs_backup.sh```Paste (adjust paths to your Pi):```bash#!/usr/bin/env bashset -euo pipefailexport PBS_REPOSITORY="$(cat /etc/proxmox-backup-client/repository)"export PBS_PASSWORD_FILE="/etc/proxmox-backup-client/token.secret"# Optional TLS pinning:if [[ -f /etc/proxmox-backup-client/fingerprint ]]; thenexport PBS_FINGERPRINT="$(head -n1 /etc/proxmox-backup-client/fingerprint)"fi# Note: proxmox-backup-client skips mount points by default; include them explicitly only if desired. citeturn1view0exec proxmox-backup-client backup etc.pxar:/etc home.pxar:/home --exclude /home/**/.cache --exclude /home/**/node_modules --exclude /mnt --exclude /media```Test a manual run:```bashsudo /usr/local/sbin/pbs_backup.sh```List snapshots:```bashsudo -E proxmox-backup-client snapshot list````snapshot list` is documented as a way to view your backups. citeturn1view0## 6) Schedule it with systemd (daily)```bashsudo tee /etc/systemd/system/pbs-backup.service >/dev/null <<'EOF'[Unit]Description=Proxmox Backup Client (Pi) -> PBSWants=network-online.targetAfter=network-online.target[Service]Type=oneshotExecStart=/usr/local/sbin/pbs_backup.shEOF``````bashsudo tee /etc/systemd/system/pbs-backup.timer >/dev/null <<'EOF'[Unit]Description=Nightly Proxmox Backup Client[Timer]OnCalendar=*-*-* 02:30:00Persistent=true[Install]WantedBy=timers.targetEOF```Enable:```bashsudo systemctl daemon-reloadsudo systemctl enable --now pbs-backup.timersystemctl list-timers | grep pbs-backup```Check logs after it runs:```bashjournalctl -u pbs-backup.service -n 200 --no-pager```## Notes- Environment variables supported by the client include `PBS_REPOSITORY`, `PBS_PASSWORD_FILE`, and `PBS_FINGERPRINT`. citeturn1view0- Excluding files can also be done with `.pxarexclude` files if you prefer patterns near the data. citeturn1view0Back to top