Content Migration
You likely have existing content available in the cloud which you want to make accessible from the applications installed on your server. For example, you may want to migrate photos and videos from iCloud to Immich, and move other documents from OneDrive to NextCloud.
This section will give you a quick overview of steps you can take to perform the migration. If your cloud provider is not listed in this section, you may need to look for guidance on how to retrieve your information from their online documentation.
Downloading Your Content From the Cloud
Google Drive for Desktop
[!note] For documents only
If you use Google Drive on for Desktop on your Mac or Windows computer, you can enable file-mirroring to have the Drive software download all files from the cloud to your computer for offline access. Use this method for documents only. For photos and videos, you should use Google Takeout as shown in the section below. This is because Google Takeout exports additional metadata about your photos which can be imported into Immich.
To make all your cloud files available offline using Drive for Desktop:
- Open Drive for Desktop
- Click on Settings ⚙️ > Preferences
- On the left, click Folders from Drive
- Under "My Drive syncing options," select Mirror files
- Close Drive for desktop
Google Takeout
[!note] For documents and photos
You can export your photos and videos from Google using the Google Takeout tool. You can also use this method as an alternative to export documents stored on your Google Drive, if you prefer it over using Drive for Desktop, as outlined in the previous section.
- Open Google Takeout on a web browser
- Make sure you are signed into Google with the account that has the data you want to migrate to the server
- Unselect all content first (using the link available at the top of the tool)
- Select the options for Drive and Photos only, then click Next
- Select Send download link via email as Destination
- Select Export once as Frequency
- Select ZIP as File Type
- You can keep the File Size at 2GB. Choosing a larger size may be convenient if you have a lot of content.
- Click Create export
A few days later you should receive an email with a series of download links from Google. Download all the files to your computer.
Google Workspace
[!note] For documents only
If you want to migrate documents from Google Workspace to use from NextCloud on your server, follow the steps provided by this guide to download the data to your computer: https://support.google.com/a/answer/14339894
iCloud Drive
[!note] For documents only
You can use Mac's built-in Drive software to make all your documents available offline, in preparation to migrate them to the server. To do this, check out the iCloud Drive User Guide and take the steps outlined under the following sections:
- Download items stored only in iCloud Drive to your Mac
- Keep items downloaded on your Mac
iCloud Data and Privacy
[!note] For documents only
You can request a copy of all your iCloud data from Apple for download, using their Data and Privacy tool. You can use this method as an alternative to iCloud Drive. This may be convenient if you no longer use a Mac computer, for example.
This method is not recommended for exporting Photos because it does not preserve all the metadata available and in some cases may lose important information (such as timestamps or GPS coordinates). To export photos and videos, see the following section.
To request a copy of all your iCloud data for download:
- Navigate to the Data and Privacy page on Apple's website and sign in with your Apple ID account.
- Click the link under the section named Get a copy of your data
- Make sure the checkbox for iCloud Drive files and documents is selected
- Click on Continue at the bottom of the screen.
- Choose a file size for download. If you have a lot of data available in iCloud, choose a larger file size. The option 5GB may be an ideal size for most people.
- Click on Complete request
A few days later you should receive an email with a series of download links from Google. Download all the files to your computer.
Photos App on iPhone
[!note] For photos only
If you use an iPhone, you can upload the photos that are available either locally (on your phone's local storage) or in iCloud without having to export the photos first. Once installed on your phone, the Immich app can upload your existing photos as part of the background uploading process.
You will still need to manually transfer any photos that in a different cloud (for example, Google Photos) and not present on your phone's local storage, using any of the other methods available in this page.
[!tip] If your phone has enough capacity to store all your iCloud photos locally, you may be able to speed up the transfer process following the steps below.
The following settings will download all your iCloud photos to the phone:
- On your iPhone, tap Settings > [your name] > iCloud > Photos
- Then, select Download and Keep Originals
iCloud Photo Exporter
[!note] For photos only
If you are unable to use the Photos App on iPhone (for example, if you have switched to an Android phone but still have photos stored in iCloud), you can use the tool called iCloud Photos Downloader. I recommend this tool over other export methods because it downloads metadata about your photos as well, which isn't normally exported when using iCloud Drive or Data and Privacy exports.
To download a copy of all your photos from iCloud using this tool, open a Command Line (Windows) or a Terminal (Mac), and run the following.
Windows:
mkdir %HOMEPATH%\photo-export
cd %HOMEPATH%\Downloads
curl -s -o icloudpd https://github.com/icloud-photos-downloader/icloud_photos_downloader/releases/download/v1.27.4/icloudpd-1.27.4-windows-amd64.exe
icloudpd.exe -d "%HOMEPATH%\photo-export" -u your_apple_id -p your_apple_password
Mac:
mkdir ~/photo-export
cd ~/Downloads
curl -s -o icloudpd https://github.com/icloud-photos-downloader/icloud_photos_downloader/releases/download/v1.27.4/icloudpd-1.27.4-macos-amd64
chmod +x icloudpd
icloudpd -d ~/photo-export -u your_apple_id -p your_apple_password
After running the commands above, your iCloud photos should available in the photo-export
folder.
OneDrive for Desktop
[!note] For documents and photos
If you use OneDrive for Desktop, you can configure it to keep a copy of all your documents and photos available offline. To do this:
On Windows:
- Click the OneDrive cloud icon in your notification area
- Select the OneDrive ⚙️ Settings icon, then Settings
- Go to the Sync and back up tab and expand the Advanced settings
- Under Files On-Demand, select Download all files
On Mac:
- Click on the OneDrive icon on the notification bar (top of the screen)
- Click on the ⚙️ (gear) icon, then select Preferences
- Under "Files On-Demand (Advanced)", click on Download all OneDrive files now
Alternative:
If you only want to download a small subset of OneDrive folders to import into your server:
- Navigate to the file or folder you want to download on File Explorer (Windows) or Finder (Mac)
- Right-click the item and select Always keep on this device
Importing Your Content to the Server
To import documents and photos to your server, you can use one of the methods described below. Make sure to review all options and choose the one that better fits your situation.
Nextcloud Desktop Client
You can download the Nextcloud Files app to your computer and let it upload your files to the server in the background. Once installed on your computer, Nextcloud creates a special folder that is replicated automatically with your server and any other computers with the Nextcloud Files app installed. This should sound familiar if you've ever used iCloud or OneDrive for automatic file replication.
Step 1. Download the Nextcloud Files app and install. You can find it on the Nextcloud website.
Step 2. Once the app is installed, sign into the app using your server address, which should be similar to nextcloud.yourdomain.com
. To authenticate, you will use the username and password that was created as part of the server deployment script.
Step 3. Locate the special Nextcloud folder. Nextcloud usually places this folder within your favorites, which show on the right-side navigation of Finder (Mac) and Windows Explorer (Windows)
Step 4. Move or copy your documents into this special folder. Nextcloud should then begin replicating the files to your server.
Immich Mobile App
Immich provides mobile apps for your phone and/or tablet. You can use these apps to upload photos that are available on your phone to your server. This method is the most convenient way of importing your photo library to Immich, but only works for photos that are stored locally on your phone.
Step 1. Download the Immich Mobile app to your device. You can find it in the app stores for Android and iPhone.
Step 2. Using the app, sign into your server. The address to your server should be similar to immich.yourdomain.com
Step 3. Once you are signed in, tap on the upload icon (blue cloud, near top-right corner).
Step 4. Select which albums you want to backup with Immich.
Step 5. Tap the ⚙️ (gear) icon in the top-right corner to view the Backup options.
Step 6. Enable the background and foreground upload options. You may need to approve some additional permissions which are required for the background upload service to work correctly.
Step 7. Go back to the Backup page and scroll to the bottom. Then tap on Start Backup
Immich-Go
Immich-Go is an open-source tool designed to streamline uploading large photo collections to your self-hosted server. You can use Immich-Go to upload photos that you have made available on your laptop or desktop using one of the methods described in the previous section (for example, via Google Takeout or OneDrive)
Download Immich-Go
The first thing you need to do is, download Immich-Go to your laptop/desktop.
Step 1. Head to the project Github download page and select the version that matches your computer's OS and architecture.
Step 2. Extract the contents of the file you downloaded and put them in a folder that is easy to access via a Terminal or Command Line.
Step 3. Open a Terminal or Command Line window and navigate to the folder where you extracted the Immich-Go tool in the previous step.
Step 4. Verify the tool can run and is a recent version by running immich-go --version
from the Terminal or Command Line. The version should be v0.26.2
or later.
Create an API Key for Immich
Immich-Go uses the Immich API on your server to upload photos. To authenticate with the server, Immich-Go uses and API Key instead of username/password. In order to provide the tool with the API Key, follow these steps:
Step 1. Open a web browser and navigate to the Immich homepage on your server. The address will be similar to: https://immich.yourdomain.com
Step 2. Click on your user avatar (top-right corner) and select Account Settings
Step 3. Expand the section API Keys
Step 4. Click on New API Key and type any name you want (for example immich-go
) then hit Create
Step 5. Click on Copy to Clipboard and paste the key somewhere you can access later.
[!warn] You will not be able to see the key content again after closing the dialog. If you lose the key contents, you can delete it and create a new one following the same steps.
Import photos exported from Google Takeout
Follow these steps if you retrieved your photos from Google Photos using the steps from the Google Takeout section.
[!tip] You do not need to extract the photos from the ZIP files that Google Takeout sent you via email. Immich-Go can extract the photos directly from the ZIP files.
Step 1. Download all the ZIP files that Google Takeout sent you via email to a folder in your computer
Step 2. On the Terminal or Command Line, navigate to the folder where immich-go was extracted
Step 3. Use the following command to import your photos to Immich
[!note] Make sure to replaceimmich.yourdomain.com
with the actual address to your server,[your-api-key]
with your Immich API Key and[path-to-takeout-files]
with the path to where the Google Takeout ZIP files were downloaded.
immich-go upload from-google-photos --server=https://immich.yourdomain.com --api-key=[your-api-key] [path-to-takeout-files]/takeout-*.zip
Import photos exported with iCloud Photo Exporter
This section is relevant if you retrieved your photos from iCloud using the steps from the iCloud Photo Exporter section.
After opening a Terminal or Command Line, navigate to the folder where immich-go was extracted and run the following command.
[!note] Make sure to replaceimmich.yourdomain.com
with the actual address to your server,[your-api-key]
with your Immich API Key and[path-to-photos]
with the path to where the iCloud Photo Exporter placed your photos.
immich-go upload from-icloud --server=https://immich.yourdomain.com --api-key=[your-api-key] [path-to-photos]
Import photos from a local folder
This section is relevant if you downloaded photos to your computer from OneDrive or any other cloud.
After opening a Terminal or Command Line, navigate to the folder where immich-go was extracted and run the following command.
[!note] Make sure to replaceimmich.yourdomain.com
with the actual address to your server,[your-api-key]
with your Immich API Key and[path-to-photos]
with the path to where the photos are stored on your computer.
immich-go upload from-folder --server=https://immich.yourdomain.com --api-key=[your-api-key] [path-to-photos]