PBS 4.2 S3 Datastore on Self-Hosted MinIO
Deploy MinIO as an S3 target and add it to Proxmox Backup Server 4.2 as an S3 datastore — with the HTTPS requirement and mandatory local cache made explicit.
DistrosDebian 13, Ubuntu 24.04
Shell
bashUpdated
Script
# Self-hosted object-storage backups: MinIO S3 target + PBS 4.2 S3 datastore.
# Full walkthrough: /articles/pbs-42-minio-s3-backups
# ===== Part A: MinIO S3 target (verified this session) =====
# Set your OWN credentials. Console :9001, S3 API :9000.
docker run -d --name minio -p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=youradmin \
-e MINIO_ROOT_PASSWORD=CHANGE_ME_STRONG \
minio/minio server /data --console-address ":9001"
# Create the bucket PBS will use (path-style addressing).
export MC_HOST_local="http://youradmin:CHANGE_ME_STRONG@localhost:9000"
docker run --rm --network host -e MC_HOST_local minio/mc mb local/pbs-backups
docker run --rm --network host -e MC_HOST_local minio/mc ls local # confirm
# ===== Part B: PBS 4.2 S3 datastore (official CLI; run on the PBS host) =====
# PBS requires HTTPS for S3 -> MinIO must present TLS. For a self-signed cert,
# pass its fingerprint with --fingerprint <sha256>.
proxmox-backup-manager s3 endpoint create myminio \
--access-key 'youradmin' \
--secret-key 'CHANGE_ME_STRONG' \
--endpoint 'https://10.0.0.110:9000' \
--region us-east-1 \
--path-style true
# --fingerprint <sha256-of-self-signed-cert>
# The datastore needs a persistent LOCAL CACHE dir (docs suggest 64-128 GiB).
proxmox-backup-manager datastore create s3store /var/cache/pbs-s3 \
--backend type=s3,client=myminio,bucket=pbs-backups
What this does
This stands up self-hosted object-storage backups: MinIO as an S3-compatible target, added to Proxmox Backup Server 4.2 as an S3 datastore (a feature that left tech-preview in the April 2026 release). Your PBS backups then land in a bucket on hardware you own.
Full walkthrough and the two gotchas are in PBS 4.2 Backups to Self-Hosted MinIO Object Storage.
Prerequisites
- Docker for MinIO (or the ASUSTOR App Central MinIO CE package on a NAS).
- Proxmox Backup Server 4.2+ for the S3 datastore backend.
- A TLS certificate for MinIO (PBS rejects plain-text S3) and a local disk for the datastore cache.
Notes
- Honest status: this playbook is
tested: falseas a whole. Part A (MinIO + bucket + object round-trip) was verified on real hardware this session — the bucket created and an object stored and listed. Part B (theproxmox-backup-managerS3 commands) is taken verbatim from the official PBS 4.2 storage docs and was not run against a live PBS 4.2 host here. Validate Part B on your own PBS before relying on it. - Make these values your own: replace
10.0.0.110with your MinIO host, pick your own root credentials (never the demo ones), and change any default login immediately — the ASUSTOR MinIO CE package in particular ships a well-known default and is labeled testing-only. If a value looks specific to one machine, it’s a placeholder to change. - HTTPS is mandatory. PBS does not talk plain-text S3. MinIO must present TLS; for a self-signed cert, supply the SHA-256 fingerprint via
--fingerprint. - MinIO uses path-style addressing (
endpoint/bucket), so set--path-style true. - You still need local disk. The S3 datastore requires a persistent local cache directory (docs suggest 64–128 GiB), and the bucket must grant get/put/list/delete. One S3 datastore can’t be shared by two PBS instances simultaneously.