Skip to content

I Moved My Entire iCloud Photos Library to My Own Nextcloud Server

Transfer iCloud Photos to a self-hosted Nextcloud instance. 3 methods: manual upload, WebDAV CLI sync, and direct cloud-to-cloud transfer via CloudsLinker.

Introduction

I've been running Nextcloud on a small VPS for a couple of years now — mostly for documents and shared folders. But my photos were still locked inside iCloud, syncing across Apple devices I was slowly moving away from. The disconnect bothered me: I owned my files server, but my most personal data — decade of family photos — lived on Apple's infrastructure under Apple's terms. Moving my iCloud Photos to Nextcloud means I own every byte. No subscription that scales with library size, no terms-of-service changes that could restrict access, no vendor lock-in. Just my server, my storage, my rules. Here are three ways to make that move.

About iCloud Photos

iCloud Photos keeps your entire photo library synchronized across every Apple device — iPhone, iPad, and Mac — automatically and quietly in the background. It's one of the most seamless photo experiences available, as long as you stay inside Apple's ecosystem.

  • 5 GB free shared across backups, mail, files, and photos.
  • iCloud+ plans scale from 50 GB up to 12 TB.
  • Original quality storage with device optimization options.
  • Apple ecosystem only — no API, no programmatic access.

iCloud Photos is a sync service, not an archive. You pay monthly regardless of how often you access your photos, and the per-gigabyte cost is significantly higher than self-hosted storage where you control the hardware.

About Nextcloud

Nextcloud is a self-hosted, open-source file sync and share platform. You install it on your own server or VPS and control every aspect of your data — where it's stored, who can access it, and how long it's retained.

  • Complete data ownership — your server, your files, your rules.
  • Runs on your own server or VPS — any Linux box, Raspberry Pi, or cloud VM.
  • Extensible with apps — Memories (photos gallery), Recognize (face recognition), Maps, and hundreds more.
  • WebDAV native support — every file is accessible via standard WebDAV protocol.
  • No storage limits beyond your hardware — add disks as your library grows.

Photos transferred to Nextcloud land in the folder path you choose on your instance. Once there, the Memories app can index them into a timeline, detect faces, and display them on a map — all running on your own infrastructure.

Why Move Photos from iCloud Photos to Nextcloud?

The turning point for me was realizing that my most personal data — family photos, travel memories, years of screenshots and documents — lived on infrastructure I didn't control, under terms I didn't write. I was already running Nextcloud for documents and shared folders. Moving my photo library there was the logical next step toward owning my entire digital life.

  • Complete data ownership: Your photos live on hardware you control — a VPS, a home server, or a rented dedicated machine. No third party can scan, analyze, or restrict access to your files. If Apple changes their terms of service tomorrow, it doesn't affect you.
  • No recurring subscription that scales with library size: iCloud+ charges more as your library grows. With Nextcloud, storage cost is the price of a hard drive or a VPS plan — and it doesn't increase per-gigabyte the way consumer cloud subscriptions do. A 1 TB library on iCloud costs a meaningful monthly fee; the same library on a VPS with attached storage can cost a fraction of that.
  • Open-source transparency: Nextcloud's code is publicly auditable. You can inspect exactly how your data is handled, encrypted, and stored. There are no black boxes, no proprietary sync algorithms you can't examine, and no silent data processing happening behind the scenes.
  • Extensible photo management with Memories and Recognize: The Memories app turns Nextcloud into a full-featured photo gallery with timeline views, map integration, and video playback. The Recognize app adds on-device face detection and object recognition — all running locally on your server without sending data to any external API.
  • WebDAV interoperability: Every file on your Nextcloud instance is accessible via the standard WebDAV protocol. This means any WebDAV-compatible tool — rclone, cadaver, Cyberduck, the Nextcloud desktop client — can sync, upload, or manage your photos. You're never locked into a single client or proprietary sync protocol.

Getting photos out of iCloud and into your Nextcloud instance takes a few deliberate steps. Here are three approaches that work in practice.

Method 1: Download from iCloud Photos, Then Upload via Nextcloud Web Interface

The simplest approach — no CLI tools required. Best for small batches or a quick test before committing to a larger migration.

Step 1: Export from iCloud Photos

Open iCloud Photos on the web and sign in with your Apple ID.

Select the photos or albums you want to export. Click the download icon and choose your preferred format:

  • Original Format — preserves HEIC, Live Photos, and RAW files at full quality.
  • Most Compatible — converts HEIC to JPEG. Useful if your Nextcloud apps or viewers don't handle HEIC well.

Step 2: Upload to Nextcloud via Web Interface

Log into your Nextcloud instance through its web interface and navigate to the target folder where you want your photos to live (e.g., /Photos/iCloud Import/).

  1. Click the + button at the top of the file list and select Upload file.
  2. Select the extracted photo files from your local machine, or drag and drop them into the browser window.
  3. Wait for the upload to complete — progress is shown in the bottom-left corner.

Method 2: Download from iCloud, Then Upload via WebDAV CLI (rclone / cadaver)

The developer-friendly path. Download photos locally from iCloud, then push them to your Nextcloud instance using rclone or cadaver over WebDAV. This gives you full control over folder structure, parallel uploads, and automation.

Step 1: Download from iCloud Photos

Use the same iCloud web export from Method 1, or download via the Photos app on macOS (Photos > Select All > File > Export Unmodified Originals) to a local folder.

Step 2: Locate Your Nextcloud WebDAV URL

Every Nextcloud instance exposes a WebDAV endpoint. The URL format is:

https://your-nextcloud-domain.com/remote.php/dav/files/USERNAME/

Replace your-nextcloud-domain.com with your server's domain and USERNAME with your Nextcloud login username. You can find this URL in the Nextcloud web interface under Settings > WebDAV (bottom-left of the Files app).

Step 3: Upload with rclone (recommended)

Configure rclone with your Nextcloud WebDAV credentials:

rclone config
# Choose: New remote
# Name: nextcloud
# Type: WebDAV
# URL: https://your-nextcloud-domain.com/remote.php/dav/files/USERNAME/
# Vendor: Nextcloud
# User: your-nextcloud-username
# Password: your-nextcloud-password (or app password)

Then sync the local photos folder to your Nextcloud instance:

rclone sync /path/to/icloud-photos nextcloud:/Photos/iCloud-Import/ --progress --transfers 4

rclone handles parallel uploads, automatic retries, and can resume interrupted transfers. The --transfers 4 flag runs 4 concurrent uploads — keep this moderate for WebDAV to avoid overwhelming your Nextcloud server.

Alternative: Upload with cadaver

# Install cadaver (Debian/Ubuntu)
sudo apt install cadaver

# Connect to your Nextcloud WebDAV endpoint
cadaver https://your-nextcloud-domain.com/remote.php/dav/files/USERNAME/

# Navigate and upload
cd Photos/iCloud-Import
mput /path/to/icloud-photos/*

Method 3: Move iCloud Photos to Nextcloud Directly in the Cloud (No Local Downloads)

When Self-Hosting Shouldn't Mean Self-Downloading

The whole point of self-hosting is control — not spending a weekend babysitting downloads and uploads. Downloading hundreds of gigabytes to your laptop just to re-upload them to your own server adds hours of wait time, ties up your bandwidth twice, and requires local disk space you might not have. CloudsLinker connects iCloud Photos and Nextcloud directly. Photos move cloud-to-cloud — from iCloud's servers straight to your Nextcloud instance via WebDAV — without passing through your computer, without consuming your home internet connection, and without needing a single gigabyte of free space on your hard drive.

Step 1: Connect iCloud Photos

In CloudsLinker, click Add Cloud and select iCloud Photos. Enter your Apple ID and password. If two-factor authentication is enabled, enter the verification code from your trusted Apple device when prompted.

Connect iCloud Photos inside CloudsLinker dashboard

Once connected, your iCloud albums appear in the CloudsLinker dashboard. You can transfer your entire library or select specific albums.

Step 2: Connect Nextcloud (WebDAV Credentials)

Nextcloud connects to CloudsLinker via the WebDAV protocol. You need your Nextcloud server URL, username, and password.

What you need:

  • Server URL: Your Nextcloud WebDAV endpoint, typically https://your-nextcloud-domain.com/remote.php/dav/files/USERNAME/
  • Username: Your Nextcloud login username.
  • Password: Your Nextcloud password or an app-specific password (recommended if you have 2FA enabled on Nextcloud).

Add Nextcloud in CloudsLinker:

  1. Click Add Cloud and select Nextcloud (or WebDAV).
  2. Enter your server URL, username, and password.
  3. Confirm the connection.
Connect Nextcloud using WebDAV credentials in CloudsLinker

Once connected, your Nextcloud folder structure appears in the CloudsLinker file browser.

Step 3: Configure the Transfer

Go to the Transfer section. Set iCloud Photos as the source and Nextcloud as the destination.

For the destination, select the target folder on your Nextcloud instance where you want photos to land — for example, /Photos/iCloud-Import/ or /Photos/2024/. Photos arrive as individual files inside that folder path, named by their original filenames.

If you want to preserve your iCloud album organization, transfer one album at a time: select a specific iCloud album as the source, use a matching folder on Nextcloud as the destination (e.g., /Photos/Italy-2024/), and run each album as a separate task.

Transfer configuration from iCloud Photos to Nextcloud in CloudsLinker

Step 4: Start and Monitor the Transfer

Click Transfer Now. The task appears in your Task List, where you can monitor progress in real time. Because the transfer runs entirely in the cloud, your computer does not need to stay on.

For large libraries, this is the key advantage: photos move directly from iCloud's infrastructure to your Nextcloud server using CloudsLinker's servers — not your home internet connection. Once transferred, the files are immediately accessible through the Nextcloud web interface, desktop client, or mobile app. If you have the Memories app installed, it will begin indexing the new photos automatically.

Comparing the 3 Ways to Move Photos from iCloud Photos to Nextcloud

Method Ease of Use Speed Best For Uses Local Bandwidth Skill Level
Nextcloud Web Interface (Download + Upload) ★★★★★ ★★☆☆☆ Small batches, quick tests Yes (download + upload) Beginner
WebDAV CLI (rclone / cadaver) ★★★☆☆ ★★★★☆ Developers, automation, large structured uploads Yes (download + upload) Intermediate
CloudsLinker (Cloud-to-Cloud) ★★★★☆ ★★★★★ Large libraries, full migration No Beginner
Practical Tips for Moving iCloud Photos to Nextcloud
  • Check your server's available disk space first: Before starting a migration, verify that your Nextcloud server has enough storage to accommodate your iCloud library. Check your iCloud library size in Settings > Apple ID > iCloud > Manage Storage on your iPhone, then confirm your server has at least that much free space plus a comfortable margin.
  • Increase PHP upload limits for large files: Nextcloud's upload capabilities depend on your PHP configuration. For photo migrations involving large RAW files or videos, increase upload_max_filesize, post_max_size, and memory_limit in your php.ini. A setting of 512M or higher handles most photo and video files comfortably.
  • Install the Memories app for a gallery experience: Raw files in Nextcloud folders are just files — no timeline, no map, no face grouping. Install the Memories app for a full photo management experience. After migration, run occ memories:index to build the timeline index. The Recognize app adds face detection and object tagging.
  • Plan your folder structure before uploading: Decide on a folder hierarchy before your first transfer — for example, /Photos/2024/ by year, or /Photos/Italy-Trip/ by album name. Reorganizing thousands of files after they're already on the server is tedious. A consistent structure also helps the Memories app organize your timeline correctly.
  • Ensure your Nextcloud instance uses HTTPS: WebDAV transfers send credentials with every request. Your Nextcloud server must be accessible over HTTPS (TLS) to protect your username and password during transfer. If you're using a self-signed certificate, make sure your WebDAV client or CloudsLinker can accept it.
  • iCloud 2FA: have your Apple device nearby: When connecting iCloud Photos in CloudsLinker, you'll need to complete two-factor authentication. Have your trusted iPhone or iPad on hand to receive and enter the verification code. Confirm that "Access iCloud Data on the Web" is enabled in your Apple ID settings before starting.
  • Verify before removing anything from iCloud: After the transfer completes, spot-check a few albums' worth of files on your Nextcloud instance — verify file counts, open a few photos, and confirm video playback works — before cancelling your iCloud+ plan or deleting originals. CloudsLinker's Task List shows a transfer summary when each task finishes.

Frequently Asked Questions

Nextcloud stores files in standard folders on your server's filesystem. Photos transferred from iCloud arrive as individual files inside the folder path you specify during setup (e.g., /Photos/iCloud-Import/IMG_1234.HEIC).

There is no automatic album hierarchy created by default. If you want to mirror your iCloud album structure, create matching folders on Nextcloud and transfer one album at a time. The Memories app can then display photos in a timeline based on EXIF date metadata, regardless of folder structure.

Not automatically. When you run a transfer in CloudsLinker, all photos go into the single folder you select — iCloud album names are not recreated as separate subfolders.

To preserve your album structure, transfer one album at a time: in CloudsLinker, set a specific iCloud album as the source, then use a matching folder on Nextcloud as the destination (e.g., /Photos/Italy-2024/). Repeat for each album. In Nextcloud, you can also use tags to organize photos across albums after migration.

Nextcloud stores any file type — HEIC, RAW, MOV (Live Photos), and every other format will be stored exactly as transferred, at full original quality.

Preview and thumbnail generation depends on your server's configuration. For HEIC previews, ensure your server has libheif installed. The Memories app provides better preview support for HEIC and RAW files than the default Files app. Live Photos (paired HEIC + MOV files) are stored as separate files — Memories can display them as live photos if both files are in the same folder.

iCloud Photos is connected using your Apple ID and password, followed by two-factor authentication. You'll receive a verification code on your trusted Apple device and enter it when CloudsLinker prompts you.

Before connecting, confirm that "Access iCloud Data on the Web" is enabled in your Apple ID settings at appleid.apple.com. Once connected, your iCloud albums and full library appear in the CloudsLinker dashboard.

Nextcloud itself has no built-in storage cap — your limit is the disk space available on your server. If you're running Nextcloud on a VPS, check your plan's storage allocation. On a home server, it's limited by your physical drives.

Nextcloud admins can set per-user storage quotas, but as the admin of your own instance, you control that setting. Before starting a large migration, verify that your available disk space exceeds your iCloud library size (check in Settings > Apple ID > iCloud > Manage Storage on your iPhone).

It can be either. CloudsLinker copies files — it does not delete originals from iCloud. After the transfer, your photos exist in both locations.

If you're treating this as a migration, you can cancel your iCloud+ plan after verifying the transfer (but only after thorough verification). If you're treating it as a backup, keep both — iCloud for daily convenience on Apple devices, Nextcloud as your independent, self-hosted archive.

Yes. When configuring the transfer in CloudsLinker, you can navigate into a specific iCloud album instead of selecting the entire library. This is useful for testing with a small album first, or for migrating albums selectively — each into its own folder on Nextcloud.

Selective transfer also makes sense if you're only archiving older albums to Nextcloud while keeping recent photos in iCloud for active use on your Apple devices.

Nextcloud itself is lightweight — it runs on a Raspberry Pi for small libraries. For a large photo migration (hundreds of gigabytes or more), the bottleneck is usually disk I/O and PHP memory, not CPU.

A VPS with 2+ GB RAM, an SSD-backed storage volume, and PHP configured with at least 512 MB memory limit will handle most migrations smoothly. If you plan to use the Memories app with face recognition (Recognize), you'll want 4+ GB RAM and a more capable CPU for the initial indexing pass. After indexing completes, resource usage drops back to normal.

Conclusion

A quick test with one album? Download from iCloud and upload through the Nextcloud web interface. A full library migration without tying up your home connection or filling your laptop's drive? CloudsLinker moves photos cloud-to-cloud — from iCloud's servers directly to your Nextcloud instance — without touching your local machine. Start with a small album to verify your folder structure and WebDAV connectivity before migrating everything.

Online Storage Services Supported by CloudsLinker

Transfer data between over 48 cloud services with CloudsLinker

OneDrive

OneDrive

Google Drive

Google Drive

Google Photos

Google Photos

Shared Drive

Shared Drive

OneDrive for Business

OneDrive for Business

Dropbox

Dropbox

Box

Box

Mega

Mega

pCloud

pCloud

Yandex

Yandex

ProtonDrive

ProtonDrive

AWS

AWS

GCS

GCS

iDrive

iDrive

Storj

Storj

DigitalOcean

DigitalOcean

Wasabi

Wasabi

1fichier

1fichier

PikPak

PikPak

TeleBox

TeleBox

OpenDrive

OpenDrive

Backblaze B2

Backblaze B2

Fastmail file

Fastmail file

SharePoint

SharePoint

Nextcloud

Nextcloud

ownCloud

ownCloud

Premiumize me

Premiumize me

HiDrive

HiDrive

Put.io

Put.io

Sugar Sync

Sugar Sync

Jottacloud

Jottacloud

Seafile

Seafile

Ftp

Ftp

SFtp

SFtp

NAS

NAS

WebDav

WebDav

4shared

4shared

Icedrive

Icedrive

Cloudflare R2

Cloudflare R2

Scaleway

Scaleway

Doi

Doi

iCloud Drive

iCloud Drive

iCloud Photos

iCloud Photos

FileLU

FileLU

Zoho WorkDrive

Zoho WorkDrive

Telia Cloud / Sky

Telia Cloud / Sky

Drime

Drime

Filen

Filen

Didn' t find your cloud service? Be free to contact: [email protected]

Further Reading

Effortless FTP connect to google drive: Transfer Files in 3 Easy Ways

Explore three efficient methods to connect Google Drive with FTP, enabling seamless file transfers. This comprehensive guide provides detailed instructions, benefits, and tips for effective file management.

Learn More >

Google Photos to OneDrive: 3 Innovative Transfer Strategies

Learn three effective methods to transfer your Google Photos to OneDrive. Explore Web-Based Transfers, Rclone, and CloudsLinker for an efficient shift.

Learn More >

Google Photos to Proton Drive: 3 Effective Transfer Techniques

Discover three practical methods to move your Google Photos to Proton Drive. Learn about Web-Based Uploading, Rclone, and CloudsLinker for a smooth transition.

Learn More >

Interested in learning more?