Self-Hosted Alternatives to Time Machine
Why Replace Time Machine?
Time Machine is Apple’s built-in backup solution for macOS. It works well with Apple hardware — AirPort Time Capsule (discontinued), external USB drives, or macOS Server (discontinued). The problem:
- Hardware dependency. Apple discontinued both Time Capsule and macOS Server. Official network backup destinations are gone.
- Slow network backups. Time Machine over SMB to a NAS is notoriously unreliable and slow. Backup corruption is common.
- No encryption by default. Network Time Machine backups are unencrypted unless you specifically enable it.
- macOS only. If you have Linux or Windows machines alongside your Mac, Time Machine doesn’t help them.
- No cloud option. Time Machine only backs up to local storage. No off-site protection unless you manually rotate drives.
- Space inefficiency. Time Machine’s approach to versioning uses more space than modern deduplication tools.
Best Alternatives
BorgBackup + Borgmatic — Best Local Replacement
BorgBackup with Borgmatic provides automated, deduplicated, encrypted backup to any SSH-accessible server or NAS. It typically achieves 50-70% storage savings compared to Time Machine’s block-level copies.
Why it replaces Time Machine: Scheduled automated backups with versioning, point-in-time restores, and dramatically better storage efficiency. Works from macOS, Linux, and WSL.
Setup difficulty: Medium. Requires installing Borg on your Mac and configuring Borgmatic.
Read our full guide: How to Self-Host BorgBackup
Restic — Best for Cloud + Local Hybrid
Restic backs up to both local NAS and cloud storage (S3, Backblaze B2, Wasabi). This gives you the local speed of Time Machine plus off-site protection — something Time Machine can’t do at all.
Why it replaces Time Machine: Encrypted, deduplicated backup to any destination. Set up a cron job and it runs automatically, backing up to both your NAS and B2 for 3-2-1 compliance.
Setup difficulty: Medium. CLI-based, scheduled via cron or launchd on macOS.
Read our full guide: How to Self-Host Restic
Kopia — Best Managed Experience
Kopia includes a web UI and built-in scheduling that makes it the closest to Time Machine’s “set and forget” experience. It supports multiple backup destinations and can run as a background service on macOS.
Why it replaces Time Machine: Web-based snapshot management, automated scheduling, and cross-platform support. Browse and restore files through the UI without command-line knowledge.
Read our full guide: How to Self-Host Kopia
Samba with Time Machine Support — Most Compatible
If you want to keep using Time Machine but need a self-hosted destination, a Linux server running Samba with fruit:time machine = yes acts as a network Time Machine target.
Docker Compose for Samba Time Machine:
services:
samba:
# No semver Docker tags published — only architecture tags available
image: dperson/samba:latest
container_name: samba-timemachine
restart: unless-stopped
ports:
- "445:445"
volumes:
- timemachine-data:/backup
environment:
TZ: UTC
USERID: 1000
GROUPID: 1000
command: >
-u "tmuser;changeme"
-s "TimeMachine;/backup;yes;no;no;tmuser;tmuser;;"
-p
tmpfs:
- /tmp
volumes:
timemachine-data:
Enable Time Machine discovery via Avahi/mDNS for automatic detection on your Mac.
Why it replaces Time Machine: You keep the exact same macOS Time Machine experience — but the backup target is your own server instead of a discontinued Apple product.
Limitation: This only works for macOS. It doesn’t solve the multi-platform backup problem.
Feature Comparison
| Feature | Time Machine | BorgBackup | Restic | Kopia | Samba TM |
|---|---|---|---|---|---|
| macOS integration | Native | CLI + cron | CLI + cron | GUI app | Native |
| Linux support | No | Yes | Yes | Yes | No (server only) |
| Windows support | No | Via WSL | Yes | Yes | No |
| Deduplication | Block-level | Content-defined | Content-defined | Content-defined | Block-level |
| Compression | No | Yes (zstd, lz4) | Yes (zstd) | Yes (zstd) | No |
| Encryption | Optional | Always | Always | Always | Optional |
| Cloud backup | No | Via SSH/rclone | Yes (S3, B2) | Yes (S3, B2) | No |
| Storage efficiency | Low | High | High | High | Low |
| Web UI | No | No | No | Yes | No |
| Point-in-time restore | Yes | Yes | Yes | Yes | Yes |
Migration Guide
Step 1: Keep Time Machine Running (Temporarily)
Don’t disable Time Machine until your new backup solution is verified. Run both in parallel for at least 2 weeks.
Step 2: Install Your Chosen Tool on macOS
For BorgBackup:
brew install borgbackup borgmatic
For Restic:
brew install restic
For Kopia:
brew install kopia
Step 3: Configure and Run Initial Backup
Point your tool at the same directories Time Machine protects. By default, Time Machine backs up everything except system files:
# Common directories to back up
/Users/yourusername/
/Applications/
/Library/
Exclude large, recreatable directories:
# Common exclusions
~/Library/Caches
~/.Trash
~/Downloads
node_modules
.git
Step 4: Schedule Automatic Backups
macOS launchd (recommended over cron on macOS):
Create ~/Library/LaunchAgents/com.selfhosting.backup.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.selfhosting.backup</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/restic</string>
<string>backup</string>
<string>/Users/yourusername</string>
<string>--repo</string>
<string>sftp:backup@nas:/backup/mac</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardOutPath</key>
<string>/tmp/backup.log</string>
</dict>
</plist>
Load it:
launchctl load ~/Library/LaunchAgents/com.selfhosting.backup.plist
Step 5: Verify and Disable Time Machine
- Test a restore from your new backup
- Verify file integrity and permissions
- Disable Time Machine: System Settings → General → Time Machine → Off
- Optionally reformat the old Time Machine drive for other use
Cost Comparison
| Time Machine + External Drive | Self-Hosted (NAS) | Self-Hosted (Cloud) | |
|---|---|---|---|
| One-time cost | $60-120 (USB drive) | $200-400 (NAS) | $0 |
| Monthly cost | $0 | $0 | ~$3-6 (B2 storage) |
| 3-year cost | $60-120 | $200-400 | $108-216 |
| Multi-platform | macOS only | All platforms | All platforms |
| Off-site backup | No | No (unless remote NAS) | Yes |
| Encryption | Optional | Always on | Always on |
What You Give Up
- One-click restore from Recovery Mode. Time Machine integrates with macOS Recovery to restore entire systems. Self-hosted tools require booting into a live OS first.
- Finder integration. Time Machine’s “enter Time Machine” visual browser is unique. Self-hosted tools use FUSE mounts or CLI for browsing snapshots.
- Automatic exclusion of system files. Time Machine knows which macOS files are recreatable. Self-hosted tools require you to configure exclusions manually.
- Zero configuration. Time Machine works with zero setup — plug in a drive and click “Use as Backup Disk.” Self-hosted tools need initial configuration.
For most Mac users, the migration takes an afternoon. The ongoing benefits — better storage efficiency, cross-platform support, and cloud backup capability — are worth it.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments