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

Synology Photos를 immich로 마이그레이션

vitive 889

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로 헤놀로지 부트로더 빌드하기. 62 달소 23.05.29.01:57 24831 +24
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 73 달소 23.05.23.23:58 26410 +23
후기 ghost 블로그를 만들어 봤습니다 6 빨간물약 1일 전15:26 300 +2
후기 asustor에서 나온 nas에 dsm 올렸습니다... 4 링츠링링 4일 전18:45 406 +2
질문 Wireguard 관련해서 질문 드립니다! 2 리준 5일 전12:25 189 +1
5104 질문
normal
서브어린이 12시간 전12:00 73 0
5103 후기
image
빨간물약 1일 전15:26 300 +2
5102 질문
image
지축또타 1일 전13:44 296 0
5101 질문
image
김펭귄 1일 전08:48 127 0
5100 질문
normal
헤놀로지맨 1일 전07:21 193 0
5099 질문
normal
sabss 2일 전20:35 226 0
5098 질문
image
양미 2일 전18:47 112 0
5097 질문
file
지나가는_문과생 2일 전12:20 213 0
5096 질문
normal
툭툭이 3일 전14:32 118 0
5095 질문
normal
zip 3일 전13:40 83 0
5094 질문
normal
jinsol2 3일 전11:13 513 0
5093 질문
normal
M-M-M 3일 전09:15 68 0
5092 후기
image
링츠링링 4일 전18:45 406 +2
5091 질문
normal
nadomola 4일 전17:30 115 0
5090 질문
normal
Venzamin 4일 전11:40 188 0
5089 잡담
normal
서맹 4일 전09:42 485 0
5088 질문
image
초보나스 4일 전03:44 154 0
5087 질문
image
Noil 5일 전23:22 97 0
5086 질문
image
서브어린이 5일 전20:16 92 0
5085 질문
image
서브어린이 5일 전17:50 135 0