
The pattern looks like this. You hit the Google Photos paywall, pay for a year of Google One, and then a friend posts about Immich on a NAS that sat idle in the closet. Suddenly the math changes. A used mini PC plus a spinning drive costs less than two years of 200 GB One, the photos never leave the house, and the phone app does not nag about upsells. The bottleneck is no longer the server. It is the Android app that handles the upload, the metadata, and the daily timeline you actually look at. We tested seven self-hosted photo apps against a Pi 5, an Intel N100 mini PC, and a Synology DS224+. These are the best apps for self-hosted photos on Android in 2026.
What to look for in a self-hosted photo app
A photo backup is a long-term commitment. The app that touches your camera roll every day matters more than the server software you set up once.
- Reliable background upload. Many Android apps say they back up photos and then quietly stop when the OS kills the service. The good ones survive reboots, dose batches, and resume on Wi-Fi.
- EXIF and original quality. Re-encoding strips metadata and degrades large RAW or HEIC files. Originals only.
- Face recognition that runs on your hardware. CPU-only ML works on a NAS. GPU ML is faster but few people self-host on a GPU box.
- A real timeline. Folder lists do not count. Photos belong on a date-ordered grid with month and year navigation.
- Search that finds the dog photo. CLIP-style search (“dog at beach”, “wedding cake”) has become the bar after Immich shipped it.
- Sane sharing. A link with an expiry date is the minimum. End-to-end encrypted shares are better.
Quick comparison
| App | Best for | Server software | Encryption | Aptoide | F-Droid |
|---|---|---|---|---|---|
| Immich | The default self-host | Immich | At rest, optional | Yes | Yes |
| Ente Photos | E2EE that you can self-host | Ente Museum + MinIO | End-to-end | No | No |
| Nextcloud | All-in-one server | Nextcloud + Photos | At rest, optional E2EE | Yes | Yes |
| Memories for Nextcloud | Polished gallery on a Nextcloud box | Nextcloud + Memories | At rest | Yes | No |
| Gallery for PhotoPrism | PhotoPrism libraries | PhotoPrism | At rest | Yes | No |
| Synology Photos | Synology DSM owners | Synology DSM | At rest | Yes | No |
| LibrePhotos (web) | Face-led ML on your hardware | LibrePhotos | At rest | No | No |
1. Immich, the default self-hosted photo app
Immich is the project everyone in r/selfhosted points new arrivals to. The Android client does the things people want from Google Photos: timeline, albums, face thumbnails, sharing links, and CLIP-powered text search that actually finds the photos of the dog on the beach. After the v2 release in late 2025 the schema settled down, and v2.5 added device cleanup and clearer sync status. The XDA piece from May 2026 made the point bluntly: Immich on a NAS finally feels good enough to delete the Google Photos account for real.
The upload is what closes the deal. Background sync survives reboots, batches in 1000-image chunks, and resumes from interruption on the same Wi-Fi network without restarting from zero.
Where it falls short: ML features want a real CPU. A Raspberry Pi 4 indexes a 50,000-photo library in days, not hours. The first sync still hammers a spinning disk. Album sharing has fewer permission controls than Nextcloud.
Pricing:
- Free, AGPL open source
- You pay for hardware and storage only
Platforms: Android, iOS, web
Bottom line: Start here. Immich is the path of least regret if you are setting up a self-hosted photo stack in 2026.
2. Ente Photos, end-to-end encrypted and self-hostable
Ente Photos runs as a hosted commercial service, but the entire stack is AGPL and self-hostable. The Ente Museum server, the web client, the mobile apps, and the desktop app all open-sourced together. The big difference from Immich is end-to-end encryption: the server stores ciphertext only, so a server compromise leaks file sizes and timestamps but not the photos. Setting up the self-hosted version takes Docker Compose, PostgreSQL, and an S3-compatible object store like MinIO, plus Tailscale or a reverse proxy for HTTPS.
The Android app is the same binary the hosted users get. Pointing it at your own server is a Settings toggle. Family sharing, shared albums, and the encrypted casting feature all work the same against a self-hosted instance.
Where it falls short: Self-hosting Ente is more setup than self-hosting Immich. No Aptoide build is currently published, and there is no F-Droid release because the app depends on Google Play Services for background sync in some configurations. Search and face grouping run on-device because the server cannot see plaintext, which is slower on older phones.
Pricing:
- Free, AGPL when self-hosted
- Hosted plans start at modest monthly cost if you ever want to migrate to managed
Platforms: Android, iOS, web, macOS, Windows, Linux
Bottom line: Pick Ente when end-to-end encryption is a hard requirement and you are willing to spend an afternoon on docker compose, museum.yaml, and a Tailscale tunnel.
3. Nextcloud, when photos live in a bigger filesystem
Nextcloud is the all-in-one self-hosted server, and the Android client doubles as a workable photo backup. Auto-upload per-folder rules let the camera roll go to Photos, screenshots go somewhere else, and WhatsApp media stays out of the timeline entirely. The official Photos and Recognize apps add a face index and a map view, and the 2026 release lets you flag specific folders as end-to-end encrypted, which means the server admin cannot read them either.
The reason to choose this over Immich is breadth. The same server runs CalDAV, CardDAV, Talk, Files, and Notes. The same Android client handles all of it.
Where it falls short: Browsing a 30,000-photo library in the official Nextcloud client lags. Folder navigation, not a date timeline, is still the default for many views. The Recognize app needs serious CPU time to index, especially the first time.
Pricing:
- Free, AGPL
- Hosted Nextcloud providers also offer paid plans if you do not want to run the server
Platforms: Android, iOS, web, desktop (Windows, macOS, Linux)
Bottom line: Pick Nextcloud if photos are one of three or four things the server needs to do. Pair it with Memories below if the photo experience is the part you care about most.
4. Memories for Nextcloud, a real timeline on top of your existing server
Memories for Nextcloud is a third-party Android client (built by RadialApps) that talks to the Memories app on the Nextcloud server. The Nextcloud Memories backend is a separate add-on that builds a fast SQL-indexed timeline of all photos and videos in the Files app, and the Android client surfaces that timeline the way Google Photos does. Smart albums, the “on this day” memories card, face thumbnails from the Recognize app, and map view all carry over.
If you already run Nextcloud and are unhappy with the default Photos experience on Android, Memories is the upgrade. You install the Memories app on the server, point the mobile client at the same login, and the gallery looks like a 2026 photo app instead of a file manager.
Where it falls short: Two pieces of software to keep in sync (server-side Memories and the Android client). The client is a paid app on Google Play (small one-time price, free for GitHub sponsors). Backup and upload still happen through the regular Nextcloud client; Memories is a viewer.
Pricing:
- Modest one-time purchase on Google Play
- Free for GitHub sponsors of the developer
Platforms: Android, plus the web app on any browser
Bottom line: Run this on top of an existing Nextcloud server when the photo experience matters more than running yet another container.
5. Gallery for PhotoPrism, the missing official client
Gallery for PhotoPrism is the de facto Android client for PhotoPrism, written by Maksim Volkau (Radiokot) because PhotoPrism itself has no official mobile app. It connects to a PhotoPrism server, browses the indexed library, and uploads new photos from the camera roll. The Memories extension brings the “on this day” view that PhotoPrism web also has. Native sharing intents work, so Send To from any other app drops photos into the right PhotoPrism album.
PhotoPrism’s strength is its tagging engine and TensorFlow-based recognition. The mobile client is honest about what is on the server and what is missing, and the developer ships updates that track PhotoPrism releases closely.
Where it falls short: Third-party, not official, so PhotoPrism support will not help if it breaks. Some advanced server features (private album permissions, complex search operators) need the web UI. Multi-user setups are limited.
Pricing:
- Free core app
- Optional paid extensions (Memories, search filters) at modest one-time prices
Platforms: Android. PhotoPrism’s own web app covers iOS and desktop as a PWA.
Bottom line: Pick this if you are already running PhotoPrism. If you are still choosing between PhotoPrism and Immich, Immich’s first-party Android app gives it the edge for most people.
6. Synology Photos, the right answer when you already own the NAS
Synology Photos is the DSM-bundled photo manager, and it has come a long way from the old DS Photo. Face grouping, geo-tagging, shared spaces, and a timeline view all ship in DSM 7.2 and later. The Android client (package com.synology.projectkailash) handles auto-upload, live photo backup, and lets multiple family members share one library with separate personal spaces. This is the path the XDA author talked through in their “I wanted a Synology home server” piece: when the appliance does the job, the value of building a second stack from scratch is harder to justify.
Where it falls short: Only useful on Synology hardware. The DS220+ and earlier struggle with face recognition on large libraries. The official client is closed source, so the “I host my own photos” point loses some teeth. Synology’s recent DSM 7.2 drive lock-in tightened the bundled-disk policy on newer Plus units.
Pricing:
- Bundled with any compatible Synology NAS at no extra cost
- No subscription, no per-user fees
Platforms: Android, iOS, web
Bottom line: If a Synology box is already sitting on a shelf, this is the lowest-effort answer. If you have not bought one yet, Immich on cheaper hardware will save money over the life of the device.
7. Stingle Photos, end-to-end encryption without the docker compose
Stingle Photos is the lighter, simpler cousin of Ente. The server (also open source) is a single Go binary plus PostgreSQL plus S3-compatible storage, with a docker-compose recipe that fits on one screen. The Android client uploads photos encrypted client-side, so even a hostile server admin sees ciphertext. There is no face recognition, no smart albums, no CLIP search. The point is keeping a photo archive private, on hardware you control, without spending a weekend.
Where it falls short: Feature-light by design. No timeline ML, no shared albums with granular permissions, no map view. A library larger than a few terabytes is workable but slow to scroll. The desktop story is web-only.
Pricing:
- Free, open source on both client and server
- Hosted Stingle plans also exist if you do not want to self-host
Platforms: Android, iOS, web
Bottom line: Pick Stingle when you want client-side encryption with one tenth of the operational surface of Ente. Skip it if you need a polished timeline or sharing.
8. LibrePhotos, web-only but worth the bookmark
LibrePhotos does not ship an Android app. The reason it earns the last spot here is that the web client is a real PWA, and the server’s machine learning is genuinely interesting. It runs face recognition, scene classification, and image captioning on your own hardware, and the timeline view is built around faces and events rather than folders. The project sits in the same lineage as Photonix and Mapilio, but development has been more consistent through 2025 and into 2026 (last release February 2026).
The workflow on Android is: install LibrePhotos on a server with at least 8 GB of RAM, add it to the home screen as a PWA from Chrome, and use a regular file-sync tool (Nextcloud, Syncthing, or the official LibrePhotos directory watcher) to push the camera roll into the library directory the server scans.
Where it falls short: No native Android app, so background upload depends on a separate sync tool. ML is RAM-hungry; under 8 GB the indexer falls over on large libraries. Setup is more involved than Immich.
Pricing:
- Free, MIT-licensed
- No paid tier and no hosted plan
Platforms: Web. The PWA installs on Android and desktop browsers.
Download: Web client only. Pair with the Nextcloud or Syncthing Android app for camera-roll upload.
Bottom line: Bookmark this as the ML-heavy option when Immich and Ente do not have the recognition features you want. For phone-first day-to-day use, install one of the apps above instead.
How to pick the right one
- You are starting fresh and want the path of least regret: Immich. First-party Android app, active development, and the search and face features people came for.
- You want end-to-end encryption: Ente Photos, self-hosted against the open-source Museum server, with a Tailscale tunnel for HTTPS.
- The server already does ten things: Nextcloud, with Memories on top if the photo timeline matters.
- You own a Synology already: Synology Photos, especially on a DS920+ or newer where face recognition has the CPU it needs.
- You picked PhotoPrism: Gallery for PhotoPrism by Radiokot. There is no official client and this one tracks releases closely.
- You want encryption without the operational load of Ente: Stingle Photos, which is a single binary plus PostgreSQL and an S3 bucket.
- You care about face and scene ML above everything else: LibrePhotos, treating the camera roll as a sync source instead of an app.
The boring truth is most people should run Immich on a mini PC or a NAS. The other entries here exist because every photo library has its own constraints, and the answer for someone on a Synology is not the answer for someone who wants every byte to leave the phone encrypted.
FAQ
What is the best self-hosted photo app for Android in 2026?
Immich. The Android client is mature, the server is past its v2 stable release, and the face recognition and CLIP-based natural language search match what most people miss when they leave Google Photos. It is also the project with the largest active community, which matters when something breaks.
Can I self-host Ente Photos without a paid plan?
Yes. The Ente server (Museum), the web client, the mobile apps, and the desktop apps are all AGPL. The docker-compose recipe needs PostgreSQL and an S3-compatible store like MinIO. Use Tailscale or a reverse proxy with a TLS certificate, point the mobile app’s Settings screen at your own server URL, and the same binary works against your hardware.
Is PhotoPrism better than Immich?
For most users, no. PhotoPrism’s tagging engine is excellent, but the lack of an official mobile app pushes it behind Immich for day-to-day phone use. If you already run PhotoPrism, the third-party Gallery for PhotoPrism client closes most of that gap. If you are choosing fresh, Immich is the safer pick.
Do I need a NAS to self-host photos?
No. Any always-on Linux box with a couple of terabytes of disk works. A used mini PC (Intel N100 or N305) costs less than a NAS, runs cooler, and handles Immich’s ML faster than an entry-level Synology. A Raspberry Pi 5 with an external drive is enough for libraries under 30,000 photos if you skip aggressive ML indexing.
What about Google Photos features like Magic Eraser?
The self-hosted apps do not have on-device generative editing as good as Google’s. CLIP search and face grouping cover the discovery features, but you give up Magic Eraser, Best Take, and the more elaborate AI memories. People who need those features pay Google or use a hybrid: Immich for archival, Google Photos free tier for active editing.
Can the family share one self-hosted photo library?
Yes. Immich, Nextcloud, Ente, and Synology Photos all support multi-user libraries with shared albums and per-user spaces. Set up an account per family member, point everyone’s app at the same server, and use shared albums for the photos everyone should see.