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

  1. Finder → Go → Connect to Server

    smb://pve.local/TimeMachine
    

    (or use your Proxmox IP, e.g. smb://192.168.1.8/TimeMachine)

  2. Login as time-machine-user

  3. Open System Settings → General → Time Machine → Add Backup Disk

  4. Select “pve Time Capsule” and use the same credentials

  5. 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.

📛

Follow us: Prasna IT · LinkedIn · Facebook · Instagram

  1. 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↩︎


Previous Post
Next Post