luispabon/pve-backup-server-dockerfiles
Unofficial, and unmaintained build of proxmox-backup-server
Proxmox Backup Server in a Container
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
If you found it useful :)
Common problems
- Some people see authentication failure using
admin@pbs: Ensure that/runis mounted totmpfswhich is requirement of2.1.x - Some Synology devices use a really old kernel (3.1), for such the ayufan#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:
docker pull ayufan/proxmox-backup-server:latestRun
docker-compose up -dThen login to https://<ip>:8007/ with admin / pbspbs.
After that change a password.
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 Fingerprint2. 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-backupsThen, 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/Warsaw4. 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_RAWIO5. 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/libInstall on bare-metal host
Docker is convienient, but in some cases it might be simply better to install natively.
Since the packages are built against Debian Buster your system needs to run soon
to be stable distribution.
You can copy compiled *.deb (it will automatically pick amd64 or arm64v8 based on your distribution)
from the container and install:
cd /tmp
docker run --rm ayufan/proxmox-backup-server:latest tar c /src/ | tar x
apt install $PWD/src/*.debRecompile latest version or master
You can compile latest version or master with a set of commands
and push them to the registry.
# build v1.0.5
make all-build VERSION=v1.0.5
# build master
make all-build
# build and push to registry v1.0.5
make all-push VERSION=v1.0.5 REGISTRY=my.registry.com/pbs
# build and push to registry v1.0.5
make all-push REGISTRY=my.registry.com/pbs
# make the given version latest
make all-latest VERSION=v1.0.5Build on your own
make dev-buildIt builds on any platform, which can be: amd64, arm32v7, arm64v8,
etc. Wait a around 1-3h to compile.
Then you can push to your registry:
make dev-pushOr run locally:
make dev-shell
make dev-runYou might as well pull the *.deb from within the image
and install on Debian Bullseye.
Author
This is just built by Kamil Trzciński, 2020-2023
from the sources found on http://git.proxmox.com/.