• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Synology Photos를 immich로 마이그레이션

vitive 917

2

1

안녕하세요.

이번에 윈도우 Nas로 이사하면서 Photos를 immich로 마이그레이션한 내용을 공유합니다.

 

간단히 요약하자면 아래와 같은 순서로 진행합니다

  1. immich 설치
  2. immich-go 다운로드
  3. immich-go 명령어로 업로드

 

  1. immich 설치
    1. 저는 Windows Docker에 도커로 immich를 설치해서 사용하기 때문에 docker-compose를 활용했습니다.
    2. immich 설치를 위한 도커 폴더는 다음과 같이 미리 생성해 놓습니다.

      image.png.jpg(d:\docker\18_immich, d:\docker\18_immich\config)

      그리고, 사진 및 영상이 저장될 폴더도 미리 생성해 놓습니다.

      image.png.jpg (d:\Photos)

       

    3. immich는 .env 파일을 미리 생성한 후 여기에 업로드할 폴더 위치를 지정해야 합니다.
    4. .env 파일은 18_immich 폴더에 저장합니다.(아래 내용을 복사한 후 .env 파일로 저장해도 됩니다)
      # 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=D:\Photos
      
      # The Immich version to use. You can pin this to a specific version like "v1.71.0"
      IMMICH_VERSION=release
      
      # Connection secrets for postgres and typesense. You should change these to random passwords
      TYPESENSE_API_KEY=1q2w3e4r5t6y7u8i9o0p
      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
        
    5. docker-compose.yml 파일은 마찬가지로 18_immich 폴더에 .env 파일과 같은 위치로 저장합니다. 내용은 다음과 같습니다
      version: "3.8"
      
      #
      # 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: 18_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
            - D:\Photos:/mnt/media:ro  #미디어가 저장될 위치
          env_file:
            - .env
          ports:
            - 30050:3001  #외부에서 사용할 포트 설정
          depends_on:
            - redis
            - database
            - typesense
          restart: always
      
        immich-microservices:
          container_name: immich_microservices
          image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
          extends:  # 하드웨어 가속을 사용할 경우 주석을 제거
            file: hwaccel.yml
            service: hwaccel
          command: [ "start.sh", "microservices" ]
          volumes:
            - ${UPLOAD_LOCATION}:/usr/src/app/upload
            - /etc/localtime:/etc/localtime:ro
            - D:\Photos:/mnt/media:ro  # 미디어 저장 경로는 위와 동일하게 지정
          env_file:
            - .env
          depends_on:
            - redis
            - database
            - typesense
          restart: always
      
        immich-machine-learning:
          container_name: immich_machine_learning
          image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
          volumes:
            - ./config/model-cache:/cache
          env_file:
            - .env
          restart: always
      
        typesense:
          container_name: immich_typesense
          image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
          environment:
            - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
            - TYPESENSE_DATA_DIR=/data
            # remove this to get debug messages
            - GLOG_minloglevel=1
          volumes:
            - ./config/tsdata:/data
          restart: always
      
        redis:
          container_name: immich_redis
          image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
          restart: always
      
        database:
          container_name: immich_postgres
          image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
          env_file:
            - .env
          environment:
            POSTGRES_PASSWORD: ${DB_PASSWORD}
            POSTGRES_USER: ${DB_USERNAME}
            POSTGRES_DB: ${DB_DATABASE_NAME}
          volumes:
            - ./config/pgdata:/var/lib/postgresql/data
          restart: always
      
      volumes:
        pgdata:
        model-cache:
        tsdata:
       
  2. 하드웨어 가속을 위해 hwaccel.yml 파일을 docker-compose.yml과 동일한 위치에 아래와 같은 내용으로 저장합니다

     

version: "3.8"

# Hardware acceleration for transcoding - Optional
# This is only needed if you want to use hardware acceleration for transcoding.
# Depending on your hardware, you should uncomment the relevant lines below.

services:
  hwaccel:
    devices:
       - /dev/dri/renderD128:/dev/dri
    #  - /dev/dri:/dev/dri  # If using Intel QuickSync or VAAPI
    # volumes:
    #   - /usr/lib/wsl:/usr/lib/wsl # If using VAAPI in WSL2
    # environment:
    #   - NVIDIA_DRIVER_CAPABILITIES=all # If using NVIDIA GPU
    #   - LD_LIBRARY_PATH=/usr/lib/wsl/lib # If using VAAPI in WSL2
    #   - LIBVA_DRIVER_NAME=d3d12 # If using VAAPI in WSL2
    # deploy: # Uncomment this section if using NVIDIA GPU
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: 1
    #           capabilities: [gpu,video]

2. immich 실행

 18_immich 폴더에서 cmd 실행한 후 아래 명령을 통해 도커 설치를 시작합니다.(윈도우의 경우, Docker desktop가 설치되어 있어야 함)

docker-compose up -d

  1. immich 로그인 및 계정 생성

    관리자 계정을 설정한 후 로그인 합니다.
    image.png.jpg

  2. 사용자 계정 설정
    관리자 계정으로 로그인 한 후 우측 상단의 'Administration'을 클릭한 후 아래와 같이 사용할 계정을 추가합니다.
    Photos 사용시 다중 사용자로 설정하셨을 경우, 이렇게 계정을 추가하고 단일 계정을 사용하지면 계정 추가는 할 필요가 없습니다.

    image.png.jpg

  3. 계정별 API Key 획득
    각 계정마다 로그인한 후 우 상단의 네임카드를 클릭한 후 Account Settings를 클릭합니다.

    image.png.jpg

     API Keys > New API Key에서 Create를 클릭해 나오는 키값을 따로 저장해 놓습니다.

    이 키값은 업로드 시 해당 API 로그인 유저 앨범으로 업로드 하는데 사용합니다. 

    image.png.jpg

     

 3. immich-go 다운로드

1. immich-go 준비
  immich 미디어를 업로드할 수 있는 프로그램으로 다음의 주소에서 확인할 수 있습니다.


다음의 주소에서 immich-go 실행파일을 받습니다. 저는 윈도우에서 사용하기 때문에 윈도우용으로 받았습니다.

2. immich-go 실행
압축을 해제하면 immich-go.exe 파일을 볼 수 있습니다.

다음 명령으로 업로드를 실행합니다.

immich-go -server=http://192.168.0.10:30050 -key=P58rzzzz5TzSaZBz2QjHc9oRaXweee9wshcBaMh6svP4 upload E:\homes\userfolder

* -server=immich주소
* -key=immich에서 사용할 계정으로 로그인 한 후 우상단 이름아이콘 클릭 > Account settings > Api Keys > New Api Key > Create 를 클릭해 나오는 문자열
* upload : 업로드 할 파일이 있는 위치. 서브폴더를 포함해서 업로드 함

이렇게 실행하면 다음 화면과 같이 파일 업로드를 시작합니다.

image.png.jpg

 

다만, 업로드 시 주의할 점은 Photos는 @eaDir 폴더가 숨어있는데요, 미리보기 이미지들이 들어있습니다. 

제가 업로드 할때는 이 폴더들을 모두 삭제하고 업로드 해서 확인되지 않았습니다만, immich-cli로 업로드 할 때에는 이 폴더까지 업로드 되는 바람에 미리보기 파일까지 모두 다 업로드 되는 불상사가 있었습니다.

immich-go 설명에는 업로드 폴더 제외 기능은 아직 개발 전인것으로 나와 있어 이 부분은 주의가 필요합니다.

 

혹시 파일 업로드 중 immich가 다운되거나 피치못해 업로드를 중단해도 다시 업로드를 시작하면 기존에 올린 중복 파일은 건너뛰고 이어서 올립니다(단, 기존 업로드 파일을 모두 확인하는데 시간이 좀 걸립니다)

 

다음 버전인 1.91에서는 typesense 컨테이너도 제거된다고 하는데 

immich 발전 속도가 아주 빠릅니다. 기대가 많이 되는 녀석입니다

 

 

신고공유스크랩
1
1등
나초나초 2023.12.13. 08:54
외부 라이브러리 추가가 잘안되서 cli로 열심히 업로드했더니 exif정보가 다 날아가서.. 저는 다시 synology photo로 롤백했습니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

첨부 0

번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 63 달소 23.05.29.01:57 25465 +25
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 73 달소 23.05.23.23:58 27075 +23
잡담 QNAP에 이기능은 정말 마음에 드네요 9 EXP 2일 전07:38 416 +1
잡담 시놀로지 포토스, 서베일런스, 그리고 PLEX 1 헬로 5일 전16:52 335 +1
질문 지금 시점에서 7세대 나스는 아이들 전력소비가 큰가요? 8 나와너 24.05.05.17:35 562 +2
5149 정보
image
화정큐삼 22.04.12.21:12 46752 +32
5148 정보
image
달소 22.08.09.18:38 44134 +33
5147 정보
image
달소 22.12.27.03:18 37147 +19
5146 정보
image
달소 22.03.31.10:37 32424 +32
5145 정보
image
달소 21.10.29.22:22 30542 +40
5144 정보
image
달소 22.06.28.15:32 27686 +23
5143 정보
image
달소 21.05.21.17:14 27257 +17
5142 정보
image
달소 23.05.23.23:58 27075 +23
5141 정보
image
달소 21.10.29.17:43 26430 +11
5140 정보
image
ㅎㅇㅅㅋ 22.12.30.14:40 26138 +18
5139 정보
image
달소 23.05.29.01:57 25465 +25
5138
image
달소 21.11.19.17:12 23833 +22
5137 정보
image
달소 22.07.05.20:48 22665 +13
5136 정보
image
달소 21.11.12.16:52 19431 +14
5135 정보
normal
달소 22.03.16.18:35 17291 +14
5134
image
달소 22.01.27.17:40 16903 +40
5133 정보
image
달소 22.06.06.09:15 15884 +17
5132 정보
image
quad 22.08.15.17:59 15689 +18
5131
image
달소 22.04.16.04:41 13844 +21
5130 정보
image
quad 22.09.29.19:26 12350 +12