The Easiest Way to Back Up Your Phone Photos to Your Own Server
If you've ever opened Google Photos and seen a "you're running out of free space" banner, or watched the storage tier you signed up for two years ago quietly creep up in price, you've probably wondered: can I just back my phone photos up to my own hardware? The answer in 2026 is yes — and it's an app install plus a single toggle, not a weekend project. This guide walks through the absolute easiest path: install one app on a small box you own, install one app on your phone, flip auto-backup, and your photos start landing in a library that nobody can lock you out of.
Tested on: a UGREEN DXP4800 Plus and a $7/month Hostinger VPS, both running SparkBox v1.6.155. The mobile-side flow was verified on an iPhone and an Android handset. No prior Linux or Docker experience needed.
- Why bother with your own server at all?
- What you actually need (hardware-wise)
- Step 1: get SparkBox onto your box
- Step 2: install Immich with one click
- Step 3: create your account
- Step 4: install the mobile app and connect it
- Step 5: turn on automatic backup
- The honest tradeoffs (what does NOT work)
- Where to go from here
1. Why bother with your own server at all?
There are three honest reasons most people end up here, and one bad reason worth ruling out.
The first honest reason is cost. A 200 GB Google One plan is about $30/year, a 2 TB plan is about $100/year. If your library is past 200 GB (and once you've shot a few thousand 4K videos, it is), you're paying that bill forever. A small server with a single big drive costs you once and stops costing you.
The second is control. Google can suspend an account, change a policy, or simply decide a photo violates a rule a human never reads. There's no appeal path that reliably works in a reasonable timeframe. When your library lives on a box at your house or in your own rented VPS, the kill-switch isn't somebody else's.
The third is privacy. Google scans every photo for content classification — they're upfront about this and the feature is part of what makes the app useful. Some people don't mind. Others would rather their face-grouping and "find that picture of a dog" search run on a server they own. Both are reasonable; this guide gives you the second option.
The bad reason — to be fair — is "because it sounds cool". Running your own server is a small but real responsibility. If you don't already have a NAS, an old laptop, or a willingness to rent a $7/month box, you're better off paying Google. We'll get to that decision in the next section.
2. What you actually need (hardware-wise)
You need exactly one of these three things. Any one of them works. You do not need all three.
- A NAS you already own. If you have a UGREEN, Synology, or similar box with at least 4 GB of RAM and a spare 500 GB of disk, you're set. UGREEN is what we test against because it ships with a real Linux underneath and a built-in web terminal. Synology works too, as long as you can enable SSH.
- A small VPS (a "virtual private server" — a small Linux server in someone else's datacenter). Hostinger's KVM2 plan is about $7/month and is what we test our install scripts against. The catch is your photos travel over the internet to back up, which is slower than a NAS sitting on your home network.
- An old laptop with at least 8 GB of RAM. Anything from the last decade with that much memory will run Immich for a single household. The catch is that laptops aren't built to run 24/7, so you'll want to disable sleep-on-lid-close and accept it'll use a bit more electricity than a purpose-built NAS.
Storage rule of thumb: take the size of your current Google Photos library and double it. Your photos plus thumbnails plus the AI-search index typically lands around 1.5–2× the raw photo size. If your Google library is 200 GB, plan for 400 GB. Hard drives are cheap; it's worth a little headroom.
One thing that's not on the list: a graphics card. Immich's smart-search and face-recognition features run on the CPU by default and work fine. A GPU would make the first-import processing faster, but it's not required.
3. Step 1: get SparkBox onto your box
SparkBox is a free, open self-hosting platform — it bundles the app you're about to install (Immich), the database it needs, and the dashboard you'll use to run them. You install it once, then everything else is a button click. If you want the full background story on the no-code path, we wrote a separate no-terminal beginner guide; you don't have to read it first.
On your NAS, VPS, or laptop, open the built-in web terminal (UGREEN: App Center → Terminal. Hostinger: panel → Terminal. Laptop: just open Terminal). Paste this one line:
curl https://get.tomsparkbox.com/install.sh | sudo bash
Hit enter, type the box's password when it asks, and walk away for 5–10 minutes. When it finishes it prints a URL like http://your-box-ip:8443. Open that in your browser — that's the SparkBox dashboard, and from this point on you don't need to touch the terminal again to do anything in this guide.
If you're nervous about pasting a command from the internet (you should be, in general), the install script is published in plain text at get.tomsparkbox.com/install.sh. You can read it in a browser before running it.
4. Step 2: install Immich with one click
Open the dashboard URL the install printed. You'll see the SparkBox catalog — a grid of tiles, each tile being a self-hosted app you can install in one click.
Find the Immich tile. It's the one with a camera icon, tagged "Your private Google Photos". Click it, then click Install.
Under the hood, SparkBox is starting four containers for you: the Immich server itself (handles the web UI and the mobile app's uploads), a PostgreSQL database (stores the metadata about each photo), a Redis cache (handles the job queue), and a machine-learning container (powers the "search for dogs at the beach" feature and face grouping). You don't need to know which is which to use Immich — but if you ever look in the dashboard's container view and see four "Immich" entries, that's why.
The install takes a minute or two while the images download. When it's done the tile flips green and a Launch button appears. Click Launch — a popup shows you the URL where Immich is now running, which will look like http://your-box-ip:2283.
5. Step 3: create your account
Click the URL from the Launch popup, or paste it into a new browser tab. You'll land on the Immich login screen.
Important detail that catches a lot of beginners off guard: there is no default account and no default password. The very first user who registers on this fresh install automatically becomes the admin. So click Sign Up, enter an email and a password you pick yourself, and you're in.
The email doesn't have to be real and Immich never sends mail to it — it's just an identifier. But pick a real one if you want the option to add other family members later; you'll want to recognize who's who. Pick a long password; this account holds your entire photo library.
Once you log in, you're looking at an empty Immich timeline. That's expected — your phone hasn't uploaded anything yet. That's the next step.
6. Step 4: install the mobile app and connect it
On your phone, install the official Immich app. It's free on both the iOS App Store and the Google Play Store. Search "Immich" — the icon is a dark blue square with a stylized "i" on it.
Open it. The first screen asks for a Server Endpoint URL. This is the part where one specific detail trips beginners up, so take it slowly. Enter exactly:
http://your-box-ip:2283/api
Three things that have to be right:
- The
/apiat the end is required. Without it the app refuses to connect with a generic "can't reach server" error. This is the single most common first-try failure. - The scheme is
http://, nothttps://— unless you've gone out of your way to set up a domain with HTTPS, which you haven't yet. The default install runs on plain HTTP inside your home network, which is fine for now. - Use the IP, not the hostname. Things like
mybox.localsometimes work and sometimes don't, depending on your router. The IP (something like192.168.1.50) always works.
Tap Next. Sign in with the email and password you just created in the web UI. The app drops you on an empty timeline that mirrors what you saw in the browser.
7. Step 5: turn on automatic backup
This is the toggle that does the real work. In the Immich app, tap the cloud icon at the bottom of the screen (or open Settings → Backup, depending on app version).
Two things to set, in this order:
- Pick the albums to back up. By default Immich asks which device albums to upload. Your Camera Roll / Recents is usually all you want; you don't need to back up the screenshots of memes you took two months ago, but it's your call. Tap the album, confirm.
- Toggle Background Backup on. This is the switch that makes it automatic. Once it's on, the app uploads new photos quietly in the background, the same way Google Photos does. You don't have to open Immich every day.
The first run uploads your whole camera roll. If you have a few thousand photos and you're on Wi-Fi, expect this to take an hour or two — slower if you're going over a VPS instead of your local network. After that, each new photo uploads within a few minutes of being taken.
Open the Immich web UI on your computer and refresh. You'll see your photos start to fill in. The timeline view, the map view (if your photos have location data), and the search bar all work the same way Google Photos does — they're just talking to your hardware now.
The smart-search and face-recognition features need a bit of time to run. When you first open the app there'll be a background job processing each photo to generate thumbnails and feed the AI search index. On modest hardware this takes a few hours per 10,000 photos. You can use Immich normally during this; the smart features just become available gradually. For the full per-app walkthrough — including how to disable the AI features if you don't want them — see the Immich setup guide.
8. The honest tradeoffs (what does NOT work)
This is the section most "back up your photos to your own server" tutorials skip. Here's the unvarnished list.
- Off-site backups are still your job. If your house burns down, your "own server" burns with it. Google Photos solves this for you by storing your photos in many datacenters; with self-hosting you need to send a copy somewhere off-site yourself. The simplest option is a second small drive you keep at a friend's house and sync to monthly, or a cheap cloud bucket. Plan for this before you cancel Google.
- Shared albums with non-Immich users are clunky. Sending a link works fine and the recipient sees a web gallery, but if grandma wants the photos to show up in her phone's photo app, that's a Google Photos / iCloud strength Immich doesn't fully match. It's improving every release, but be honest with yourself about how much you rely on this.
- The first-import job grind is real on weak hardware. If you're running on an old laptop or a Raspberry Pi, the initial AI indexing of your library can take days. It runs in the background and doesn't block you using Immich, but the "show me dogs" feature won't fully work until it's done. The Immich setup guide explains how to either accept this or turn the AI features off entirely if you don't want them.
- You're now the IT person. When something breaks, there's no support line — there's our community at d/sparkbox, the Immich project's GitHub, and your own patience. SparkBox automates most of the maintenance (one-button updates handle the apps and the platform together), but you're still the one clicking the button.
If any of those four are dealbreakers — particularly the off-site backup one — you might want a hybrid setup: Immich on your own hardware for the bulk of the library, plus a small Google One plan as your "the house burned down" insurance. That's a totally reasonable middle ground.
9. Where to go from here
If you've followed the five steps above, your phone is already uploading to your own server. The hard part is done. From here, the worthwhile next moves:
- Set up an off-site backup. Pick a second drive, a friend's house, or a cheap S3-compatible bucket. SparkBox has a Backup tile that handles the scheduling; the Immich setup guide tells you exactly which folder to point it at.
- Add family members. Each person gets their own Immich account on the same server. Their photos are private to them; you can share albums explicitly. Add them from Administration → Users in the Immich web UI.
- Import your existing Google Photos library. Google Takeout lets you download everything as a zip. The Immich CLI imports it preserving the original dates. This is its own afternoon project; the per-app guide covers it.
- Cancel your Google One plan. Once a few weeks have gone by and you're confident Immich has everything, the storage tier on the Google side becomes optional. Most people downgrade rather than fully cancel, keeping a small free tier as a parachute.
And if you get stuck at any point — a step doesn't match what you see, an error message lands you somewhere weird — post in d/sparkbox with a screenshot. Real humans (often a person named Tom) answer, and beginner-stuck-spots are how we improve the platform.
Next steps
Your phone's photos belong on hardware you own.
SparkBox installs Immich — self-hosted, AI-search-capable, mobile-app-ready — in one click. Free, open, and no Docker, Linux, or coding required. The only command you'll type is the one that installs it.