For the last fifteen years, I've used Android phones, starting with the Samsung S3 through the S4 and then moving on to Pixel phones. Like many Android users, I've relied on classic Google apps such as Gmail, Drive, Hangouts, Calendar, and Photos. The Google Photos app is particularly great, offering excellent categorization, sorting features, and automatic cloud backups.
The issue, however, is Google's storage limitations. Initially, I had just 1GB, which filled up quickly. Now, with 15GB, my photos and videos alone have consumed nearly 95% of that space. Of course, I could buy more storage, upgrade to a Google business account, or use OneDrive through my Microsoft 365 subscription. But I'd rather not pay for additional storage when I have the means to host it myself.
Looking to my home lab, I devised a solution. Here’s what I needed:
I initially thought this would be a quick two- to three-hour project, but it ended up taking six to eight hours—mainly spent configuring storage and setting up the app on my server. Now, let’s go through how I made it work.
There are multiple storage options: a NAS, a dedicated virtual machine, or even external storage connected to a personal computer.
I already had a TrueNAS Scale server managing my documents, movies, and music, with terabytes of free space. Allocating 1TB specifically for photos and videos made economic sense. Setting up the dataset and configuring permissions took some time, but following TrueNAS documentation made it manageable.
Additionally, I set up an SMB share to access the files from my Windows machines. While it's possible to map Windows' Pictures folder to this location, I chose not to.
Instead of creating another virtual machine, I used TrueNAS’ built-in Charts feature to run an app in a Kubernetes instance. After evaluating Immich and PhotoPrism, I chose PhotoPrism because it best met my needs.
Installing PhotoPrism through TrueNAS’ app feature was straightforward. I used host storage pointing to my dataset and kept the default settings. PhotoPrism doesn’t support multiple users per installation, but it requires an initial password setup. Once that was done, minimal configuration was needed.
To allow remote syncing, I set up a reverse proxy. However, this step is optional if syncing is only done on the home network.
Next, I installed PhotoSync on my phone. This app syncs media with PhotoPrism effortlessly. Configuration was simple:
PhotoSync offers a seven-day free trial, but I opted for the paid version to unlock unlimited use of connectors. While it includes a photo browser, I continue using my phone’s default gallery app. If using Google Photos, be sure to disable automatic cloud backups.
Backing up media to my server is great, but offsite storage is equally important. While Google Drive or OneDrive are options, TrueNAS integrates with cheaper alternatives like Storj.
Storj provides significantly lower-cost cloud storage, charging me just $4 per month for 150GB of backups. Since I rarely need to access these backups, the cost remains low. Other viable options include Backblaze, Storj, or Google’s deep storage tier.
Replacing Google Photos with PhotoPrism, PhotoSync, and TrueNAS has given me complete control over my photo storage without recurring cloud storage fees. With automatic backups, easy access, and a scalable solution, I no longer worry about storage limits or privacy concerns.
If you're looking for an alternative to Google Photos, this setup is a great starting point!