Skip to content
A self-hosted iCloud alternative that is honest about Find My
Article

A self-hosted iCloud alternative that is honest about Find My

The problem

We are told that leaving iCloud is as easy as buying a pre-built NAS, spinning up a few Docker containers, and changing a few settings on your iPhone. The marketing copy for self-hosted apps makes it sound like a weekend project that cuts your tie to Cupertino forever.

But that is a clean lie.

You can easily replace the storage buckets. It is simple to host your own photos, document drives, and password vaults on a cheap VPS or a mini PC under your desk. What you cannot replace is Apple’s deep hardware-level integration.

You cannot self-host a mesh network of a billion active Bluetooth beacons when you lose your keys. You cannot compile your way out of the Apple Watch sync protocol. If you try to swap 100% of your iCloud features for self-hosted alternatives, you are going to spend your weekends fighting iOS background app refresh daemons and dealing with broken sync states.

If a $5 server replaces a $10 monthly subscription, that is a good afternoon. But you need to be honest about where the self-hosted stack wins and where Apple’s hardware hooks still hold the keys.

The iCloud stack: What you can actually replace

To build a reliable iCloud alternative, you have to abandon the idea of finding a single, magic replacement app. Apple has hundreds of engineers keeping iCloud’s disparate systems glued together. If you try to run one massive, bloated PHP suite that promises to handle your files, photos, passwords, and smart home in a single interface, you will quickly find its limits.

The smart path is modular. We want a stack of dedicated services running in isolated Docker containers, each focused on doing one job exceptionally well.

This is the stack we are looking at:

  • Photos: Immich replaces iCloud Photos with high-performance machine learning search and background mobile uploads.
  • Passwords: Vaultwarden replaces iCloud Keychain with a lightweight, secure vault that works on any device.
  • Files: Syncthing or Nextcloud replaces iCloud Drive, depending on whether you want silent file-mirroring or a full collaborative web portal.
  • Calendars and Contacts: Radicale or Nextcloud’s CalDAV/CardDAV servers replace Apple’s contact and calendar sync.

This modular setup gives you the same functional utility as iCloud’s storage services. But because you are running individual containers, if one service goes down, the rest of your phone keep working.

1. Photos: Immich

iCloud Photos is usually the main reason people run out of free storage and start paying Apple’s monthly subscription fee. For years, self-hosted photo gallery options were slow, ugly, or lacked a working mobile app.

Then Immich arrived.

Immich is the closest thing you will find to a solid drop-in replacement for iCloud Photos. It is fast, handles massive libraries with ease, and includes on-device machine learning for facial recognition, object detection, and search. You can search for “black cat” or “rusty bridge” and find the exact photo in seconds, entirely on your own hardware. We covered its raw capabilities in our Immich deep dive and compared it directly to cloud alternatives in our Immich vs Google Photos breakdown.

But here is the setup-honest catch: Apple does not like background processes that are not named iCloud.

Because iOS aggressively suspends background apps to save battery life, the Immich app cannot quietly upload your photos in the background the way Apple’s native photo daemon does. If you take fifty photos today, they will not sync to your server until you actually open the Immich app and let it run for a few seconds. You can mitigate this by turning on background app refresh and setting up geofence-based triggers inside the app, but it will never be as immediate as iCloud.

There is also the maintenance reality. Immich is under active, rapid development. Their developers move fast and break things. While they have gotten much better about stability, you still have to read the release notes before updating your Docker container, or you might find yourself with a broken database.

2. Passwords: Vaultwarden

iCloud Keychain is incredibly convenient. It saves your login details, autofills them across your devices, and handles two-factor authentication codes without breaking a sweat.

But if you want to access those passwords on a Windows PC, a Linux work machine, or inside a browser that is not Safari, you are in for a rough time. Apple’s official Windows companion app is notoriously clunky, and there is no native Linux support.

Enter Vaultwarden.

Vaultwarden is an alternative implementation of the Bitwarden server API, rewritten in Rust. Instead of the resource-heavy, enterprise-focused official Bitwarden stack, Vaultwarden runs comfortably on a fraction of a gigabyte of RAM. It is compatible with all official Bitwarden browser extensions, desktop apps, and mobile clients. We have written a guide on how to run Vaultwarden on a VPS and analyzed its security trade-offs in our Vaultwarden vs Bitwarden Cloud comparison.

To run Vaultwarden securely, you must handle two crucial hurdles:

  1. The HTTPS requirement. Because password vaults transmit highly sensitive data, modern web browsers and Bitwarden’s official mobile clients will flatly refuse to connect to a Vaultwarden instance that does not have a valid SSL certificate. You cannot just run this on a local IP address. You need a domain name, a reverse proxy like Caddy or Nginx Proxy Manager, and Let’s Encrypt certificates.
  2. The backup burden. When you host your own passwords, you are the on-call team. If the hard drive on your home server dies or your VPS provider has a major outage, you lose your passwords. Setting up an automated backup cron job that encrypts your SQLite database and pushes it to a separate storage bucket is not optional. It is the bare minimum requirement for hosting your own passwords.

3. Files: Syncthing vs. Nextcloud

iCloud Drive handles your files, documents, and backups. It sits quietly inside the iOS Files app, syncing your documents folder and keeping PDFs handy.

To replace it, you have to choose between a heavy weight and a lightweight approach.

If you want a full, collaborative web portal that mimics Google Workspace and iCloud combined, Nextcloud is the default choice. It gives you a web interface, mobile apps, automatic photo backup, and its own CalDAV/CardDAV servers for contacts and calendars.

But Nextcloud is a massive, multi-million-line PHP application. If you try to run it on a low-power home server or a cheap $5 VPS, it can feel incredibly sluggish. It requires a database like MariaDB or PostgreSQL, Redis caching for file locking, and constant tuning to keep it responsive. It is a full enterprise-grade platform, and it demands the maintenance budget of one.

If you just want your files to sync across devices without the web-portal bloat, Syncthing is a much better choice.

Syncthing is a peer-to-peer file-synchronization engine written in Go. It does not rely on a central server. Instead, it securely mirrors folders directly between your devices. It is fast, lightweight, and incredibly stable.

But iOS makes Syncthing difficult.

Because Apple blocks third-party apps from running persistent background daemons, there is no official Syncthing client for iOS. You have to use a paid third-party wrapper like Möbius Sync. Even with Möbius, you will hit the same background sync limitations as Immich: your files will only sync when you open the app or trigger a location-based refresh.

If you want a truly native experience inside the iOS Files app without the Nextcloud bloat, the cleanest compromise is running a lightweight WebDAV server like Radicale or using an SFTP target coupled with a high-quality iOS file explorer app like FE File Explorer.

4. Contacts and Calendars: The WebDAV headache

Compared to photos and file streams, contacts and calendars seem incredibly simple. They are just tiny text strings of names, numbers, and dates.

Technically, they rely on mature, open standards: CalDAV for calendars and CardDAV for contacts.

Because these standards are open, you have plenty of lightweight, self-hosted options. Radicale and Baïkal are two excellent, low-overhead DAV servers that run in tiny Docker containers. They use virtually no system resources and store your data in plain text files or lightweight databases.

The headache isn’t the server. The headache is iOS.

To connect your iPhone’s native Contacts and Calendar apps to your self-hosted server, you have to dig deep into the iOS settings menu. You cannot just download an app and sign in. You have to navigate to Settings > Apps > Mail > Mail Accounts, select Add Account, tap Other, and then manually enter your server’s CalDAV or CardDAV credentials.

If you have a custom port, a self-signed certificate, or a reverse proxy with aggressive rate-limiting, iOS will throw vague, unhelpful connection errors. And if you ever change your domain name, update your SSL certificates, or change your server’s path structure, your phone will silently stop syncing. You will only realize it has broken when you add a contact on your laptop and notice it never shows up on your phone.

For most self-hosters, this is where the effort-to-reward ratio breaks down. Managing your calendar and contact list inside a private Nextcloud or Radicale server is fine, but you have to decide if typing custom URLs into iOS settings sheets is how you want to spend your Tuesday nights.

The Apple tax you cannot self-host

Here is the part of the self-hosted conversation that usually gets swept under the rug: Apple’s native hardware features are not just software. They are network-level services backed by billions of dollars of proprietary physical infrastructure.

You can run the most optimized, secure Docker containers in the world on a server in your basement, but you cannot replicate these core hardware-level integrations.

The Find My illusion

A common recommendation in self-hosted forums is to replace Apple’s Find My with tools like OwnTracks or Traccar. These are solid, open-source projects. You install an app on your phone, it tracks your GPS coordinates, and it sends them to a private database server.

This works great for tracking your own phone or your family’s cars. But it completely misses the point of Find My.

Apple’s Find My network is a massive, crowdsourced mesh network. When you lose an AirTag-equipped key ring in a park, the tag does not have GPS or cellular data. It chirps a tiny Bluetooth beacon, which is picked up by a stranger’s iPhone walking past. That phone encrypts the location and sends it to Apple, who routes it to your screen.

You cannot self-host a network of a billion active Bluetooth receivers. If you lose your keys in a parking lot, OwnTracks will only show you the last location where your phone was connected to them.

Some homelabbers have tried to bypass this using OpenHaystack, a framework that lets you create custom Bluetooth tags that piggyback on Apple’s Find My network. It is an impressive engineering feat, but it is a fragile, reverse-engineered cat-and-mouse game. Apple regularly updates their cryptographic keys, firmware, and iOS code. Relying on a fragile, unauthorized developer hack to find your wallet or keys when you are rushing to the airport is a terrible gamble.

Continuity, iMessage, and Apple Watch

There are other, smaller friction points that accumulate when you try to cut iCloud out of your life:

  • AirDrop and Handoff. These features rely on proprietary Bluetooth handshakes and ad-hoc Wi-Fi connections that are deeply integrated into macOS and iOS. There are open-source alternatives like LocalSend or Snapdrop, but they require both devices to be on the same local Wi-Fi network and often require opening a specific web page or app to start the transfer.
  • Apple Watch sync. Your Apple Watch is tethered directly to your iPhone’s iCloud account. If you disable iCloud, you lose automatic health data backups, fitness tracking history sync, and native watch-face sharing.
  • iMessage. While tools like Beeper or private Matrix bridges exist, hosting your own iMessage bridge requires running a dedicated macOS virtual machine or a physical Mac mini that stays powered on 24/7. It is noisy, expensive, and constantly threatened by Apple closing the registration loopholes.

Quick comparison

If you are deciding which parts of iCloud to offload to your own hardware, here is how the primary self-hosted options stack up against Apple’s native services:

iCloud Feature Self-Hosted Swap The Setup Catch Our Recommendation
Photos Immich No true background iOS sync; rapid breaking API changes. Swap. Immich is too good to ignore, even with the manual app open step.
Passwords Vaultwarden Requires domain, reverse proxy, SSL, and database backup discipline. Swap. Unlocks cross-platform password management with zero subscription fees.
Files Syncthing or Nextcloud Nextcloud is resource-heavy; Syncthing lacks native background iOS daemon. Swap. Use Syncthing for desktop-to-desktop, Nextcloud if you need a web client.
Calendars/Contacts Radicale or Baïkal Manual iOS account setup; silent sync failures if URLs or certs change. Skip. Unless you absolutely demand plain-text local-first contacts.
Find My OwnTracks Missing Apple’s mesh network of a billion iPhones; high battery drain on GPS. Skip. Keep a free, bare-bones iCloud account for your hardware tracking.

Bottom line

Self-hosting is no longer a hobby reserved for people who enjoy compiling kernels. Tools like Immich and Vaultwarden have made it possible for any intermediate homelab tinkerer to reclaim their photos, files, and password vaults from the cloud rent-collectors.

But trying to build an absolute, 100% self-hosted replacement for your iPhone is a fast track to frustration. You cannot run a mesh network in Docker.

The smartest move is a hybrid setup. Spin up Immich for your photos, run Vaultwarden for your passwords, and sync your active project folders with Syncthing. Then, leave a free, bare-bones Apple ID active on your phone with iCloud storage turned off. Let Apple keep tracking your keys, syncing your watch, and routing your AirDrop files.

You do not have to pay Apple a monthly subscription tax to enjoy their hardware hooks. Let them handle the physical mesh network, and let your own server handle the data. You get your privacy, you save your ten dollars a month, and you do not have to spend your weekends debugging a calendar sync.

Related