The short answer
Self-hosting pays off when you have a lot of data, want fast access to it at home, or want control over where it lives and what runs on it. Cloud storage wins when you have little data, share it with people who won't tolerate anything unusual, or simply don't want to maintain a machine. Most setups that work long-term are a mix of the two: bulk data at home, and a small cloud plan as the off-site backup.
The rest of this guide helps you work out which side of that line you are on, with numbers you can replace with your own.
Work out the cost with your own numbers
Cloud storage is a subscription, so its cost is the monthly price times the months you keep it. A home server costs money up front and then mostly electricity. Compare them over the same period, five years being a fair lifespan for home server hardware:
- Cloud: monthly price × 60.
- Home server: hardware + drives + electricity for five years + whatever you pay for an off-site backup.
- Electricity per year: average watts × 8.76 gives kWh per year. Multiply by your price per kWh.
A worked example, with round numbers you should replace with yours. A mini PC idling around 10 W with one hard drive adding about 5 W draws roughly 15 W on average. That is 15 × 8.76 ≈ 131 kWh a year, or about $26 a year at $0.20 per kWh, and around $130 over five years. Add a used mini PC and a pair of drives for, say, $350, and five years of home storage costs about $480 before the off-site backup.
Against a $10-a-month cloud plan, that is $600 over the same five years. At that size, the two are close once you add an off-site copy and the value of your own time. The picture changes with volume. Cloud plans charge per terabyte, again every month; a bigger hard drive costs a little more, once. At 6 to 10 TB of photos, video, and media, the home server usually wins by a wide margin, and for a family's photo library that is not an unusual amount.
The number this math leaves out is your time. Setting up a server takes an afternoon or two, and keeping it healthy takes a little attention every month. If that sounds like a chore rather than a hobby, count it as a real cost.
What you gain by self-hosting
- Capacity that grows by buying a drive, not by moving up a pricing tier.
- Speed at home. A wired gigabit network moves around 110 MB/s, far faster than most home upload connections, which matters for large photo and video libraries.
- Control over your data. Nothing is scanned, repriced, or subject to a change in terms you didn't choose.
- No single account to lose. A cloud account that gets locked or suspended can take every file with it; a disk in your house doesn't have a trust-and-safety department.
- The apps. Once a server exists, it can also run your media server, password manager, ad blocker, and home automation, which is often how people end up justifying it.
What you take on
Self-hosting moves jobs that a cloud provider did quietly onto you. Be honest with yourself about each one before moving anything important:
- Backups. You are now the only one keeping copies. A single disk in a single house is one failure, fire, or theft away from losing everything.
- Uptime. A power cut, a failed update, or a dead drive while you are travelling means no access until you fix it.
- Security updates for the operating system and every app you run, and the discipline not to expose services directly to the internet.
- Remote access. Reaching your files from outside the house needs a VPN or a tunnel, set up once and kept working.
- Support. If family members use it, you are their help desk, and "just use the app" is less simple than with a big provider.
What replaces which cloud service
Each part of a typical cloud subscription has a mature self-hosted replacement:
- Google Drive, Dropbox, OneDrive: Nextcloud for a full web interface with share links, calendar, and contacts; Seafile for fast, lean file sync; Syncthing for device-to-device sync with no server interface at all.
- Google Photos, iCloud Photos: Immich, which has phone apps with automatic backup, face recognition, and shared albums. PhotoPrism is an alternative with strong metadata tools.
- Streaming your own films and music: Jellyfin, or Plex if you value its TV apps and accept its account and paid tier.
- A password manager's cloud sync: Vaultwarden, which works with the official Bitwarden apps.
- Scanned documents and receipts: Paperless-ngx, with OCR and full-text search.
Start with the one that costs you the most or annoys you the most. For most people that is photos.
Self-hosted cloud storage options compared
"Self-hosted cloud storage" covers tools that do quite different jobs. Some give you a Google Drive with a web interface and share links, some only keep folders in sync between devices, and some are built for photos. Most people end up with two: one for files and Immich for photos.
| Software | What it replaces | Phone and desktop apps | Best at | Licence |
|---|---|---|---|---|
| Nextcloud | Drive, plus calendar, contacts, office | Yes, all platforms | The most complete suite, with hundreds of add-on apps | AGPL-3.0 |
| Seafile | Drive and Dropbox sync | Yes, all platforms | Fast, reliable sync of large libraries | AGPL-3.0 (Community) |
| ownCloud Infinite Scale | Drive and Dropbox | Yes, all platforms | A lean rewrite in Go, no database to run | Apache-2.0 |
| Pydio Cells | Drive, for teams | Yes | Fine-grained sharing and workspaces, also in Go | AGPL-3.0 |
| Syncthing | Dropbox-style folder sync | Desktop, Android | Device-to-device sync with no central server | MPL-2.0 |
| Immich | Google Photos, iCloud Photos | Yes, with auto backup | Photo backup, faces, maps and shared albums | AGPL-3.0 |
Nextcloud vs Seafile: Nextcloud does more (calendar, contacts, Office, Talk) and is slower with large numbers of files; Seafile does sync and sharing only, and does it fast. ownCloud vs Pydio: both moved to Go rewrites (Infinite Scale and Cells) and suit people who want files without Nextcloud's weight; Pydio leans toward team workspaces, ownCloud toward a familiar Drive-like experience.
Set up your own photo cloud in fifteen minutes
Photos are where most people start, because they are the biggest and most personal part of a cloud bill. Immich publishes an official compose file. On any Docker host (Homeio installs Immich from its store, or you can paste these steps into its terminal):
mkdir -p ~/immich-app && cd ~/immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.envOpen .env and set two lines: UPLOAD_LOCATION to the disk where photos should live, and DB_PASSWORD to a random password. Then start it:
nano .env
docker compose up -dOpen port 2283 on the server, create the admin account, install the Immich app on your phone and turn on backup. Leave Google Photos or iCloud running in parallel for a month before you trust it.
Size the storage before you buy it
Start from what you store today. Your cloud provider's storage page shows how much each service uses; photos and videos are almost always the largest share. Then plan for growth: phone cameras and video resolutions only get bigger, so buying about twice your current usage gives you a few years of headroom.
For anything irreplaceable, use two drives that mirror each other, so a single drive failure doesn't take the server down or lose recent changes. That means buying twice the raw capacity you want to use.
A mirror is not a backup. If you delete a folder, ransomware encrypts your files, or a bad update corrupts them, the mirror copies that damage to the second drive instantly. Mirroring protects against a dead drive; only a separate backup protects against everything else.
Keep an off-site copy, even at home
The irony of a well-run self-hosted setup is that it still uses the cloud, just differently: as an encrypted backup target, not as the place you work. Follow the 3-2-1 rule, three copies of anything important, on two kinds of storage, with one copy outside the house.
- Use a backup tool that encrypts on your server before anything leaves it, such as restic, Borg, or Kopia. The storage provider then holds data it can't read.
- Send it to cheap object storage or a storage box, or to a drive at a relative's house.
- Back up the irreplaceable things off-site, photos and documents above all. A media library you could re-rip or re-download may only need a local copy.
- Restore a file on purpose every few months. A backup nobody has ever restored is a guess.
Here is what that looks like with restic, sending an encrypted copy of your photos to another machine over SFTP (a storage box or a friend's Raspberry Pi both work). Create the repository once, then back up and check:
sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:[email protected]:/srv/restic
export RESTIC_PASSWORD_FILE=/root/.restic-password
restic init
restic backup /DATA/Media/Photos /DATA/Documents
restic snapshotsThen run it every night from root's crontab (sudo crontab -e). Keep a copy of the password file somewhere other than the server: without it the backup cannot be read, by anyone, including you.
30 3 * * * RESTIC_REPOSITORY=sftp:[email protected]:/srv/restic RESTIC_PASSWORD_FILE=/root/.restic-password restic backup --quiet /DATA/Media/Photos /DATA/DocumentsA switch that doesn't risk your files
You don't have to cancel anything on day one. The safe order is:
- 1.Keep the cloud plan exactly as it is.
- 2.Set up the server and one replacement app, typically Immich for photos, and let it run in parallel with the cloud for a month.
- 3.Set up backups, including an off-site copy, and restore something from them.
- 4.Move bulk data you have the only copy of, and point your devices at the server.
- 5.Only then downgrade the cloud plan, to the size your encrypted off-site backups actually need.
