Skip to content

ayufan/pve-backup-server-dockerfiles

Repository files navigation

Proxmox Backup Server in a Container

  • GitHub release (latest by date) Docker Image Version (latest stable (amd64)) Docker Image Version (latest stable (arm64))
  • GitHub release (latest by date including pre-releases) Docker Image Version (latest stable (amd64)) Docker Image Version (latest stable (arm64))

This is an unofficial compilation of Proxmox Backup Server to run it in a container for AMD64 and ARM64.

Running in a container might result in some functions not working properly. Feel free to create an issue to debug those.

Buy me a Coffee

ko-fi

If you found it useful :)

Common problems

  • Some people see authentication failure using admin@pbs: Ensure that /run is mounted to tmpfs which is requirement of 2.1.x
  • Some Synology devices use a really old kernel (3.1), for such the #15 is needed, and image needs to be manually recompiled.

Pre-built images

For starting quickly all images are precompiled and hosted at https://hub.docker.com/r/ayufan/proxmox-backup-server.

Or:

# Latest stable / release tag
docker pull ayufan/proxmox-backup-server:latest

# Latest pre-release / beta tag
docker pull ayufan/proxmox-backup-server:beta

Each GitHub Releases includes the following binary assets:

  • proxmox-backup-server-*.tgz - contains all archived debian installation files with the ./install script
  • proxmox-backup-client-*.tgz - contains a statically linked proxmox backup client

Run

wget https://raw.githubusercontent.com/ayufan/pve-backup-server-dockerfiles/refs/heads/main/docker-compose.yml
docker-compose up -d

Run beta variant:

wget https://raw.githubusercontent.com/ayufan/pve-backup-server-dockerfiles/refs/heads/main/docker-compose.yml
TAG=beta docker-compose up -d

Then login to https://<ip>:8007/ with admin / pbspbs. After that change a password.

See the example docker-compose.yml.

Features

The core features should work, but there are ones do not work due to container architecture:

  • ZFS: it is not installed in a container
  • Shell: since the PVE (not PAM) authentication is being used, and since the shell access does not make sense in an ephemeral container environment
  • PAM authentication: since containers are by definition ephemeral and no /etc/ configs are being persisted

Changelog

See Releases.

Configure

1. Add to Proxmox VE

Since it runs in a container, it is by default self-signed. Follow the tutorial: https://pbs.proxmox.com/docs/pve-integration.html.

You might need to read a PBS fingerprint:

docker-compose exec server proxmox-backup-manager cert info | grep Fingerprint

2. Add a new directory to store data

Create a new file (or merge with existing): docker-compose.override.yml:

version: '2.1'

services:
  pbs:
    volumes:
      - backups:/backups

volumes:
  backups:
    driver: local
    driver_opts:
      type: ''
      o: bind
      device: /srv/dev-disk-by-label-backups

Then, add a new datastore in a PBS: https://<IP>:8007/.

3. Configure TZ (optional)

If you are running in Docker it might be advised to configure timezone.

Create a new file (or merge with existing): docker-compose.override.yml:

version: '2.1'

services:
  pbs:
    environment:
      TZ: Europe/Warsaw

4. Allow smartctl access

To be able to view SMART parameters via UI you need to expose drives and give container a special capability.

Create a new file (or merge with existing): docker-compose.override.yml:

version: '2.1'

services:
  pbs:
    devices:
      - /dev/sda
      - /dev/sdb
    cap_add:
      - SYS_RAWIO

5. Persist config, graphs, and logs (optional, but advised)

Create a new file (or merge with existing): docker-compose.override.yml:

version: '2.1'

volumes:
  pbs_etc:
    driver: local
    driver_opts:
      type: ''
      o: bind
      device: /srv/pbs/etc
  pbs_logs:
    driver: local
    driver_opts:
      type: ''
      o: bind
      device: /srv/pbs/logs
  pbs_lib:
    driver: local
    driver_opts:
      type: ''
      o: bind
      device: /srv/pbs/lib

Install server on bare-metal or virtualized host

Docker is convienient, but in some cases it might be simply better to install natively.

You can pull compiled *.deb files from GitHub Releases.

Replace the v4.0.12 with the latest version.

wget https://github.com/ayufan/pve-backup-server-dockerfiles/releases/download/v4.0.12/proxmox-backup-server-v4.0.12-$(dpkg --print-architecture).tgz
tar zxf proxmox-backup-server-*.tgz
proxmox-backup-server-*/install

Use static client binary

Similar to server, the client binary is available for various architectures. The arm32 is considered unstable, and should only be able to backup, but likely cannot be used to restore data.

wget https://github.com/ayufan/pve-backup-server-dockerfiles/releases/download/v4.0.12/proxmox-backup-client-v4.0.12-$(dpkg --print-architecture).tgz
tar zxf proxmox-backup-client-*.tgz
proxmox-backup-client-*/proxmox-backup-client.sh

Build on your own / Recompile latest version or main

Refer to PROCESS.md.

Author

This is just built by Kamil Trzciński, 2020-2025 from the sources found on http://git.proxmox.com/.

About

Unofficial, and unmaintained build of proxmox-backup-server

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 3

  •  
  •  
  •