10 Oct 2025
TL;DR: If you want a self-hosted alternative of Google Photos, Immich is currently the most polished choice. It’s a self-hosted photo management tool with fast mobile backups, face & object search, albums and shared libraries, a slick web UI, and strong privacy by design. Below you’ll find an in-depth overview plus a short, step-by-step guide to deploy Immich on nanohost.org.
Immich is an open-source photo and video management system focused on speed, privacy, and local control. Think of it as a Google Photos alternative that you run on your own server (home lab, VPS, or cloud). It supports multi-user setups (perfect for families), automatic mobile backups, timeline and map views, and machine-learning features like face clustering and object search.
Immich typically runs as a small set of services:
Tip: Start with local persistent storage (fast SSD) for simplicity. You can later add a backup/sync process (e.g., rclone) if you want off-site copies.
GPU is optional. If you enable it, ML tasks (face/clip embeddings, video transcodes) can accelerate significantly.
In recent years, more and more people have started rethinking how they store their personal data. Not everyone feels comfortable keeping a lifetime of photos and videos on servers run by big corporations — companies that scan your content for machine learning or advertising purposes, or may restrict access if your account gets flagged. For many, the ability to own and control their digital memories has become just as important as convenience or cloud sync.
This shift has given rise to a growing community of homelab enthusiasts — individuals who run their own infrastructure, from tiny Raspberry Pi clusters to powerful rack-mounted servers. They value privacy, independence, and transparency, often choosing open-source tools that can be self-hosted and extended.
Immich fits perfectly into this philosophy. It’s lightweight enough to run on a home server or NAS, yet robust enough to handle production-grade workloads on a VPS or cloud platform. Whether you want a small personal archive at home or a family photo library accessible from anywhere, Immich scales beautifully in both directions.
Set rules like “backup only on Wi-Fi” or exclude specific folders (Screenshots, WhatsApp). Background uploads keep your camera roll safe without manual effort.
Search by person, place, or thing (“dog”, “beach”, “mountain”) thanks to embeddings generated by the ML service.
Organize by albums, then share securely with family and friends. Create public links with expiry when you need to send a set of photos quickly.
See where and when life happened. EXIF data powers rich navigation across years and locations.
Invite users, set roles, manage quotas (optional), and keep everything tidy from a central admin view.
1. Export with Google Takeout (choose Photos; include metadata JSON).
2. Upload into Immich using the web importer or desktop uploader.
3. Let Immich index: it’ll scan, generate thumbnails, and run ML jobs.
4. Rebuild albums if needed: Takeout exports may not map 1:1 with shared albums—use Immich albums and shares going forward.
Below is a pragmatic, cloud-friendly setup that uses nanohost’s managed services for reliability and easy maintenance.
1. Create account or log into existing one
2. Order new server on Ubuntu. We recommend medium, large or extra large configuration.
3. When server is ready (you will receive email and status will be running (green circle in the account) connect via SSH to it.
4. Create a directory of your choice (e.g. /srv/immich
) to hold the docker-compose.yml
and .env
files:
mkdir -p /srv/immich
cd /srv/immich
5. Install docker and docker-compose. You can use this step-by-step guide: How to install docker on Ubuntu.
6. Download docker-compose.yml
and example.env
by running the following commands:
# get docker-compose.yml
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# get .env
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
7. Edit docker-compose.yml
:
nano docker-compose.yml
Find this section:
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
And change '2283:2283'
to '80:2283'
. Now you need to save file. Press ctrl+x
, then Y
and Enter
.
8. Start docker-compose
using following command:
docker compose up -d
If everything is OK, you should see the Immich registration form by going to the address specified in the Domain field for your virtual server.
Is Immich ready for family use?
Yes—many folks run it for multi-user libraries with tens or hundreds of thousands of photos. Start with good hardware and regular backups.
Can I migrate from Google Photos?
Yes. Use Google Takeout, then import into Immich. Albums/shares may need rebuilding; once you’re in Immich, ongoing organization is smooth.
Do I need a GPU?
No. A CPU-only setup works fine. A GPU just speeds up ML and heavy transcoding.
Can I scale later?
Absolutely. Increase CPU/RAM, enlarge the volume, or move to more powerful nodes. With nanohost.org, these are straightforward changes.
If you’ve been looking for a fast, private, and modern self-hosted alternative of Google Photos, Immich is hard to beat. It’s a polished self-hosted photo management tool that delivers the everyday convenience of a Google Photos alternative without giving up control of your memories. With nanohost.org handling the heavy lifting—managed Postgres, Redis, volumes, domains, and TLS—you can be up and running in under an hour, and your photos will finally live where they belong: with you.
If you want a self-hosted alternative of Google Photos, Immich is currently the most polished choice. It’s a self-hosted photo management tool with fast mobile backups, face & object search, albums and shared libraries, a slick web UI, and strong privacy by design.
A solid folder structure is key to building scalable, maintainable, and high-performing Next.js applications. In this post, we’ll walk through how to organize your Next.js 15 project the right way.