Backup iPhone Photos to Your Storage
Supports Backup to External Storage, SMB, WebDAV, S3-Compatible Buckets, and SFTP.
Open Source on GitHub.
Get for FREE · Official Website · 简体中文
| Step | What happens |
|---|---|
| Choose a Node | External Storage, SMB, WebDAV, S3-Compatible Buckets, or SFTP. |
| Check Months | Backup, Download, or Complement by month. |
| Run | Sync the Remote Index, Then Pause or Resume When Needed. |
| Action | Meaning |
|---|---|
| Backup | Writes original photos and videos from this device to the current Node. |
| Download | Restores backed-up items from the Node into Photos. |
| Complement | Backs up first, then downloads: it sends local items missing on the Node, then brings remote-only items back into Photos. |
We believe privacy matters as much as ownership.
- Source Code: github.com/zizicici/Watermelon
- Privacy Policy: watermelonbackup.com/privacy.html
- Official Website: watermelonbackup.com
One-Time Purchase. No Subscription.
| Item | Free | Pro |
|---|---|---|
| Price | - | US$7.99, About 2 Coffees |
| Foreground Backup | Included | Included |
| Node(s) | 1 | Unlimited |
| Automatic Background Backup | Not included | Included |
| PiP Progress | Not included | Included |
| Focus Mode | Not included | Included |
Pro is a one-time purchase and stays available for life. On a new device, use Restore Purchase to restore your entitlement.
- A Node is a storage connection you add in the app. It can be External Storage, SMB, WebDAV, an S3-Compatible Bucket, or SFTP.
- Credentials required by Nodes are stored in iOS Keychain and are not uploaded to Watermelon Backup servers.
- Watermelon Backup can back up and restore Live Photos by saving each Live Photo as a still image and paired video, then merging it back when imported.
- Photos and videos are not recompressed. Watermelon Backup keeps the original files as much as possible, so capture time and EXIF stay with the originals.
- If iCloud Photos is enabled, turn on Allow iCloud Photo Access so Watermelon Backup can fetch iCloud originals when needed.
- App Store: https://apps.apple.com/app/id6762260596
- Official Website: https://watermelonbackup.com
- App name: Watermelon Backup
For developers
The iOS app is the primary product target in this repository.
WatermelonMac is a separate macOS target for legacy-data migration only. It has not been released as an App Store, TestFlight, or signed distribution build. Do not point it at irreplaceable photo libraries or production storage.
Watermelon Backup is open source, and you can compile the app directly in Xcode.
- Open
Watermelon.xcodeprojin Xcode. - Select the
Watermelonscheme for the iOS app. - Run on a simulator or a real device.
- Run the
WatermelonTeststarget for the included unit tests.
| Path | Purpose |
|---|---|
Watermelon/ |
iOS app source: Home, onboarding, settings, backup orchestration, PhotoKit integration |
Shared/ |
Shared storage clients, database, Keychain, domain models, manifests, repo services |
WatermelonMac/ |
macOS legacy migration target; not the iOS backup pipeline |
WatermelonTests/ |
XCTest coverage for pure logic, storage signing, credentials, write-lock, and cleanup behavior |
docs/ |
Architecture, backup pipeline, data model, UI flow, and known technical issues |
AGENTS.md- concise project guide for coding agentsdocs/01-Architecture.md- module layering and dependenciesdocs/02-BackupCoreV2.md- upload, sync, download, preflight, and retry detailsdocs/03-DataModel.md- SQLite schemas and snapshot modelsdocs/04-UIFlow.md- Home, connection, onboarding, More page, and execution statesdocs/05-OpenIssues.md- current risks and technical debt