Von iCloud zur Freiheit – Mein Weg zur digitalen Unabhängigkeit

Von iCloud zur Freiheit – Mein Weg zur digitalen Unabhängigkeit

Von iCloud zur Freiheit – Mein Weg zur digitalen Unabhängigkeit

Über 300 GB meines Lebens lagen in Apples iCloud: Fotos, Dokumente, Kontakte, Kalender, Passwörter, E-Mails. Alles bequem synchronisiert, alles unter Apples Kontrolle. Bis ich mich gefragt habe: Was passiert, wenn Apple morgen mein Konto sperrt? Was, wenn sich die Preise verdoppeln? Was, wenn ich einfach nicht mehr will, dass ein Konzern mein digitales Leben verwaltet?

Dieser Artikel dokumentiert meinen kompletten Umstieg von iCloud auf ein selbst gehostetes Setup mit Nextcloud, Immich und Mailcow – Schritt für Schritt, mit allen Tools und Stolpersteinen.


Das Problem mit iCloud

Apples Ökosystem ist komfortabel. Zu komfortabel. Man merkt gar nicht, wie abhängig man wird:

  • Vendor Lock-in: Fotos, Dateien, Kontakte – alles in proprietären Formaten und Systemen. Ein Export ist möglich, aber Apple macht es einem nicht leicht.
  • Keine echte Kontrolle: Apple entscheidet, was mit deinen Daten passiert. Verschlüsselung? Teilweise. Transparenz? Minimal.
  • Kosten: 2 TB iCloud kosten 9,99 EUR/Monat – das sind fast 120 EUR im Jahr. Für Speicher auf Servern, die mir nicht gehören.
  • Plattform-Abhängigkeit: Wer einmal drin ist, kommt schwer raus. Jedes Apple-Gerät hängt an der iCloud. Ein Wechsel zu Android oder Linux wird zum Projekt.

Der Plan: Alles selbst hosten

Mein Ziel: Vollständige Datenhoheit. Jeder Dienst, den Apple oder Google anbietet, lässt sich selbst betreiben – oft sogar besser. Mein neues Setup sieht so aus:

Was Apple bietet Meine Alternative
iCloud Drive Nextcloud
iCloud Fotos Immich
iCloud Mail Mailcow
iCloud Kontakte & Kalender Nextcloud (CardDAV/CalDAV)
iCloud Keychain Vaultwarden
iCloud Notizen Obsidian + Syncthing

Die Infrastruktur dahinter: Alle Dienste laufen lokal auf einem kleinen Mini-PC (Geekom A8 Mini) mit Proxmox als Hypervisor. Jeder Dienst bekommt seinen eigenen LXC-Container. Ein günstiger VServer bei Hetzner dient ausschließlich als Headscale-VPN-Koordinator – er verbindet das Homelab mit der Außenwelt. Ein Nginx Reverse Proxy im lokalen Netz routet den Traffic über den Headscale-Tunnel an die einzelnen Dienste.

┌──────────────────────────────────────────────────┐
│              Hetzner VServer                      │
│                                                   │
│              Headscale (VPN)                      │
│                                                   │
│              ▲ WireGuard-Tunnel ▲                 │
└──────────────┼───────────────────┼────────────────┘
               │                   │
┌──────────────┼───────────────────┼────────────────┐
│              ▼  Geekom A8 Mini (Proxmox) ▼        │
│                                                   │
│  ┌─────────────────────────────────────────────┐  │
│  │         Nginx Reverse Proxy (LXC)           │  │
│  └────────┬──────┬──────┬──────┬──────┬────────┘  │
│           ▼      ▼      ▼      ▼      ▼          │
│  Nextcloud  Immich  Vaultwarden  Paperless  ...   │
│  (LXC)     (LXC)    (LXC)       (LXC)            │
│                                                   │
│  [Storage: Fotos, Dokumente, Backups]             │
└───────────────────────────────────────────────────┘
         │
         ▼
┌───────────────────────┐
│  Hetzner Storage Box  │
│  10 TB Off-Site       │
│  Backup               │
└───────────────────────┘

Schritt 1: iCloud-Daten sichern

Bevor man irgendwas abschaltet, braucht man ein vollständiges Backup. Apple bietet keinen „Export-alles"-Button. Die Migration teilt sich in zwei Bereiche auf, die jeweils ihr eigenes Tool brauchen:

Was Tool Ziel
iCloud Drive (Dateien & Ordner) pyicloud (Python-Skript) Lokales Backup / Nextcloud
Notizen, Erinnerungen, Fotos, Passwörter iCloudBridge Nextcloud / Vaultwarden

iCloud Drive sichern: Python-Skript mit pyicloud

Für die reinen Dateien und Ordner aus iCloud Drive nutze ich ein Python-Skript, das sich über die iCloud-API einloggt und alles rekursiv herunterlädt:

# Virtuelle Umgebung erstellen
python3 -m venv ~/icloud-backup
~/icloud-backup/bin/pip install pyicloud

# Backup-Skript starten
~/icloud-backup/bin/python3 backup_icloud.py

Das Skript authentifiziert sich per 2FA und lädt alle Ordner und Dateien herunter. Bereits heruntergeladene Dateien werden übersprungen – man kann es also jederzeit neu starten, falls die Verbindung abbricht.

from pyicloud import PyiCloudService
import os, getpass

api = PyiCloudService(
    input("Apple-ID: "),
    getpass.getpass("Passwort: ")
)

# 2FA-Handling
if api.requires_2fa:
    code = input("2FA-Code: ")
    api.validate_2fa_code(code)

# Rekursiv alle Dateien herunterladen
def download_folder(node, local_path):
    os.makedirs(local_path, exist_ok=True)
    for name in node.dir():
        child = node[name]
        child_path = os.path.join(local_path, name)
        if child.type in ("folder", "app_library"):
            download_folder(child, child_path)
        elif child.type == "file":
            with open(child_path, "wb") as f:
                response = child.open(stream=True)
                for chunk in response.iter_content(1024*1024):
                    if chunk:
                        f.write(chunk)

download_folder(api.drive, "/pfad/zum/backup/")

Apple-Dienste migrieren: iCloudBridge

Für alles, was nicht im iCloud Drive liegt, gibt es iCloudBridge – ein Open-Source-Tool speziell für die Migration von Apple-Diensten zu Nextcloud und Vaultwarden:

  • Apple Notizen → Markdown-Dateien (kompatibel mit Nextcloud Notes). Unterstützt Bilder, Anhänge, Ordner und Checklisten.
  • Apple Erinnerungen → CalDAV-Server (z.B. Nextcloud). Unterstützt Fälligkeitsdaten, Notizen, wiederkehrende Erinnerungen und Erledigt-Status.
  • Apple Fotos ↔ Nextcloud. Bidirektionaler Sync – auch Fotos aus Nextcloud werden zurück in Apple Fotos importiert. Unterstützt geteilte Familien-Mediatheken.
  • Apple Passwörter → Bitwarden/Vaultwarden. Alle Felder inkl. TOTP-Codes werden übernommen.

iCloudBridge läuft als macOS Menubar-App mit WebUI und kann auch per CLI gesteuert werden. Es braucht einen Mac zum Laufen – der muss aber nicht dauerhaft an sein, die Syncs laufen immer wenn er eingeschaltet ist.

Was hat NICHT funktioniert: Symlink-Trick

Mein erster Versuch war, den iCloud-Ordner (~/Library/Mobile Documents) per Symlink auf eine externe SSD umzuleiten. Das funktionierte in älteren macOS-Versionen, aber Apple hat dem einen Riegel vorgeschoben: Beim Aktivieren von iCloud Drive erkennt macOS den Symlink, löscht ihn und erstellt einen echten Ordner. Dieser Weg ist also leider verbaut.


Schritt 2: Nextcloud – Der iCloud-Drive-Ersatz

Nextcloud ist das Schweizer Taschenmesser der Self-Hosting-Welt. Es ersetzt nicht nur iCloud Drive, sondern auch Kontakte, Kalender und vieles mehr.

Installation (Docker)

# docker-compose.yml
services:
  nextcloud:
    image: nextcloud:latest
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./data:/var/www/html
      - /mnt/storage/nextcloud:/var/www/html/data
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=SICHERES_PASSWORT

  db:
    image: mariadb:11
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=ROOT_PASSWORT
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=SICHERES_PASSWORT

Daten importieren

Nach der Installation die gesicherten iCloud-Dateien einfach in den Nextcloud-Datenordner kopieren und einen Rescan starten:

docker exec -u www-data nextcloud php occ files:scan --all

Kontakte & Kalender importieren

  1. In Nextcloud die Kontakte-App öffnen → Importieren → Die exportierte .vcf-Datei hochladen
  2. In Nextcloud die Kalender-App öffnen → Importieren → Die .ics-Dateien hochladen

Clients einrichten

  • macOS/iOS: Nextcloud-App installieren + in den Systemeinstellungen CardDAV/CalDAV-Konten hinzufügen
  • Android: Nextcloud-App + DAVx5 für Kontakte/Kalender
  • Desktop: Nextcloud Desktop Client für automatische Synchronisation

Schritt 3: Immich – Der iCloud-Fotos-Ersatz

Immich ist die beste selbst gehostete Alternative zu Google Fotos und iCloud Fotos. Gesichtserkennung, Karten-Ansicht, Alben – alles dabei, alles lokal.

Installation

# docker-compose.yml (vereinfacht)
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    volumes:
      - /mnt/storage/photos:/usr/src/app/upload
    env_file:
      - .env
    ports:
      - "2283:2283"

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - ./model-cache:/cache

  redis:
    image: redis:7-alpine

  database:
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    volumes:
      - ./postgres:/var/lib/postgresql/data

Fotos importieren

Die exportierten Fotos lassen sich über die Immich CLI importieren:

# Immich CLI installieren
npm i -g @immich/cli

# Alle Fotos hochladen
immich upload --recursive /pfad/zum/foto-backup/

Mobile App

Immich bietet Apps für iOS und Android mit automatischem Foto-Upload – genau wie iCloud Fotos, nur auf den eigenen Server.


Schritt 4: Mailcow – Der eigene Mailserver

E-Mail self-hosten ist die Königsdisziplin. Mailcow macht es so einfach wie möglich.

Warum eigener Mailserver?

  • Volle Kontrolle über E-Mails
  • Eigene Domain: du@deine-domain.de
  • Kein Anbieter kann dein Postfach sperren oder mitlesen
  • Beliebig viele Aliase

Installation

git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh
# Hostname eingeben: mail.deine-domain.de
docker compose up -d

DNS-Einträge

Für saubere E-Mail-Zustellung braucht man die richtigen DNS-Records:

Typ Name Wert
MX deine-domain.de mail.deine-domain.de
A mail.deine-domain.de <Server-IP>
TXT deine-domain.de v=spf1 mx a:mail.deine-domain.de ~all
TXT _dmarc.deine-domain.de v=DMARC1; p=quarantine
CNAME dkim._domainkey (wird von Mailcow generiert)

Wichtig

E-Mail self-hosting braucht eine saubere Server-IP. Heim-Anschlüsse sind dafür ungeeignet (Port 25 oft gesperrt, IP auf Blacklists). Ein VServer ist hier die richtige Wahl. Alternativ kann Mailcow auch lokal laufen und über einen VPN-Tunnel + Reverse Proxy nach außen erreichbar gemacht werden – genau so funktioniert es in meinem Setup.


Das Ergebnis: Mein neues Setup

Nach der Migration sieht meine Infrastruktur so aus:

Dienst Beschreibung Kosten/Monat
Geekom A8 Mini Proxmox-Server mit allen Diensten (Strom, ~15W) ~5 EUR
VServer Nur Headscale (VPN-Koordinator) ~5 EUR
Storage Box 10 TB Off-Site Backup ~15 EUR
Nextcloud Dateien, Kontakte, Kalender 0 EUR (LXC auf Geekom)
Immich Fotos & Videos 0 EUR (LXC auf Geekom)
Vaultwarden Passwörter 0 EUR (LXC auf Geekom)
Mailcow E-Mail 0 EUR (LXC auf Geekom)
Obsidian + Syncthing Notizen 0 EUR (Peer-to-Peer)
Gesamt ~25 EUR/Monat

Zum Vergleich: Klingt nach mehr als die 9,99 EUR/Monat für iCloud 2 TB – aber man bekommt dafür auch unvergleichlich mehr:

  • 10 TB Off-Site Backup statt 2 TB Cloud-Speicher
  • Eigener Mailserver mit eigener Domain
  • VPN-Zugang zu allen Diensten von überall (Headscale)
  • Passwort-Manager (Vaultwarden/Bitwarden-kompatibel)
  • Foto-Management mit KI-Gesichtserkennung (Immich)
  • Dokumenten-Archiv mit OCR (Paperless-ngx)
  • Volle Kontrolle über alle Daten – kein Vendor Lock-in

Der Clou: Alle Dienste laufen als isolierte LXC-Container auf einem einzigen Mini-PC. Der VServer in der Cloud dient nur als VPN-Eingangstor – ein Nginx Reverse Proxy im Homelab leitet den Traffic über den Headscale-Tunnel an den richtigen Container weiter.

Und der Geekom A8 Mini als Proxmox-Host? Der zieht im Idle gerade mal 15 Watt – weniger als eine LED-Lampe. Das sind bei 0,35 EUR/kWh nur knapp 4-5 EUR Strom im Monat für einen vollwertigen Server.


Was ich gelernt habe

Die harten Wahrheiten

  1. Apple will nicht, dass du gehst. Es gibt keinen „Exportiere alles"-Button. Man muss sich seine Daten zusammensuchen.
  2. macOS sabotiert Symlinks auf den iCloud-Ordner. Was früher funktionierte, blockiert Apple heute aktiv.
  3. 2FA ist Pflicht für den API-Zugriff. Das Skript fragt nach dem Login automatisch nach dem 2FA-Code.
  4. 300 GB herunterladen braucht Zeit. Plane einen ganzen Tag ein und stelle sicher, dass die Verbindung stabil ist.

Die guten Nachrichten

  1. Es funktioniert. Jeder einzelne iCloud-Dienst lässt sich ersetzen – und oft sogar verbessern.
  2. Die Community ist stark. Nextcloud, Immich, Mailcow – alles Open Source, alles aktiv entwickelt, überall gibt es Hilfe.
  3. Man spart Geld. Nach der initialen Einrichtung kostet das Setup weniger als iCloud.
  4. Man lernt viel. DNS, Docker, Netzwerke, Verschlüsselung – Wissen, das einem niemand mehr nehmen kann.

Fazit

Der Umstieg von iCloud auf ein selbst gehostetes Setup ist kein Wochenendprojekt – aber es ist absolut machbar. Die Tools sind reif, die Dokumentation ist gut, und das Gefühl, seine Daten wirklich zu besitzen, ist unbezahlbar.

Mein Rat: Nicht alles auf einmal machen. Fang mit einem Dienst an – Nextcloud oder Vaultwarden sind gute Startpunkte – und erweitere Schritt für Schritt. Nach ein paar Wochen wunderst du dich, warum du so lange gewartet hast.

Deine Daten. Deine Server. Deine Freiheit.


Du hast Fragen zum Setup oder brauchst Hilfe bei der Migration? Schreib mir über meine Website.

Christopher Ackermann