Self-Hosting · Privacy · Beginner-Friendly

The 30-Day Google & Apple Exit Strategy

A progressive, non-expert-friendly guide for reclaiming your photos, email, documents, calendar, and contacts — one week at a time, with zero data loss and no panic.

⏱ 35 min📊 Beginner📅 May 4, 2026

Why this matters

Google and Apple don't charge you money for most of their services. What they collect is more valuable: your location history, search patterns, facial recognition data, purchase habits, and the contents of every email you've written since you opened the account. In 2026, the privacy cost of "free" cloud services is no longer a secret — but the technical barrier to leaving still feels insurmountable to most people. It isn't. You just need a plan.

What you'll need before you start

This guide assumes you're starting from zero — no server, no self-hosting experience, maybe no Linux comfort. That's fine. We'll layer the complexity over four weeks, and you can stop at any point when you've reached your comfort level.

Hardware recommendation

A Raspberry Pi 5 (8GB) with a 1TB external SSD will handle everything in this guide for a family of four. Total cost: roughly $160. If you already have an old desktop or laptop you're not using, that works too — anything with 4GB+ RAM and a 64-bit processor is enough for Week 1-3.

The Philosophy: Progressive Migration

Most people who try to "leave the cloud" fail because they attempt it all at once. They buy a server, install five services in a weekend, something breaks, and they retreat to Google Photos because at least it works. This guide takes the opposite approach: one service per week, fully stabilized, with fallbacks intact. Each week builds on the previous one. If you get stuck on Week 3, you still have Weeks 1 and 2 running — you haven't lost anything.

If you hit Week 2 and feel overwhelmed: that's the normal response. Self-hosting is a skill you build, not a switch you flip. The people who succeed aren't smarter — they're just more patient with themselves when a Docker container won't start. If you need to pause for a week, pause. Your data isn't going anywhere. The goal isn't speed; it's sustainability.

We'll also follow a principle I call "parallel running": for each service you migrate, you keep the old cloud version active for at least a week after the self-hosted replacement is working. This gives you a safety net and time to discover what you might have missed.

WEEK 1

File Sync — Replace Google Drive / iCloud Drive

We start with files because they're the easiest to migrate and the hardest to lose. A file is a file. There's no proprietary format, no vendor lock-in, no complex database to export. If this is all you ever do from this guide, you've already reclaimed the part of your digital life that matters most: your documents.

Goal

  • Set up a Raspberry Pi (or spare computer) with a fresh OS
  • Install Nextcloud — an open-source, self-hosted Dropbox/Google Drive replacement
  • Sync your existing Google Drive and iCloud files to it
  • Set up automatic phone photo upload (optional, Week 1 bonus)

Step-by-step

1. Flash the OS. Download Raspberry Pi Imager. Choose "Raspberry Pi OS Lite (64-bit)" if you're comfortable with a terminal, or the full desktop version if you want a GUI. Write it to a microSD card (32GB+).

2. First boot and security. Plug in the Pi, connect it to your router via Ethernet, and power it on. Find its IP address from your router's admin page (usually at 192.168.1.1 or 192.168.0.1). SSH in:

ssh — first connection
# From your laptop/desktop (not the Pi itself)
# default password: raspberry

# Change the default password immediately
passwd

# Update everything
sudo apt update && sudo apt upgrade -y

3. Install Nextcloud via Snap. The Snap package bundles everything (Apache, PHP, MySQL) into a single install. It's not the most performant option, but it's the simplest — and for Week 1, simplicity wins.

pi@raspberrypi — Nextcloud install
sudo snap install nextcloud
nextcloud 30.0.2 from Nextcloud✓ installed

# Create admin account
sudo nextcloud.manual-install admin YOUR_SECURE_PASSWORD

# Allow access from your local network
sudo nextcloud.occ config:system:set trusted_domains 1 --value="192.168.1.X"

4. Connect your phone and computer. Open a browser on your laptop and go to http://192.168.1.X. You'll see the Nextcloud login screen. Install the Nextcloud desktop client from nextcloud.com/install and point it at that IP address. Install the Nextcloud mobile app, same thing.

5. Migrate your files. On your computer, download your Google Drive contents via Google Takeout (select Drive only — we'll get to the rest later). For iCloud, use the Files app on your Mac or the iCloud for Windows utility. Copy everything into your Nextcloud sync folder. It'll upload to your Pi. This might take a few hours depending on your volume.

Don't delete anything yet

Keep your files on Google Drive / iCloud for now. We're running in parallel. You'll know Nextcloud is stable when you've used it as your daily driver for a full week without issues.

Checkpoint: End of Week 1

  • Your files are on a device you physically control
  • Nextcloud syncs to your laptop and phone automatically
  • You can access your files from any device on your home network
  • Google Drive / iCloud are still running as backup (don't delete yet)
WEEK 2

Photos — Replace Google Photos / iCloud Photos

Photos are emotionally harder to migrate than files. They're not just data — they're memories. The fear of losing them is real and valid. That's why we tackle photos second, after you've built some confidence with Week 1.

We'll use Immich, an open-source Google Photos alternative that has matured dramatically. As of 2026, Immich handles facial recognition, geolocation mapping, shared albums, automatic phone backup, and even machine-learning-powered search ("show me photos of my dog at the beach"). It's genuinely competitive with Google Photos.

Goal

  • Install Immich alongside Nextcloud on your Pi (they coexist fine)
  • Export your entire Google Photos / iCloud Photos library
  • Import everything into Immich with metadata intact
  • Set up automatic phone backup

Step-by-step

1. Install Docker. Immich runs in Docker containers, which sounds intimidating but is actually easier than manual installation — everything is pre-configured.

pi@raspberrypi — Docker install
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# Log out and back in for group to take effect

2. Install Immich. Follow the official Immich Docker Compose guide. Download their docker-compose.yml and .env file, edit the .env to point your photo storage to your external SSD (/mnt/ssd/immich), and run docker compose up -d. Immich will be available at http://192.168.1.X:2283.

3. Export your photos. This is the hardest technical step, and it's entirely Google's/Apple's fault — they make exporting harder than it should be.

SourceMethodWhat you'll get
Google PhotosGoogle Takeout → Deselect all → Select Photos onlyZip files (2GB-50GB each) containing your photos + JSON metadata files. Immich can parse the JSON to recover dates and album info.
iCloud Photosprivacy.apple.com → Request a copy of your data → iCloud PhotosSimilar zip export. Photos in original quality with EXIF data intact.

Google Takeout splits large exports into multiple files. If you have more than 50GB of photos, expect to download 5-10 separate zip files. Start the export before bed — it can take hours for Google to prepare.

Important: Google Takeout date metadata

Google Takeout sometimes strips date metadata from photos and puts it in a companion JSON file instead. Immich's bulk import tool can re-apply this metadata. Check the Immich docs for "Google Takeout import" — there's a specific workflow for this.

4. Import into Immich. Use Immich's CLI bulk upload tool or simply drag your extracted folders into the Immich web UI. For large libraries (10,000+ photos), use the CLI:

immich CLI — bulk import
npm install -g @immich/cli
immich login http://192.168.1.X:2283/api YOUR_API_KEY
immich upload --recursive /path/to/extracted/photos/
Uploading 8,432 files...
8,432 files uploaded ✓

5. Install the Immich mobile app. Enable automatic background upload. Set it to upload only on Wi-Fi if you have a mobile data cap. Within a few hours, your phone photos will start appearing in your self-hosted library.

Checkpoint: End of Week 2

  • All your historical photos live on your Pi, browsable through Immich's web and mobile apps
  • New photos from your phone back up automatically to Immich
  • Google Photos / iCloud Photos are still running as backup
  • You've reclaimed roughly 80% of what most people mean by "leaving the cloud"
WEEK 3

Email & Calendar — The Hardest Migration

Email is the hardest service to self-host. Running your own mail server means dealing with spam filtering, IP reputation, deliverability, and the very real possibility that your emails will land in recipients' spam folders. For most people, I recommend a middle path: a privacy-respecting paid provider with your own domain. This gives you portability without the mail server headache. If you later decide to self-host, your domain comes with you.

Goal

  • Register your own domain name (e.g., smithfamily.net)
  • Set up email hosting with Fastmail, Proton Mail, or Mailbox.org
  • Configure automatic forwarding from your Gmail / iCloud address
  • Migrate your calendar and contacts to Nextcloud (already running from Week 1!)
  • Update your email address on important accounts

Step-by-step

1. Buy a domain. Use Porkbun, Namecheap, or Hover. Avoid Google Domains (it was sold to Squarespace) and GoDaddy (predatory upsells). A .net or .com domain costs about $12/year. This domain is yours — no company can take it away if you keep paying the registration fee.

2. Choose an email provider. Here's how the privacy-focused options compare in 2026:

ProviderCostBest forNotes
Fastmail$5/monthEasiest setup, best web UI30-day free trial, one-click domain setup, masked email addresses built in
Proton Mail$4/monthMaximum privacy (zero-access encryption)Swiss jurisdiction, encrypted at rest, but web UI is less polished
Mailbox.org$3/monthBudget + privacy balanceGerman hosting, strong data protection, includes cloud storage and Office

All three support custom domains. Pick one and follow their setup wizard. It'll walk you through changing your domain's DNS records (MX, SPF, DKIM) — copy-paste work that takes about 15 minutes.

3. Forward your old email. In Gmail settings: See all settings → Forwarding and POP/IMAP → Add a forwarding address. This ensures anything sent to your old address still reaches you during the transition. Tell correspondents your new address as you interact with them — don't send a mass "I changed my email" blast (those never reach everyone).

4. Migrate calendar and contacts to Nextcloud. Nextcloud already has CalDAV (calendar) and CardDAV (contacts) servers built in. You just need to connect them to your devices.

Nextcloud CalDAV/CardDAV URLs
# Your CalDAV (calendar) URL:
http://192.168.1.X/remote.php/dav/calendars/admin/personal

# Your CardDAV (contacts) URL:
http://192.168.1.X/remote.php/dav/addressbooks/admin/contacts

# Add these to your phone's calendar/contacts settings
# iPhone: Settings > Calendar > Accounts > Add Account > Other > CalDAV
# Android: Install DAVx⁵ from F-Droid or Play Store

Export your Google Calendar (Settings → Import & Export → Export) and import it into Nextcloud Calendar. Repeat for contacts (Google Contacts → Export → vCard format).

5. Audit your accounts. Go through your password manager (you use one, right?) and update the email address on critical accounts: banking, insurance, healthcare, government services, and anything else where losing access would be catastrophic. For everything else, update as you log in naturally over the coming months.

The real email exit timeline

Email migration takes longer than a week if you've used the same address for years. That's normal. The forwarding rule ensures you don't miss anything while you gradually update accounts. I ran both addresses for six months before shutting off the old one. No rush.

Checkpoint: End of Week 3

  • Your email lives at your own domain on a privacy-respecting provider
  • Forwarding from your old address catches stragglers
  • Calendar and contacts sync through Nextcloud (self-hosted, Week 1 infra)
  • Critical accounts have been updated to your new address
WEEK 4

Cleanup, Remote Access & Cutting the Cord

At this point, your files, photos, email, calendar, and contacts are all running independently of Google and Apple. Week 4 is about making everything accessible from outside your home, setting up backups (you've been running without proper backups for three weeks — let's fix that), and finally closing your old accounts.

Goal

  • Set up secure remote access via Tailscale (no port forwarding, no scary firewall rules)
  • Configure automated backups so a failed SD card doesn't destroy everything
  • Delete your Google Photos, Drive contents, and optionally the accounts themselves
  • Set up monitoring so you know if something breaks

Step-by-step

1. Install Tailscale for remote access. Tailscale creates a private mesh network between your devices using WireGuard. It's free for up to 100 devices, takes 5 minutes to set up, and requires zero router configuration. This is the single biggest quality-of-life upgrade you can make.

pi@raspberrypi — Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Tailscale started. Visit https://login.tailscale.com/...

# After authenticating (web browser), your Pi gets a stable IP:
100.X.Y.Z

# Install Tailscale on your phone and laptop too.
# Now access Nextcloud from anywhere: http://100.X.Y.Z

Install Tailscale on every device you own — phone, laptop, tablet, even your partner's phone. Each device gets a permanent Tailscale IP. Your services are accessible from anywhere with a cellular or Wi-Fi connection, fully encrypted, without exposing a single port to the public internet.

Why Tailscale instead of port forwarding?

Port forwarding exposes your services to every scanner on the internet. Even with strong passwords, a zero-day vulnerability in Nextcloud or Immich could let an attacker in. Tailscale keeps your services invisible to the public internet — they simply don't exist to anyone not on your private mesh. It's the difference between a house with a locked door and a house that's invisible.

2. Set up automated backups. Your Pi's SD card will fail eventually. They all do. An external SSD is more reliable but not invincible. You need backups of: (a) your Nextcloud files, (b) your Immich photos and database, and (c) your configuration.

pi@raspberrypi — Backup script
# Create a nightly backup script
sudo nano /usr/local/bin/backup-nightly.sh

#!/bin/bash
# Backup Nextcloud and Immich to external drive
rsync -a /var/snap/nextcloud/common/nextcloud/data/ /mnt/backup/nextcloud/
rsync -a /mnt/ssd/immich/ /mnt/backup/immich/
echo "Backup complete: $(date)" >> /var/log/backup.log

chmod +x /usr/local/bin/backup-nightly.sh

# Schedule it for 3am daily
(crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/backup-nightly.sh") | crontab -

For off-site backup (protects against fire/theft/flood), see Practical Cybersecurity for Self-Hosters — the same principles apply. A second Pi at a relative's house running a nightly rsync over Tailscale is the budget option. Backblaze B2 ($6/TB/month) is the cloud option if you want a managed off-site backup.

3. Delete your cloud data. Once you've verified everything is working for at least a full week (preferably two), it's time to clean up:

  1. Google Photos: Select all, delete. They'll move to trash for 60 days, then vanish. You can permanently delete from trash immediately.
  2. Google Drive: Same process. Empty trash afterward.
  3. Gmail: You don't need to nuke your inbox. Keep the account for legacy login purposes (some accounts you forgot about may still send password resets there). Just stop sending new mail from it.
  4. iCloud: Settings → Your Name → iCloud → Manage Storage → Disable and Delete for each service.

Don't delete the Google/Apple accounts themselves until you're certain. Many people keep them alive for years as legacy logins. The goal isn't account deletion — it's data sovereignty. Your data is off their servers. That's the win.

Before you delete anything

Verify your backups. Then verify them again. Go to your backup drive, open a few random photos, check that PDFs open correctly, make sure nothing is corrupted. The moment you delete from Google's servers, there is no undo.

Checkpoint: End of Week 4 — You're done

  • Remote access via Tailscale works from anywhere
  • Nightly backups protect against hardware failure
  • Your cloud data has been deleted or reduced to a forwarding-only legacy account
  • The services running on your Pi are: Nextcloud (files, calendar, contacts), Immich (photos), and optionally your privacy email provider at your own domain

Beyond Week 4: What's Next?

If you followed the full plan, you've achieved data sovereignty for the four services that matter most to daily digital life. From here, the self-hosting world is wide open:

  • Media server (Jellyfin): Self-host your music, movies, and TV shows. Jellyfin is free, open-source, and has apps for every platform.
  • Password manager (Vaultwarden): A lightweight Bitwarden-compatible server. Never pay for 1Password or LastPass again.
  • Notes (Joplin Server or Nextcloud Notes): Replace Apple Notes / Google Keep with encrypted, self-hosted alternatives.
  • Home automation (Home Assistant): Smart home control without your data leaving the building.
  • AI (Ollama + Open WebUI): Run a local AI assistant on the same Pi. Private, free, no data leaves your network.

Each of these has its own guide in the TechLounge library. Browse the Self-Hosting guides for next steps.

FAQ: Answering the Scary Questions

"What if my Pi breaks while I'm on vacation?"

Tailscale + a backup Pi at a friend's house. Or, accept that this is the trade-off. Cloud services have teams of engineers keeping them running — but you pay with your privacy. A self-hosted setup has a single point of failure — but you own your data. Most people find the trade-off worth it once they've actually tried living with a self-hosted setup. The failure rate on a properly cooled Pi with a quality SSD is very low — I've had Pis running continuously for 3+ years without a single hardware issue.

"Can I really do this with no Linux experience?"

The commands in this guide are copy-paste. You don't need to understand them to run them. Will you need to learn something eventually? Yes — when something breaks, you'll need to troubleshoot. But that's true of every technology you use. The difference is that when your self-hosted setup breaks, you can fix it. When Google Photos decides to change its pricing or shut down a feature, you can't do anything except comply or leave. You've already left.

"Is this actually cheaper?"

See our companion guide: The True Cost of Free, where we break down the exact numbers. Short answer: a $160 Pi + $12/year domain + $5/month email hosting pays for itself within 8-12 months compared to what a family typically spends on cloud subscriptions, cloud storage upgrades, and the privacy cost you can't put a price on.

"What about my partner / kids / parents? They're not going to learn this stuff."

See our companion guide: Digital Sovereignty for Families, which covers exactly this — how to build a private family cloud that non-technical relatives can use without needing to understand what a Docker container is. The short version: if they can use Google Photos, they can use Immich. If they can use Dropbox, they can use Nextcloud. You handle the backend. They see the same apps and interfaces they already know.

Related Guides

Digital Sovereignty for Families — Set up a private family cloud that non-technical relatives can use safely.

The True Cost of Free — Data-driven comparison of cloud subscription costs vs. self-hosted hardware and power.

Offline-First AI Stack — Add local AI (Ollama + Open WebUI) to your self-hosted infrastructure.