
immich-app/immich: High performance self-hosted photo and video management solution.
이미치 서비스야 워낙 유명하니 따로 설명 드릴 내용이 없겠지만
구글 포토와 비슷한 느낌의 사진 관리 솔루션이라고 보시면 됩니다
도커에 설치가 가능하고요
여러 플랫폼이나 os에서 여러 형태로 제공하기도 했던 거 같습니다
리눅스(도커 또는 개별 스토어)나 proxmox 등에서 설치하는 방법은 가이드가 많으니 검색을 한 번 해보시고요
이 글은 시놀로지 도커에 컨테이너 매니저로 설치하는 방법 입니다

우선 패키지 센터에서 컨테이너 매니저를 설치 해줍니다
도커를 사용하시는 분은 대부분 설치가 돼있을 겁니다

컨테이너 매니저 설치는 그냥 다음다음 누르시면 끝입니다
별도의 네트워크 서브넷 설정을 사용하시려면 설정하셔도 됩니다

컨테이너 매니저 설치 완료 후 실행하시면 이런 창이 뜹니다
아직은 아무것도 설치가 안된 상태죠

파일스테이션을 실행해 확인 해보시면 도커 폴더가 생성 된 걸 보실 수 있습니다
우선 docker 폴더는 컨테이너 매니저의 권한이 기본적으로 허용 된 상태라
별다른 권한 설정 없이 대부분 사용이 가능 합니다
문제는 다른 볼륨이나 다른 경로의 폴더에 접근 하기 위해서는 권한 설정을 따로 해줘야합니다
이런저런 컨테이너를 가이드대로 설치 후 동작을 안한다?
대부분 임의로 수정한 폴더 경로의 권한 문제인 경우가 많습니다
그러니 폴더 경로를 수정하기 전에 본인이 지금 무슨 작업을 하는지
어떤 추가 작업이 필요한지를 인지한 상태에서 작업을 해주셔야 오류가 없습니다
우선은 기본 경로로 설치를 해서 동작을 확인 후 수정을 하시기 바랍니다
왜냐하면 다른 문제로 실행이 안되는데 권한 문제까지 겹치면 뭐가 문제인지 찾기 힘들거든요

우선 파일스테이션에서 docker 폴더에 immich 폴더를 하나 만들어 줍니다
이건 프로젝트 폴더로 해당 폴더에 immich를 설치하기 위해 만들어 주는 겁니다
이름은 임의대로 수정하셔도 상관 없습니다
그 후에 immich 하위에 library 폴더와 postgres 폴더를 생성 해주세요
이 두 폴더는 나중에 확인하게 될 컴포즈 파일과 .env 파일에서 요구하는 폴더 입니다
ssh나 터미널에서 명령어로 작업을 하면 폴더 생성도 한번에 할 수 있지만
지금은 컨테이너 매니저로 설치 중이니 수동으로 만들어 주셔야 합니다
이제 폴더를 다 만들었으니 컨테이너를 만들 내용이 있어야 겠죠?

immich/docker at main · immich-app/immich
이미치 깃헙에 보면 도커 관련 파일들이 있습니다
여기서 필요한 건 도커 컴포즈 파일과 .env 파일입니다
도커 컴포즈 파일은 일종의 설계도라고 보시면 됩니다
여러 이미지 설정이나 환경변수 볼륨, 네트워크 설정 등등을 모두 적어놓고
자동으로 컨테이너를 생성 하는 방식이죠
.env는 뭐냐? 환경 변수를 모아놓은 파일입니다
외부로 노출하기 좀 그런 시크릿키나 이런저런 보안관련 키들 또는
한 프로젝트 안에 여러개의 컨테이너가 필요하고 각 컨테이너에 중복 된 환경변수를 적어줘야할 때
예를 들어 폴더 경로를 여기저기 다 적어줘야 하는데 폴더 경로를 변경하면 다시 여기저기 수정을 해줘야겠죠
그런데 .env 안에 폴더 경로를 적어두고 그 파일을 각각의 컨테이너가 참조하면 경로 수정을 할 때
.env 파일의 내용만 바꿔주면 전부 수정이 되는 겁니다
우선 .env 파일이 immich 폴더 루트에 있어야 합니다
깃헙에서 다운 받으셔서 수정 후 .env로 이름 변경 후 업로드 하셔도 되고
파일 스테이션에 아무 파일이나 복사해서 .env.txt로 수정 후
텍스트 편집기로 해당 내용 붙여 넣어서 저장하시고 .env로 바꿔주셔도 됩니다
편한 방법 대로 진행 하세요
.env 파일 내용을 수정을 좀 했고 주석을 달아놨습니다
폴더 경로 중에 ./ 의 의미는 .env파일이 있는 해당 폴더 그러니까 여기서는 immich 폴더가 되겠죠
그 폴더 내의 있는 폴더라는 의미입니다
/volume1/docker/immich/library 와 ./library 는 같은 의미가 되는 겁니다

자 이제 .env 파일도 저장을 했으니 이제 프로젝트 생성을 하겠습니다
컴포즈 파일은 .env 처럼 업로드를 하셔도 되고 프로젝트 생성 과정 중에 입력 해도 됩니다

컨테이너 매니저의 프로젝트로 이동 해줍니다
이 프로젝트는 포테이너의 스택과 같은 기능입니다
컴포즈 파일을 베이스로 여러개의 컨테이너를 하나로 묶어 설치 해주는 기능이죠
프로젝트 생성을 눌러주시고

프로젝트 이름과 경로 그리고 컴포즈 업로드를 통해 파일을 업로드 하시거나
만들기를 통해 복사 붙여넣기 하셔도 됩니다
저 같은 경우는 수정이 편해서 붙여넣기 했습니다
해당 폴더에 컴포즈 파일이 있는 경우에는 만들기가 안되니
업로드 한 파일을 수정하시거나 삭제하시면 됩니다
깃헙에 있는 이 컴포즈를 사용했고요
찬찬히 한 번 보시면 앞에서 설정했던 폴더나 .env 파일의 내용등이 보이실 겁니다
대충 이런 구조구나 하시고 보시면 되겠습니다
프로젝트 내부에 만들어지는 컨테이너지만 컨테이너 이름은 고유하기 때문에
만약 이미치를 하나 더 만든다면 컨테이너 이름도 변경을 해줘야 합니다
헬스 체크 같은 부분도 리소스를 먹기 때문에 굳이 필요 없다 싶으시면 제거를 해주셔도 되고요
HW가속을 위한 설정도 지금 주석 처리가 돼있죠
hwaccel.ml.yml 부분인데 .env 처럼 깃헙에서 다운 받아서 업로드 하시고 수정해줘야 합니다
데이터 베이스 컨테이너의 환경 변수 중에 디비가 저장되는 공간이 HDD라면 수정을 해야하는 부분도 있습니다
우선 지금은 이대로 기본 설치를 진행하시고 나중에 다듬으시면 됩니다
접속 포트 2282 포트는 임의대로 수정 하셔도 됩니다
겹치지 않는 포트로 수정 해주세요
아 참고로 도커 컨테이너는 가상 환경에서 실행된다고 생각하시면 됩니다
컨테이너를 삭제하면 모든 파일들이 함께 제거가 되죠
그래서 실제 볼륨과 연결을 해서 컨테이너가 삭제가 되더라도 파일이 남아있게 하는 겁니다
파일이 남아있으면 다시 컨테이너를 생성할 때 경로만 그대로 연결 해주면 기존 데이터들이 그대로 인식 되거든요
가끔 컨테이너 삭제나 프로젝트 정리 했더니 다 날아갔다 라고 하시는 분들은
이 경로 연결이 제대로 안된 겁니다
경로 연결을 하려면 읽기 쓰기 권한이 있어야 하고 docker 폴더는 별다른 설정없이 대부분 가능하지만
다른 폴더는 이 권한이 없다면 기록이 안되고 컨테이너를 삭제했을 때 다 날아가는 거죠
그러니 컨테이너를 생성하고 실행 후에 폴더에 실제로 파일들이 생성 됐는지 확인을 하셔야 합니다
제대로 파일이 기록되고 읽을 수 있을 때 자료들을 업로드 하시거나 설정을 하시면 됩니다

이제 프로젝트 생성 창에서 다음다음 눌러주시고 완료를 눌러주세요

별다른 문제가 없다면 컴포즈 내용대로 필요한 이미지를 다운 받고

컨테이너들이 생성 됩니다

프로젝트가 제대로 만들어 졌네요

프로젝트 이름인 immich를 클릭했을 때
네 개의 컨테이너가 제대로 실행 되고 있다면 설치가 완료 된 겁니다
이제 서버아이피:2282 로 접속을 하시면

이런 화면과 함께 이미치를 시작 하실 수 있습니다
이후 설정 부분은 다른 이미치 가이드들을 참고하시면 되겠습니다
업데이트 부분은 수동 업데이틀 해줘야 하지만
귀찮아서 IDIM이라는 서비스를 만들었습니다
https://svrforum.com/nas/2071086
IDIM (Immich Docker Image Manager) – 서버포럼
위 링크 글을 참고 해주세요
아니면 컨테이너 매니저에서 프로젝트 정리 후 이미지를 수동으로 삭제하시고
프로젝트 재빌드를 하셔도 됩니다
그럼 새로 설치하시는 분들 문제 없이 잘 빌드 되길 바랍니다
긴 글 읽으시느라 고생 하셨습니다