Favicon of Immich

Immich

Create a private, self-hosted photo and video library on your own server. Automatically back up, organize, and search your media without sacrificing privacy.

Take full control of your personal photo and video collection with this powerful, self-hosted management solution. Create a secure and private library on your own server, ensuring your precious memories are never in the hands of a third party. It provides a beautiful and intuitive interface to browse, search, and organize your entire media collection.

Key capabilities include:

  • Automatic Backup: Securely back up photos and videos directly from your mobile devices.
  • Advanced Organization: Create albums, add tags, and use metadata to keep your library tidy.
  • Intelligent Search: Quickly find specific photos based on objects, faces, and locations.
  • Secure Sharing: Share albums and photos with family and friends with granular control over access.
  • Multi-User Support: Create separate accounts for different family members, each with their own library.

Directory Structure

immich
immich-data
postgres-data
.env
docker-compose.yml

docker-compose.yml

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:release
    volumes:
      - ./immich-data:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - ./immich-data/model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready -dbname='${DB_DATABASE_NAME}' -U '${DB_USERNAME}' || exit 1; Chksum="$$(psql -dbname='${DB_DATABASE_NAME}' -U '${DB_USERNAME}' -t -c 'SELECT setting FROM pg_settings WHERE name = ''data_checksums'';')"; if [ "$$Chksum" = "on" ]; then exit 0; else exit 1; fi
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always

.env

DB_PASSWORD=your_super_secret_password
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Immich

Favicon

 

  
  
Favicon

 

  
  
Favicon