Site icon 어머넷 블로그

Google 포토 대체 할 오픈소스 IMMICH 설치방법

Google 포토 서비스는 막강한 백업 기능과 공유 기능에 젖어 10여년 가까이 익숙해진 서비스였다.
2021.6월 유료화를 선언하고 거리감을 갖게 되었다.
대체할  오프소스 솔루션을 찾아 헤매다 Google 포토 대체 오픈소스  IMMICH라는  강력한 오픈소스를 찾았다.
이 서비스 기능을 소개 하고 Google 포토 대체 할 오픈소스 IMMICH 설치방법 을 알아보고자 한다.

 

Immich

immich icon
immich 오픈소스

Immich는 github에서 빈번한 업데이트를 수행하는 유명한 오픈소스 프로젝트이다.

서비스 특징

자동백업

Immich는 Forground, Background 백업 기능을 제공한다.
특히 백그라운드 백업기능을 설정 해 놓으면 새로운 사진을 바로바로 자동 업로드 하는 기능이다.
이 기능은  핸드폰(아이폰, 안드로이드)에서 주로 사용 되며
자동 백그라운드 백업 기능은 WIFI만, 충전 중에 만 조건을 설정 할 수 있으며
데이터 요금 부담 또는 배터리 운영에 편리하게 사용 할 수 있다.

얼굴 인식

구글 포토의 막강한 기능이다. 과거 Immich 에서 제공하지 않아 아쉬웠는데  최근 업데이트로 추가 되었다.

  • 인물별 분류 – 해당 인물의 대표 얼굴 사진 변경
  • 생년월일 설정 – 사진 촬영 당시 나이 표시에 활용
  • 얼굴 병합  – 여러 개 이상의 얼굴을 한 사람으로 병합
  • 얼굴 숨기기 – 지인 또는 친구 얼굴만 관리 하고 싶을 때 타 얼굴에 대해 숨기기 또는 보이기 토글 설정 가능

다양한 모바일 지원

반응형 애플리케이션으로 만들어 다양한 디바이스를 지원합니다.(안드로이드/아이폰/아이패드/웹사이트)

다양한 immich 특징들을 링크를 통해 자세히 확인 할 수 있다.

설치

아래 docker-compose.yml은 github에 docker-compose로 설치하는 파일을 찾을 수 있다.

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables 

# The location where your uploaded files are stored 
UPLOAD_LOCATION=/mnt/hdd/immich_data 
# The location where your database files are stored 
DB_DATA_LOCATION=./postgres 

# The Immich version to use. You can pin this to a specific version like "v1.71.0" 
IMMICH_VERSION=release 

# Connection secret for postgres. You should change it to a random password 
DB_PASSWORD=postgres 

# The values below this line do not need to be changed 
################################################################################### 
DB_HOSTNAME=immich_postgres 
DB_USERNAME=postgres 
DB_DATABASE_NAME=immich 

REDIS_HOSTNAME=immich_redis 

IMMICH_SERVER_URL=http://xxx.blog.eomeo.net

위 파일은 .env파일이다.
.env 파일과 함께 yaml파일은 docker-compose 를 통한 간단히 컨테이너 기반 서비스는 immich가  강력한 오픈소스가 되게 한다.


version: '2'
#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

#name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: ['start.sh', 'microservices']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:
docker-compose up -d

실행 및 운영 방법

설치 실행 방법은 간단하다.  docker-compose.yml파일과 같은  디렉토리에서 아래와 같이 입력하면 된다.

docker compose up -d

서비스 종료 및 삭제 방법은 다음과 같다.

docker-compose의 일반적인 방법으로
서비스 종료를 위해서는 ‘sudo docker compose stop’,
서비스 삭제를 위해서는 ‘sudo docker compose down’이다.

immich는 오픈 소스로  활발히 업데이트를 하고 있다.
업데이트를 통해 개선된 기능을 업그레이드 하고 싶을 때는 아래와 같이 입력한다.

sudo docker compose stop
sudo docker compose pull  #신규버전 재설치
sudo docker compose up -d

마치며

이상 구글 포토를 대체할  오프소스 솔루션 인 immich라는  강력한 오픈소스가 있어 소개 하고
Google 포토 대체 오픈소스 IMMICH 설치하는 방법을 알아 보았다.

다음 글에서는 immich 모바일 애플리케이션을  설치하고 간단한 사용 방법을 알아보고자 한다.

Exit mobile version