Skip to content
AFCOMP
← Build log

Self-Hosting Immich: Building My Own Private Photo Backup System

immichdockerself-hosting

Overview

One of the first services I wanted to host in my homelab was a replacement for cloud photo storage.

I wanted a way to automatically back up photos from my phone, access them from anywhere, and keep control of my own data.

After researching different options, I chose Immich.

Immich is a self-hosted photo and video management platform that works similarly to services like Google Photos, but runs on my own hardware.

Deployment

Immich runs inside my Docker environment alongside my other services.

The stack includes:

  • Immich server
  • PostgreSQL database
  • Redis
  • Machine learning container

The machine learning component enables features like:

  • Photo searching
  • Facial recognition
  • Smart organization

The Setup Process

The initial deployment was not completely smooth.

The first version of the deployment failed because I used a standard PostgreSQL image instead of the Immich-specific database image that includes the required vector extensions.

After checking the Docker logs, I found the error:

No vector extension found

After switching to the correct PostgreSQL image, the containers started successfully.

This was a good reminder that logs are usually the best place to start when troubleshooting.

Making It Accessible Anywhere

To access Immich remotely, I set up:

  • Cloudflare DNS
  • Nginx Proxy Manager
  • HTTPS certificates
  • Secure reverse proxy access

This allows me to access my photos securely without exposing the application directly to the internet.

Mobile Backup

After connecting the Immich mobile app, my phone can automatically upload photos to my server.

This gives me:

  • My own photo backup system
  • Remote access
  • Full control over my data
  • No monthly storage subscription

Lessons Learned

This project taught me a lot about:

  • Docker networking
  • Database requirements
  • Reverse proxies
  • HTTPS certificates
  • Secure self-hosting

The biggest takeaway was that self-hosting is not just about getting something running. It is about understanding how every piece works together.

← All entries