Turn your Proxmox host into a fully functional Apple Time Machine backup server using Samba + Avahi — compatible with all modern macOS versions
Published: Nov 7, 2025
The following is the steps to connect a USB external disk to proxmox host and enable Time machine. The instructions work for macOS 10.13 → 15.7.1
1. Connnect your USB disk and mount it
lsblk # find your USB disk, e.g. /dev/sdb
fdisk /dev/sdb # create GPT + one partition (n → enter → enter → w)
mkfs.ext4 /dev/sdb1
mkdir -p /mnt/usb-timemachine
blkid /dev/sdb1 # copy UUID
Edit /etc/fstab:
nano /etc/fstab
Add:
UUID=<your-uuid> /mnt/usb-timemachine ext4 defaults 0 2
Then:
mount -a
2. Install Samba + Avahi
apt update
apt install samba avahi-daemon avahi-utils -y
systemctl enable --now smbd nmbd avahi-daemon
3. Create Time Machine User
useradd -m time-machine-user
passwd time-machine-user
smbpasswd -a time-machine-user
smbpasswd -e time-machine-user
Prepare the directory:
mkdir -p /mnt/usb-timemachine/timemachine
chown -R time-machine-user:time-machine-user /mnt/usb-timemachine/timemachine
chmod -R 770 /mnt/usb-timemachine/timemachine
4. Configure Samba
nano /etc/samba/smb.conf
Replace all contents with:
[global]
workgroup = WORKGROUP
server string = Proxmox Time Capsule
map to guest = Bad User
disable spoolss = yes
host msdfs = no
server signing = mandatory
smb encrypt = required
min protocol = SMB2
max protocol = SMB3
server min protocol = SMB2_10
ea support = yes
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:metadata = stream
fruit:posix_rename = yes
fruit:resource = file
fruit:locking = none
fruit:encoding = native
fruit:zero_file_id = yes
strict sync = no
sync always = no
spotlight = no
[TimeMachine]
path = /mnt/usb-timemachine/timemachine
read only = no
valid users = time-machine-user
vfs objects = catia fruit streams_xattr
fruit:time machine = yes
fruit:time machine max size = 900G
msdfs root = no
Restart:
systemctl restart smbd nmbd
5. Advertise via Bonjour (Avahi)
nano /etc/avahi/services/smb.service
Paste:
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h Time Capsule</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>
Restart Avahi:
systemctl restart avahi-daemon
Verify broadcast:
avahi-browse -a | grep SMB
Expected output:
= eth0 IPv4 pve Time Capsule _smb._tcp local
6. Test Locally
smbclient -L localhost -U time-machine-user
Expected:
Sharename Type
--------- ----
TimeMachine Disk
7. Connect from macOS
-
Finder → Go → Connect to Server
smb://pve.local/TimeMachine(or use your Proxmox IP, e.g.
smb://192.168.1.8/TimeMachine) -
Login as time-machine-user
-
Open System Settings → General → Time Machine → Add Backup Disk
-
Select “pve Time Capsule” and use the same credentials
-
Time Machine will show “Preparing backup…”
8. Verify on Proxmox
ls /mnt/usb-timemachine/timemachine
You should see:
<YourMacName>_<UUID>.sparsebundle
Done!
You now have a fully compatible, Proxmox-hosted Time Machine server that works across macOS 10.13 → 15.7, supports multiple Macs, uses SMB3 encryption, and broadcasts as a genuine Time Capsule.
📛
-
Tested on Proxmox version Linux pve 6.14.8-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.14.8-2 (2025-07-22T10:04Z) x86_64 GNU/Linux. ↩︎