Skip to content

Immich Stack

Overview

The Immich stack provides a modern, self-hosted photo and video management platform with automatic organization, intelligent search, and sharing capabilities. It replaces Google Photos with a privacy-first alternative that keeps all media on your own server.

Components

Immich Server

  • Image: ghcr.io/immich-app/immich-server:v2.4.1
  • Purpose: Photo/video processing, API, and web interface
  • Container Name: immich_server
  • Access: https://photos.{{ main_domain }}
  • Storage: /mnt/storage/photos/

Immich Microservices

  • Purpose: Background tasks like thumbnail generation, ML recognition
  • Deployed alongside Immich Server

Immich Database (PostgreSQL)

  • Container Name: database
  • Database Name: immich
  • Network: internal (shared database from Databases stack)

Immich Redis

  • Container Name: redis
  • Purpose: Caching and job queue
  • Network: internal

Key Features

  • Automatic Imports: Watch folders for new photos/videos and import automatically
  • Smart Organization: Automatic classification and organization by date, location, camera
  • Search: Full-text search with support for dates, locations, and camera metadata
  • Sharing: Create albums and share with other users
  • Mobile Apps: iOS and Android apps for backup and viewing
  • Machine Learning: On-device or cloud-based image recognition and object detection
  • Backup Integration: Automatic daily backups to /mnt/storage/backups/immich/

Dependencies

Required Stacks

  • Databases: PostgreSQL database for photo metadata and user accounts
  • Backbone: Traefik for HTTPS termination and routing
  • Monitoring (optional): Service health monitoring

Network Configuration

  • web network: Exposed via Traefik for public access
  • internal network: Internal communication with other services
  • db network: Database connectivity

Storage

  • Photos Directory: /mnt/storage/photos/ - stores all uploaded photos and videos
  • Backups: /mnt/storage/backups/immich/ - automated backups of the library

Monitoring

  • HTTP monitor via Uptime Kuma at https://photos.{{ main_domain }}
  • Health checks ensure service availability

Deployment Notes

  • Immich Server contains both API and web UI in one container
  • Requires PostgreSQL database with user immich
  • Redis instance provides caching and job queue functionality
  • Storage volume must have sufficient space for photo library
  • Automatic backups are configured and run regularly
  • Container runs as non-root user for security

User-Facing Features

  • Web Gallery: Browse and search photos and videos
  • Album Management: Organize media into albums
  • Sharing: Share albums with other users or generate public links
  • Timeline View: Chronological view of all media
  • Map View: View photos on an interactive map using EXIF data
  • Face Recognition: Identify and group people in photos
  • Mobile Backup: Automatic backup of photos from mobile devices
  • Collaborative Albums: Share and contribute to shared albums

Immich integrates with the Monitoring stack for health checks and uses the Databases stack for metadata storage.